0

我有一个场景,我的资源服务器 (RS) 可以连接到多个数据库并且它可以是多租户的。它有一个环境配置,我可以说:Env A 指向数据库 A,属于租户 A;env B指向数据库B,属于租户B;

我们的桌面应用程序将该信息存储在一个数据结构中,该数据结构在每次调用时发送到 RS,我们的 Web 应用程序将其存储在 ASP.NET 会话中。用户在登录时选择环境。

现在我们将 API 完全迁移到 REST 服务,并使用 IdentityServer4 使用 oAuth2 保护它们。

我需要将该环境值发送到 API,我认为这应该是访问令牌的一部分。

第一个问题是:这对吗?访问令牌可以包含这种信息吗?

第二个是:哪个是最好的 IdentityServer4 服务,我应该扩展它以将该值作为声明注入到访问令牌中,从而注入到 ClaimsPrincipal 中。

第三个是:有时我没有用户在登录时选择环境(例如客户端凭据授予)。在这种情况下,作为客户要求的正确对待环境是否正确?有没有办法让客户动态索赔?

对不起,很长的问题!

问候, 迪奥戈

4

1 回答 1

1

如果该声明与用户(或客户端)身份有关 - 是的 - 它是令牌的候选者。

将声明添加到代表您的 API 的资源范围 - 这样将在配置文件服务中请求声明类型,您可以将其添加到令牌中。

客户索赔不是动态的。

于 2016-09-12T13:43:40.577 回答