Возвращение имени пользователя как в утверждении SAML в Shibboleth IDPV3.3
Я использую Shibboleth IDPv3.3 для интеграции с нашим SP, и мне удалось заставить SSO-аутентификацию работать с LDAP.
Однако я вижу 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 ответ
Мне удалось заставить Shibboleth IDP v3.3 вернуть имя пользователя, введенное как NameID в ответе SAML, выполнив следующее
В атрибуте 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'} }" />
С этими 3 частями конфигурации и убедившись, что атрибут-фильтр настроен на освобождение всех атрибутов, я смог заполнить UserID, введенный пользователем в Shibboleth IDP, как в утверждении ответа.