Мне удалось получить Shibboleth IDP v3.3 для возврата имени пользователя, введенного в качестве NameID в ответе SAML, выполнив следующие действия:
В 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
Закомментирование всех других bean-компонентов, кроме
<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, как в утверждении ответа.