用于什么不同的NameID格式?

per*_*ser 52 saml single-sign-on opensaml

在SAML元数据文件中,定义了几种NameID格式,例如:

<NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>

<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</NameIDFormat>

<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
Run Code Online (Sandbox Code Playgroud)

谁能解释一下这些用途是什么?有什么区别?

mav*_*vis 57

请参阅oasis SAML规范的此SAML核心pdf的第8.3节.

SP和IdP通常相互沟通一个主题.应该通过NAME-IDentifier识别该主题,该ID应该采用某种格式,以便对方很容易根据格式识别它.

所有这些

1.urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified [default]

2.urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

3.urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

4.urn:oasis:names:tc:SAML:2.0:nameid-format:transient
Run Code Online (Sandbox Code Playgroud)

是名称标识符的格式.

SAML 1中临时ID的名称格式为urn:mace:sh​​ibboleth:1.0:nameIdentifier,SAML 2中为urn:oasis:names:tc:SAML:2.0:nameid-format:transient

Transient适用于[ SAML Core第8.3.8节]

指示元素的内容是具有瞬态语义的标识符,并且应该被依赖方视为不透明和临时值.

可以使用未指定的,它完全取决于实体实现的愿望.

  • @alxgomz-参见[spec](http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf)中的455行及以后的内容,除非另有说明,否则根据此类型的元素,如果未提供Format值,则值urn:oasis:names:tc:SAML:1.0:nameid-format:unspecified(请参阅第8.3.1节)有效。 (2认同)

Ron*_*Ron 14

关于这一点,我想你可以参考http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html.

以下是我对此的理解,使用Identity Federation Use Case提供这些概念的详细信息:

  • 持久标识符 -

IdP提供持久标识符,它们用于链接到SP中的本地帐户,但它们仅标识为特定服务的用户配置文件.例如,持久标识符有点像:johnForAir,jonhForCar,johnForHotel,它们都只针对一个指定的服务,因为它需要链接到服务中的本地标识.

  • 瞬态标识符 -

瞬态标识符是IdP告诉SP的,会话中的用户已被授权访问SP上的资源,但用户的身份实际上并未提供给SP.例如,断言就像"匿名(Idp不告诉SP他是谁)有权访问SP上的资源".SP得到它并让浏览器访问它,但仍然不知道Anonymity的真实姓名.

  • 未指明的标识符 -

规范中对它的解释是"元素内容的解释留给个别实现".这意味着IdP定义了它的实际格式,并假设SP知道如何解析来自IdP的格式数据响应.例如,IdP给出格式数据"UserName = XXXXX Country = US",SP获取断言,并且可以解析它并提取UserName为"XXXXX".

  • 感谢“我对此的理解”。有时,在规范中综合信息的人的思考比规范本身更有价值。欣赏评论。 (3认同)

kir*_*gin 9

它只是服务提供商对Identity Provider返回的NameID的期望.有可能:

  1. unspecified
  2. emailAddress - 例如 john@company.com
  3. X509SubjectName - 例如 CN=john,O=Company Ltd.,C=US
  4. WindowsDomainQualifiedName - 例如 CompanyDomain\John
  5. kerberos- 例如 john@realm
  6. entity - 这个用于识别提供基于SAML的服务并且看起来像URI的实体
  7. persistent - 这是一个不透明的服务特定标识符,必须包含伪随机值,并且不能跟踪实际用户,因此这是一个隐私功能.
  8. transient - 不透明标识符,应视为临时标识符.

  • 规范中没有任何相关内容。 (2认同)