NameID 元素必须作为主题的一部分存在
NameID element must be present as part of the Subject
嘿,我正在尝试通过我的服务提供商配置 IDP,但是当 saml 响应来自 IDP 时,我的服务提供商出现了这个错误
org.opensaml.common.SAMLException:NameID 元素必须作为响应消息中主题的一部分出现,请在 IDP 配置中启用它
在 org.springframework.security.saml.websso.WebSSOProfileConsumerImpl.processAuthenticationResponse
我在 idp - 元数据中配置了 NameId xml
<NameID>urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName</NameID>
<NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
here is the whole response
<?xml version="1.0" encoding="UTF-8"?><saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" Destination="http://localhost:8082/saml/SSO" ID="_9129c7121ce71d24e32d5dfe527bd760" InResponseTo="a1eei99dgc9442d72a98h62i9d179j9" IssueInstant="2016-05-31T15:52:04.736Z" Version="2.0">
<saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">idp.test.com/idp/shibboleth</saml2:Issuer>
<saml2p:Status>
<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</saml2p:Status>
<saml2:EncryptedAssertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
<xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" Id="_4fcade81e4aae59bfa099e692158a687" Type="http://www.w3.org/2001/04/xmlenc#Element">
<xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"/>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<xenc:EncryptedKey Id="_bd99cfd23b6342cf0b4adf7fa03d203f" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
</xenc:EncryptionMethod>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate></ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<xenc:CipherValue>ssss</xenc:CipherValue>
</xenc:CipherData>
</xenc:EncryptedKey>
</ds:KeyInfo>
<xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<xenc:CipherValue>!!!</xenc:CipherValue>
</xenc:CipherData>
</xenc:EncryptedData>
</saml2:EncryptedAssertion>
</saml2p:Response>
我不明白什么是 nameID 以及如何配置它
我会感谢你的帮助
发送
在 SAML 世界中,return 有两种方式可以将用户身份传递给 SP。主题区域或属性声明区域。许多较新的 SP 配置在属性语句中使用属性,但仍应填充主题区域。如果 SP 使用属性获取用户身份,则将 Shibboleth 配置为 return transientId
到有问题的 SP。否则,您需要参考 SP docs/config 或元数据以确定 SP 支持哪些 NameID 格式,并将 Shibboleth 配置为 return 具有适当格式的适当值。
一个很好的后续阅读是 shib 用户的线程:http://shibboleth.1660669.n2.nabble.com/No-NameID-released-td7605312.html。
嘿,我正在尝试通过我的服务提供商配置 IDP,但是当 saml 响应来自 IDP 时,我的服务提供商出现了这个错误
org.opensaml.common.SAMLException:NameID 元素必须作为响应消息中主题的一部分出现,请在 IDP 配置中启用它 在 org.springframework.security.saml.websso.WebSSOProfileConsumerImpl.processAuthenticationResponse
我在 idp - 元数据中配置了 NameId xml
<NameID>urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName</NameID>
<NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
here is the whole response
<?xml version="1.0" encoding="UTF-8"?><saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" Destination="http://localhost:8082/saml/SSO" ID="_9129c7121ce71d24e32d5dfe527bd760" InResponseTo="a1eei99dgc9442d72a98h62i9d179j9" IssueInstant="2016-05-31T15:52:04.736Z" Version="2.0">
<saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">idp.test.com/idp/shibboleth</saml2:Issuer>
<saml2p:Status>
<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</saml2p:Status>
<saml2:EncryptedAssertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
<xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" Id="_4fcade81e4aae59bfa099e692158a687" Type="http://www.w3.org/2001/04/xmlenc#Element">
<xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"/>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<xenc:EncryptedKey Id="_bd99cfd23b6342cf0b4adf7fa03d203f" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
</xenc:EncryptionMethod>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate></ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<xenc:CipherValue>ssss</xenc:CipherValue>
</xenc:CipherData>
</xenc:EncryptedKey>
</ds:KeyInfo>
<xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<xenc:CipherValue>!!!</xenc:CipherValue>
</xenc:CipherData>
</xenc:EncryptedData>
</saml2:EncryptedAssertion>
</saml2p:Response>
我不明白什么是 nameID 以及如何配置它 我会感谢你的帮助 发送
在 SAML 世界中,return 有两种方式可以将用户身份传递给 SP。主题区域或属性声明区域。许多较新的 SP 配置在属性语句中使用属性,但仍应填充主题区域。如果 SP 使用属性获取用户身份,则将 Shibboleth 配置为 return transientId
到有问题的 SP。否则,您需要参考 SP docs/config 或元数据以确定 SP 支持哪些 NameID 格式,并将 Shibboleth 配置为 return 具有适当格式的适当值。
一个很好的后续阅读是 shib 用户的线程:http://shibboleth.1660669.n2.nabble.com/No-NameID-released-td7605312.html。