我们正在实现一种安全令牌服务(STS),该服务使用Windows Identity Foundation来提供基于声明的身份验证和授权。
我的问题实际上是关于最佳实践,以及我们应该如何处理给定身份的多个角色。
在用户成功登录后为其创建声明时,我们需要能够在返回依赖方之前将用户所属的角色添加到声明中。
Claim对象不接受字符串的集合,所以我想知道应该如何做到这一点。我能想到两种方法:
- 我可以添加ClaimTypes.Role类型的多个ClaimTypes.角色具有不同的值,这些值可以在另一边读取(我已经测试过了,这似乎没有任何错误)
- 我也可以将这些角色放在一个单独的声明中,并通过以下方式对它们进行划界:;或者类似的东西
我的问题实际上是上面哪一个更好,还是我错过了更好的东西?这两种解决方案都不是完美的,因为它需要在另一端进行解析。
谢谢,约翰·
如果使用ADFS作为STS,它会在声明中插入多个角色
例如
- 。。。声明/角色编辑器
- 。。。索赔/角色审批人
等。
这样做的优点是WIF可以使用标准的IsInRole构造等