IdentityServer4多元索赔生成(特定方案)



我正在为客户端实现IdentityServer4。在这里,我在 profileService 中生成和设置索赔时感到有些困惑。

方案:

1(用户可以属于多个公司。

2(用户可以在一家公司中扮演一个角色。

3(用户可以在不同的公司中具有不同的角色。

例如。用户=>爱丽丝属于公司和公司。

a(爱丽丝在Companyx中具有"管理员"的角色

b(爱丽丝在公司中具有"用户"

问题:设定主张的最佳方法是什么?在客户方面。我可以确定哪个用户角色属于哪个公司。如果我像

单独设置索赔
new Claim("name", "Alice"),
new Claim("Role","Admin"),
new Claim("Role","Cat"),
new Claim("Comp","1"),
new Claim("Comp","2"),

另一种方法可能是设置诸如

之类的主张。
new Claim("name", "Alice"),
new Claim("Company_Role","1_Admin"),
new Claim("Company_Role","2_Cat"),

我不确定这是最好的方法。谁能建议我。?

以这种方式发出索赔的弊端:

  • 如果权限(角色(更改,则代币中的索赔值不会自动更新。
  • 每个索赔都会添加到一个令牌中,该令牌是在每个请求中发送的。这将增加请求的长度。
  • 如果您有多个系统,则角色值可能具有不同的含义。

记住:主张代表用户(身份(,而不是允许他/她进入。理想情况下,您将要求API的权限。

如果您决定使用此解决方案,则应尝试尽可能最大程度地减少发行的索赔。像Company_roleXClaimValueX

相关内容

  • 没有找到相关文章

最新更新