【发布时间】:2022-02-11 20:50:04
【问题描述】:
我有一个 Identity Server 4 解决方案。所有请求登录的客户端应用程序都需要知道分配给用户的组织。例如,一个用户可以有 2 个餐厅和 2 个供应商组织分配给它。我可以将此信息添加到名为“Orgs”的属性中,并使用 Identity Server 4 中 userinfo 端点上的数组值吗?
【问题讨论】:
标签: identityserver4
我有一个 Identity Server 4 解决方案。所有请求登录的客户端应用程序都需要知道分配给用户的组织。例如,一个用户可以有 2 个餐厅和 2 个供应商组织分配给它。我可以将此信息添加到名为“Orgs”的属性中,并使用 Identity Server 4 中 userinfo 端点上的数组值吗?
【问题讨论】:
标签: identityserver4
是的,您可以在令牌中添加尽可能多的海关财产/索赔。所以基本上 IdS4 提供了这个 connect/userinfo 端点来获取特定于用户的附加属性,您可以通过实现 IProfileService 接口来扩展此行为。因此,每当客户端请求新令牌或点击 userinfo 端点的其他属性时,它都会点击这个扩展的帮助程序类,您将能够在此处添加自定义属性/声明。
示例代码:这确实是满足您要求的最少代码,但您可以将更多依赖项注入到构造函数中。
public class ProfileService : IProfileService
{
public async Task GetProfileDataAsync(ProfileDataRequestContext context)
{
context.IssuedClaims.Add(new Claim("YourCustomClaimType", "YourCustomClaimValue"));
}
}
【讨论】: