在Shibboleth IDPV3.3中的SAML断言中返回用户名

时间:2018-12-14 15:46:56

标签: shibboleth

我正在使用Shibboleth IDPv3.3与我们的SP集成,并且能够在LDAP工作的情况下获得SSO身份验证。

但是我看到的是NameID,它是一个生成的,而不是我在身份验证期间输入的那个

 <saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
                          NameQualifier="https://shib.nslab.com/idp/shibboleth"
                          SPNameQualifier="https://chandracppm.nslab.com/networkservices/saml2/sp"
                          >7DBQ2seeNYvP9l6RsCrJZRh8/kw=</saml2:NameID>

对于我们的SP,我们希望将用户在登录页面中输入的实际用户名作为NameID返回。

要实现此目的,我需要做哪些配置。

1 个答案:

答案 0 :(得分:0)

通过执行以下操作,我能够获取Shibboleth IDP v3.3以返回在SAML响应中作为NameID输入的用户名

在attribute-resolver.conf

<AttributeDefinition id="uid" xsi:type="PrincipalName">
    <AttributeEncoder xsi:type="SAML1String" name="urn:mace:dir:attribute-def:uid" encodeType="false" />
    <AttributeEncoder xsi:type="SAML2String" name="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" friendlyName="uid" encodeType="false" />
</AttributeDefinition>
在SP元数据中

指定NameID格式

<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</NameIDFormat>

在saml-nameid.xml中

注释掉除豆子之外的所有其他豆子

 <util:list id="shibboleth.SAML2NameIDGenerators">
<bean parent="shibboleth.SAML2AttributeSourcedGenerator"
        p:format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
        p:attributeSourceIds="#{ {'uid'} }" />

通过这三项配置,并确保将attribute-filter设置为释放所有属性,我才能填充用户在Shibboleth IDP中输入的用户ID作为响应断言中的