我正在为客户端实现IdentityServer4。在 ProfileService 中,我对生成和设置声明感到困惑。
情境:
1)用户可以属于多家公司。
2)用户可以在一家公司中拥有一个角色。
3)用户可以在不同的公司中担任不同的角色。
E.g。 用户=> Alice属于companyX和companyY。
a)Alice在companyX中有“Admin”角色
b)Alice在CompanyY中具有“用户”角色
问题: 设置索赔的最佳方式是什么?如何在客户端。我可以确定哪个用户角色属于哪个companyid。如果我单独设置索赔,如
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"),
我不确定这是否是最佳方法。 有谁能建议我。?
答案 0 :(得分:0)
以这种方式发布声明有一些缺点:
请记住:声明代表用户(身份),而不是他/她所允许的 进入。 理想情况下,您可以从API请求权限。
如果您决定采用此解决方案,则应尽量尽量减少已发布的声明。与Company_roleX
:ClaimValueX