【问题标题】:Add custom property in userinfo endpoint in Identity Server 4在 Identity Server 4 的 userinfo 端点中添加自定义属性
【发布时间】:2022-02-11 20:50:04
【问题描述】:

我有一个 Identity Server 4 解决方案。所有请求登录的客户端应用程序都需要知道分配给用户的组织。例如,一个用户可以有 2 个餐厅和 2 个供应商组织分配给它。我可以将此信息添加到名为“Orgs”的属性中,并使用 Identity Server 4 中 userinfo 端点上的数组值吗?

【问题讨论】:

    标签: identityserver4


    【解决方案1】:

    是的,您可以在令牌中添加尽可能多的海关财产/索赔。所以基本上 IdS4 提供了这个 connect/userinfo 端点来获取特定于用户的附加属性,您可以通过实现 IProfileService 接口来扩展此行为。因此,每当客户端请求新令牌或点击 userinfo 端点的其他属性时,它都会点击这个扩展的帮助程序类,您将能够在此处添加自定义属性/声明。

    示例代码:这确实是满足您要求的最少代码,但您可以将更多依赖项注入到构造函数中。

    public class ProfileService : IProfileService
    {
      public async Task GetProfileDataAsync(ProfileDataRequestContext context)
      {
         context.IssuedClaims.Add(new Claim("YourCustomClaimType", "YourCustomClaimValue"));
      }
    }
    

    【讨论】:

    • 你有什么可以参考我添加新属性的参考吗?
    • 让我用示例代码更新我原来的ans
    • @Jay 我已经用最少的示例代码更新了我的答案,看看。
    • 我知道这种特殊的方法,它接受字符串值。但我想添加一个数组值。 (每个用户多个组织代码)
    • 您可以在其中放入任何值,您只需要处理对象并将该对象转换为字符串。如何处理和存储它取决于您。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 2018-07-06
    • 2022-08-17
    • 2017-09-13
    相关资源
    最近更新 更多