问题描述
在“ 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:Single@R_502_5692@utService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://example.com/sp/SAML/27987238942342/@R_502_5692@ut/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问题。