我正在使用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返回。
要实现此目的,我需要做哪些配置。
答案 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作为响应断言中的
。