urn:oasis:names:tc:SAML:2.0:nameid-format:emailAddress 是有效的 NameID 格式吗?

Posted

技术标签:

【中文标题】urn:oasis:names:tc:SAML:2.0:nameid-format:emailAddress 是有效的 NameID 格式吗?【英文标题】:Is urn:oasis:names:tc:SAML:2.0:nameid-format:emailAddress a valid NameID format? 【发布时间】:2015-07-29 19:41:44 【问题描述】:

在 OASIS 规范中,我可以阅读以下有效的 nameid 格式:

urn:oasis:names:tc:SAML:2.0:nameid-format:persistent urn:oasis:names:tc:SAML:2.0:nameid-format:transient urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos urn:oasis:names:tc:SAML:2.0:nameid-format:entity

但找不到 urn:oasis:names:tc:SAML:2.0:nameid-format:emailAddress。

如果我进行快速谷歌搜索,这种格式会出现多次,包括Cisco Spark 的文档。

有人可以向我澄清这个问题吗?似乎有人发明了这种 nameid 格式,现在一些 IdP/SP 正在使用它。

【问题讨论】:

【参考方案1】:

@smartin -- 你似乎在 OneLogin 工作,我最近提交了一张关于这个的票:-)。我认为你的预感是对的;有人看到有 SAML 1.1 和 SAML 2.0 并认为 urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress 中的 1.1 是一个错误。

规范文档的第 8 节在开头提到了这一点:

以下部分为常见的资源访问操作、主题名称标识符格式和属性名称格式定义了基于 URI 的标识符。在可能的情况下,使用现有的 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:

http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf

由于电子邮件地址标识符是在 SAML v1.1 中引入的,所以这是有道理的。在此处查看第 7 节介绍和第 7.3.2 节 (https://www.oasis-open.org/committees/download.php/3406/oasis-sstc-saml-core-1.1.pdf)。

所以,tl;dr:urn:oasis:names:tc:SAML:2.0:nameid-format:emailAddress 与 SAML 1.1 和 SAML 2.0 规范相冲突。

【讨论】:

是的,我在 OneLogin 工作,我与您合作处理了您的票证。我想看看 OASIS 是否有人可以提供更多信息并确认我们的发现,以便我们可以要求 IdP/SP 遵循标准;)

以上是关于urn:oasis:names:tc:SAML:2.0:nameid-format:emailAddress 是有效的 NameID 格式吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何创建签名的 AuthNRequest?

无法针对架构验证 SAML 2.0 断言

用于断言的 SAML 2.0 格式属性 - 联合身份

auth0 saml 请求的无效存储块长度

使用 OpenSAML 在 Java 中使用 SAML 2.0 解密加密断言

SAML 2.0 实例分析 idp向sp发送响应