从 SAMLResponse 检索用户名和详细信息
Retrieving username and details form SAMLResponse
我正在使用 ssocircle 作为我的 IDP。
如何在响应中获取用户名,任何代码示例都会有所帮助。
我的 saml 请求如下。
<saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
AssertionConsumerServiceURL="http://localhost:38080/ICDWeb/saml/SSO"
Destination="https://idp.ssocircle.com:443/sso/SSORedirect/metaAlias/ssocircle"
ForceAuthn="false"
ID="a3h6ehei2fjhghi3240a10e2ad03ifj"
IsPassive="false"
IssueInstant="2015-03-27T06:12:49.597Z"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Version="2.0"
>
<saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">http://172.16.246.146:38080:ICDWeb/saml/metadata</saml2:Issuer>
</saml2p:AuthnRequest>
您需要配置您的 IDP 以发送您需要的属性。
在 SP 端,您可以从 SecurityContextHolder.getContext().getAuthentication().getCredentials()
中可用的 SAMLCredential
对象加载 IDP 发送的属性。打电话给例如credential.getAttributeAsString("myAttribute")
将 return IDP 发送的值。 IDP 发送的 NameID
值可用作 SecurityContextHolder.getContext().getAuthentication().getPrincipal()
中的主体。
我正在使用 ssocircle 作为我的 IDP。 如何在响应中获取用户名,任何代码示例都会有所帮助。 我的 saml 请求如下。
<saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
AssertionConsumerServiceURL="http://localhost:38080/ICDWeb/saml/SSO"
Destination="https://idp.ssocircle.com:443/sso/SSORedirect/metaAlias/ssocircle"
ForceAuthn="false"
ID="a3h6ehei2fjhghi3240a10e2ad03ifj"
IsPassive="false"
IssueInstant="2015-03-27T06:12:49.597Z"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Version="2.0"
>
<saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">http://172.16.246.146:38080:ICDWeb/saml/metadata</saml2:Issuer>
</saml2p:AuthnRequest>
您需要配置您的 IDP 以发送您需要的属性。
在 SP 端,您可以从 SecurityContextHolder.getContext().getAuthentication().getCredentials()
中可用的 SAMLCredential
对象加载 IDP 发送的属性。打电话给例如credential.getAttributeAsString("myAttribute")
将 return IDP 发送的值。 IDP 发送的 NameID
值可用作 SecurityContextHolder.getContext().getAuthentication().getPrincipal()
中的主体。