基于声明的身份验证:字符串是声明的本质吗?

时间:2010-06-08 16:49:25

标签: security wif claims-based-identity claims

我已经使用 Windows Identity Foundation 对基于声明的身份验证进行了一段时间的编程。

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

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

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

1 个答案:

答案 0 :(得分:3)

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

这就是为什么你可以使用索赔不仅仅是驾驶授权规则。例如,它们还可以表示用户简档信息。角色成员资格只是另一个属性(主要用于访问控制)。

夫妻观察:

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