我有一个场景,我的资源服务器(RS)可以连接到多个数据库,它可以是多租户。它有一个环境配置我可以说:Env A指向数据库A并且属于租户A; Env B指向数据库B并属于租户B;
我们的桌面应用程序将该信息存储在每次调用时发送到RS的数据结构中,我们的Web应用程序将其存储在ASP.NET Session中。用户在登录时选择环境。
现在我们正在将我们的API完全转移到REST服务,并使用IdentityServer4使用oAuth2保护它们。
我需要将该环境值发送给API,我认为它应该是访问令牌的一部分。
第一个问题是:这是正确的吗?访问令牌可以拥有这种信息吗?
第二个是:哪个是最好的IdentityServer4服务,我应该扩展为将该值作为访问令牌内的声明注入,因此在ClaimsPrincipal中。
第三是:有时我没有用户在登录时选择环境(例如,客户端凭证授权)。在这种情况下,作为客户索赔的正确治疗环境是什么?有一种方法可以获得动态客户索赔吗?
很抱歉这个很长的问题!
此致 迪奥戈
答案 0 :(得分:1)
如果该声明是关于用户(或客户端)的身份 - 是的 - 它是令牌的候选者。
将声明添加到代表您的API的资源范围 - 这样,将在配置文件服务中请求声明类型,您可以将其添加到令牌。
客户声称不是动态的。