如何从SAML响应中识别用户?

时间:2018-09-20 16:06:35

标签: java saml-2.0 spring-saml shibboleth

我已经实现了Single Sign On来访问我的Sp应用程序。它使用shibboleth服务器作为Identity Provider。登录IDP系统后,我收到来自IDP的Saml响应 其中包含Saml Assertion,但我现在不知道如何在我的应用中识别此用户。 saml断言包含以下数据:

*

  

以下属性由您的身份提供商提供   urn:oasis:names:tc:SAML:2.0:nameid-format:transient   AAdzZWNyZXQxlKzPy2zEKyk / rEaN2jVTXi6mEvaFbOzXwkMNEZMB + TkQcmWW4LZT70hx3cAVEyrBSdXkT2glVkPGuncVMe5PfFipJjVAGE7jdRGsFef6CQzR1EESFef6CqzD   urn:oid:1.3.6.1.4.1.5923.1.1.1.9affiliate@test.ukfederation.org.uk,   会员,i8mqNNzYfweNDzGr / PafYaMzWko =,   alice@test.ukfederation.org.uk urn:oid:1.3.6.1.4.1.5923.1.1.1.1   affiliate@test.ukfederation.org.uk,会员,   i8mqNNzYfweNDzGr / PafYaMzWko =,alice@test.ukfederation.org.uk   urn:oid:1.3.6.1.4.1.5923.1.1.1.10 associate@test.ukfederation.org.uk,   会员,i8mqNNzYfweNDzGr / PafYaMzWko =,   alice@test.ukfederation.org.uk urn:oid:1.3.6.1.4.1.5923.1.1.1.6   affiliate@test.ukfederation.org.uk,会员,   i8mqNNzYfweNDzGr / PafYaMzWko =,alice@test.ukfederation.org.uk

*

我试图使用name-id与idp中的用户标识系统中的用户,但是此值在每次登录后都会更改。

例如:Google Suite使用urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress作为名称标识符 并可能找到使用电子邮件地址的用户,但在这种情况下,我被困住了。 请问哪个是最好的方法?我应该使用属性吗?

1 个答案:

答案 0 :(得分:1)

这使用对象标识符(OID)格式。

例如1.3.6.1.4.1.5923.1.1.1.6是eduPersonPrincipalName

引用this