名称标识符声明的目的是什么?



http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier类型的索赔应该用于什么?

这是主要问题,这里还有一些附加问题。

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name的主张有何不同?

对于特定用户来说是永久的,而不是名称声明吗?

是全局作用域还是idp作用域?

Name,只是一个名称。如果我们说的是人,想想"埃里克";服务器"file01"。

NameIdentifier为对象的ID。回到我们的person对象,Eric的UserID在数据库中可能是435。对于服务器,标识符可以是FQDN或SID之类的东西。

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

是否唯一?

我想解决@Jason的评论和@nzpcmad的帖子。我不认为独特性是一个明确的要求。这个问题被标记为adfs2.0,但引用的模式属于OASIS。所以这是我们需要平衡的两方面的解释。

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

但是,查看SAML 1.1规范,我没有看到这样的断言。我们在规范的第2.4.2.2节中得到的最接近的是:

元素通过a的组合指定主题名称限定符、名称和格式。元素有以下属性:

…NameQualifier[可选]安全域或管理域限定主题的名称。此属性提供了一种方法联合来自不同用户存储的名称而不发生冲突。

规范的文本告诉我,我需要能够使用三个属性的组合找到一个人,但它没有断言唯一性。不能有两个条目指向同一个用户吗?看来的确如此。此外,规范不是指出在NameIdentifier不足以唯一标识名称的情况下需要NameQualifier属性吗?

那么这一切导致了什么呢?

    小心,独特可能更安全。
  • 深入了解你的供应商在这个话题上的立场。

根据索赔的角色,

名称用户的唯一名称

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

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

这意味着它们是IP作用域。

。当您使用ACS登录Google时,"名称标识符"是Google与您的帐户关联的唯一GUID,而名称是您的Google登录名,例如:"tim.smith@gmail.com"。

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

应该使用nameidentifier声明来获取唯一的用户名。

For Windows Authentication:

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier域术士

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

0 # .w |域术士

domainwarlock是Windows登录名

对于基于声明的认证:

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier warlock@localhost.com

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name 05. t | myidentityprovider | warlock@localhost.com

电子邮件被指定为标识符声明

您可以看到.../identity/claims/name也描述了名称和身份提供者

最新更新