authentication - 验证我的 SP 元数据时出现错误“SP 排除了两种 SAML 2 名称标识符格式”
问题描述
在“https://validator.safire.ac.za”中验证 SP 元数据下方时,我收到了提到的错误。可能是什么原因?
元数据:
<?xml version="1.0"?>
<md:EntityDescriptor ID="ONELOGIN_ebfb2530-b00e-4059-8cd2-55305472de69" cacheDuration="PT604800S" entityID="https://example.com/sp/SAML/27987238942342/metadata" validUntil="2020-08-27T09:33:08Z" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata">
<md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>-----
cert
----
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:KeyDescriptor use="encryption">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>---
cert
----
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://example.com/sp/SAML/27987238942342/logout/callback"/>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://example.com/sp/SAML/27987238942342/callback" index="1"/>
</md:SPSSODescriptor>
</md:EntityDescriptor>
解决方案
似乎“南非身份联合会”采用了更严格的规则作为 SAML 规范,并且他们不接受 NameId 格式urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
。他们似乎只支持 NameId 格式 urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
和urn:oasis:names:tc:SAML:2.0:nameid-format:transient
. 这是一个特定于平台的问题,但不是一般的 SAML2 问题。
推荐阅读
- ruby-on-rails - 在 Rails 中从父模型传递值
- java - 通过 Java 中的套接字发送 TCP 紧急数据
- c++ - 有多少条线段将在一个平面上与一条水平线相交?找到这个的最有效方法是什么
- javascript - 在 HTML 文本框中只允许数字和正斜杠
- spring - 更改 Spring Reactive MongoDB 的排序规则
- c# - 如何删除选项卡标题并拉伸 TabControl 以便不显示空白?
- c# - 检测链接是否为可下载文件
- r - 如何在 Rstudio (stargazer) 中创建具有描述性统计的表?
- laravel - 如何在 Laravel Mix 中使用 purgeCss
- sql - 在 where 子句中唯一