首页 > 解决方案 > 验证我的 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>

标签: authenticationsingle-sign-onmetadatasaml

解决方案


似乎“南非身份联合会”采用了更严格的规则作为 SAML 规范,并且他们不接受 NameId 格式urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified。他们似乎只支持 NameId 格式 urn:oasis:names:tc:SAML:2.0:nameid-format:persistenturn:oasis:names:tc:SAML:2.0:nameid-format:transient. 这是一个特定于平台的问题,但不是一般的 SAML2 问题。


推荐阅读