0

一段时间以来,我一直在使用Windows Identity Foundation进行基于声明的身份验证编程。

在我看来,在Windows Identity Foundation中,一旦用户登录,声明基本上就是描述用户的信息字符串。

使用旧的基于角色的身份验证,我可以说用户是或不是给定组的成员,但使用基于声明的身份验证,我现在可以拥有描述用户的信息字符串。“这个用户是女性”。该用户出生于“1975 年 7 月 6 日”。“此用户使用 USB 密钥登录”。

它是基于声明的身份验证的本质,我有框架提供给应用程序的用户信息字符串吗?

4

1 回答 1

3

声明是关于与您的应用程序交互的主题的属性,可以是任何东西。你给出的所有例子基本上都是正确的。

这就是为什么您可以将声明用于不仅仅是驾驶授权规则。例如,它们还可以表示用户配置文件信息。角色成员资格只是另一个属性(主要用于访问控制)。

几个观察:

  • 一个微妙但非常重要的区别是声明是由受信任的权威实体 (STS) 发布的。索赔的来源与索赔本身一样重要。举个简单的例子:如果我向您发送一个由 Microsoft 的 STS 颁发的带有声明“Title=Program Manager”的令牌,您可能会非常确定我是为 Microsoft 工作的 PM。换句话说,您获得的属性的保真度与您对发行人的信任程度之间存在相关性。
  • 在 WIF 声明中,值被实现为“字符串”(如在 .NET 类型中),但它们可以是任何(可序列化的)对象。对于角色、组、名称等简单的事情,您只需使用该值。对于其他更复杂的类型,您将需要某种反序列化。
于 2010-06-09T18:24:05.337 回答