nameidentifier声明的目的是什么?

Ant*_*kov 68 federated-identity claims-based-identity adfs2.0

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier应该使用什么类型的声明?

这是主要问题,这里还有其他问题.

它与http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name索赔有什么不同?

对于特定用户而言,与名称声明相反,它是永久性的吗

它是全局范围的还是IdP范围的?

EBa*_*arr 35

Name,就是这个名字.如果我们在谈论人,那就想想"Eric"; 服务器"file01".

A NameIdentifier是对象的ID.回到我们的person对象,Eric的UserID可能在您的数据库中是435.对于服务器,标识符可以类似于FQDN或SID.

根据这篇文章,显然名称标识符是SAML 1.1属性,并NameID在SAML 2.0中被取代.

独特与否?

我想解决@Jason的评论和@ nzpcmad的帖子.我不认为独特性是明确的要求.问题标记为但引用的模式由OASIS拥有.所以这些是我们需要平衡的两方解释.

微软对ADFS的立场显然是有一个独特的要求.我们在" 索赔的作用 "一文中看到了这一点.毫无疑问,ADFS会产生很大的影响,但这似乎是一个实现细节.

纵观SAML 1.1规范,但是,我没有看到这样的说法.我们在规范2.4.2.2中得到的最接近的是:

元素通过名称限定符,名称和格式的组合指定主题.该元素具有以下属性:
...
NameQualifier [可选]限定主题名称的安全或管理域.此属性提供了一种在不发生冲突的情况下联合来自不同用户存储的名称的方法.

规范的文本告诉我,我需要能够使用这三个属性的组合找到一个人,但它没有对唯一性做出任何断言.我不能指向同一个用户的两个条目吗?似乎如此.此外,NameQualifierNameIdentifier不足以唯一识别名称的情况下,该规范是否表明该属性是否必需?

那么这一切都会导致什么?

  • 小心,unqiue可能更安全.
  • 深入了解您的提供商对该主题的立场.

  • 我认为 nzpcmad 的答案在这里更加清晰。如果名称应该是唯一的,那么它就不仅仅是一个名称。我很困惑是否应该使用 Name 还是 NameIdentifier 来存储用户名。现在我明白了。 (2认同)

nzp*_*mad 10

根据索赔的作用,

名称用户的唯一名称

名称标识符用户的SAML名称标识符

这两个声明是AD FS 2.0默认配置的声明组的一部分.

这意味着它们是IP范围的.

例如,当您使用ACS登录Google时,"nameidentifier"是Google与您的帐户关联的唯一GUID,而name是您的Google登录信息,例如"tim.smith@gmail.com".

  • 谢谢@nzpcmad 的关注。然而,“名称标识符”是什么意思对我来说仍然是未知的。“用户的 SAML 名称标识符”短语中没有解释。 (2认同)

tsu*_*isi 8

ClaimTypes.Name用于用户名并将用户的身份ClaimTypes.NameIdentifier指定为对象透视图。如果您将它们添加到一种对象中,该对象为您提供访问方法(例如在 dotnet 世界中),它们是和。ClaimIdentityUser.IdentityGetUserName()GetUserId()