0

我们正在实施安全令牌服务 (STS),它使用 Windows Identity Foundation 提供基于声明的身份验证和授权。

我的问题实际上是关于最佳实践以及我们应该如何处理给定身份的多个角色。

在用户成功登录后为其创建声明时,我们需要能够在返回依赖方之前将用户所属的角色添加到声明中。

Claim 对象不接受字符串集合,所以我想知道应该如何完成。我可以想到两种方法:

  1. 我可以添加多个具有不同值的 ClaimTypes.Role 类型的声明,并且可以在另一侧读取这些声明(我已经测试过,这似乎可以正常工作,没有任何错误)
  2. 我还可以将角色放入一个声明中,并用 ; 分隔它们。或类似的东西。

我的问题实际上是关于以上哪个更好,还是我错过了更好的东西?这两种解决方案都不是完美的,因为它需要在另一边进行解析。

谢谢,约翰

4

1 回答 1

2

如果您使用 ADFS 作为 STS,它会在声明中插入多个角色

例如

  • ...声明/角色编辑
  • ...声明/角色 审批人

等等

这样做的好处是 WIF 可以使用标准的 IsInRole 构造等。

于 2012-10-11T18:59:32.803 回答