Já no arquivo /opt/shibboleth-idp/conf/saml-nameid.xml, dentro do item <util:list id="shibboleth.SAML2NameIDGenerators">, adicione a configuração abaixo:
Para criar os atribututos que serão usados (ImmutableID e UserId), altere o arquivo /opt/shibboleth-idp/conf/attribute-resolver.xml adicionando as linhas a seguir:
<!-- CAFe - ImmutableID para Microsoft -->
<AttributeDefinition xsi:type="Simple" id="ImmutableID">
<InputDataConnector ref="dcLDAP" attributeNames="entryUUID"/>
</AttributeDefinition>
<!-- CAFe - UserId para Microsoft -->
<AttributeDefinition scope="%{idp.scope}" xsi:type="Scoped" id="UserId">
<InputDataConnector ref="dcLDAP" attributeNames="uid"/>
</AttributeDefinition>
Ainda no arquivo /opt/shibboleth-idp/conf/attribute-resolver.xml, adicione o atributo entryUUID à lista de atributos retornaveis do dataconnector dcLDAP. Exemplo:
<ReturnAttributes>%{idp.authn.LDAP.returnAttributes} mail cn givenName sn brPersonCPF schacDateOfBirth entryUUID</ReturnAttributes>
O uso dos atributos entryUUID e uid é apropriado para ambientes OpenLDAP. Caso esteja utilizando outro diretório deve-se substituí-los pelos atributos correspondentes. Ex.: AD - entryUUID > objectGUID e uid > sAMAccountName.
Crie o arquivo /opt/shibboleth-idp/conf/attributes/custom/ImmutableID.properties com o seguinte conteúdo:
Crie o arquivo /opt/shibboleth-idp/conf/attributes/custom/UserId.properties com o seguinte conteúdo:
# Microsoft Entra User ID
id=UserId
transcoder=SAML2ScopedStringTranscoder
displayName.en=Microsoft Entra User ID
displayName.pt-br=Microsoft Entra User ID
description.en=Microsoft Entra User ID
description.pt-br=Microsoft Entra User ID
saml2.name=urn:oid:0.9.2342.19200300.100.1.1
saml1.encodeType=false
Para configurar o provedor de metadados, altere o arquivo /opt/shibboleth-idp/conf/metadata-providers.xml e adicione a configuração abaixo:
A seguir baixe o arquivo de metadados da Microsoft e armazene-o no local apropriado e remova a linha <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>.