在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>
有人可以解释一下这些用途是什么吗?有什么区别?
答案 0 :(得分:49)
请参阅本绿洲SAML规范SAML core 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
是名称标识符的格式。
Transient适用于[{3}}]
的第8.3.8节表示元素的内容是带有的标识符 瞬态语义,应该被视为不透明和临时的 依赖方的价值。
可以使用未指定的,它完全取决于实体实现的愿望。
答案 1 :(得分:12)
关于这个我认为你可以参考http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html。
以下是我对此的理解, 使用身份联合用例来提供这些概念的详细信息:
IdP提供持久性标识符,它们用于链接到SP中的本地帐户,但它们仅标识为特定服务的用户配置文件。例如,持久标识符有点像:johnForAir,jonhForCar,johnForHotel,它们都只针对一个指定的服务,因为它需要链接到服务中的本地标识。
瞬态标识符是IdP告诉SP的会话中的用户已被授予访问SP上的资源的权限,但用户的身份实际上并未提供给SP。例如,断言就像“匿名(Idp不告诉SP他是谁)有权访问SP上的资源”。 SP得到它并让浏览器访问它,但仍然不知道匿名&#39;真正的名字。
规范中对它的解释是&#34;元素内容的解释留给个别实现&#34;。这意味着IdP定义了它的实际格式,并假设SP知道如何解析来自IdP的格式数据响应。例如,IdP提供格式数据&#34; UserName = XXXXX Country = US&#34;,SP获取断言,并且可以解析它并提取UserName是&#34; XXXXX&#34;。
答案 2 :(得分:6)
这仅是向服务提供者提示身份提供者所返回的NameID所期望的内容。可以是:
unspecified
emailAddress
–例如john@company.com
X509SubjectName
–例如CN=john,O=Company Ltd.,C=US
WindowsDomainQualifiedName
–例如CompanyDomain\John
kerberos
–例如john@realm
entity
–用于识别提供基于SAML的服务并看起来像URI的实体persistent
–这是一个不透明的特定于服务的标识符,它必须包含一个伪随机值,并且不能追溯到实际用户,因此这是一种隐私功能。transient
–不透明的标识符,应将其视为临时标识符。答案 3 :(得分:4)
1和2是SAML 1.1,因为这些URI是OASIS SAML 1.1标准的一部分。链接的PDF for the OASIS SAML 2.0 standard的第8.3节解释了这一点:
在可能的情况下,现有的URN用于指定协议。在IETF协议的情况下,使用指定协议的最新RFC的URN。根据首次引入它们的规范集版本,专门为SAML创建的URI引用具有以下词干之一:
urn:oasis:names:tc:SAML:1.0: urn:oasis:names:tc:SAML:1.1: urn:oasis:names:tc:SAML:2.0: