Configurando eduPersonScopedAffiliation e eduPersonTargetedID
Esse procedimento visa guiar durante o processo de configuração e liberação do atributos eduPersonScopedAffiliation e eduPersonTargetID, essencial para acessar certos serviços da federação.
Elaborado por Rui Ribeiro – [email protected]
Visão Geral
Este roteiro descreve o processo de configuração dos atributos eduPersonTargetedID e eduPersonScopedAffiliation.
Cada atributo é abordado em uma seção específica, o que permite uma compreensão mais clara e estruturada das etapas necessárias para sua correta implementação.
Configuração do eduPersonScopedAffiliation
A configuração deste atributo pressupõe que o atributo eduPersonAffiliation já esteja devidamente configurado.
O atributo eduPersonScopedAffiliation é composto pelo valor do atributo de vínculo (eduPersonAffiliation) acrescido do sufixo institucional. Exemplo: [email protected]
A configuração é realizada em duas etapas:
Geração do atributo
Para gerar o atributo, adicione a seguinte definição no arquivo /opt/shibboleth-idp/conf/attribute-resolver.xml. A definição deve ser inserida antes do bloco de configuração dos Data Connectors.
<!-- eduPersonScopedAffiliation -->
<AttributeDefinition id="eduPersonScopedAffiliation" xsi:type="Scoped" scope="%{idp.scope}">
<InputAttributeDefinition ref="eduPersonAffiliation" />
</AttributeDefinition>Liberação do atributo
Após configurada a geração, é necessário liberar o atributo para os provedores de serviço. Para isso, edite o arquivo /opt/shibboleth-idp/conf/attribute-filter.xml e adicione o trecho abaixo nos blocos AttributeFilterPolicy denominados releaseToChimarraoOrCafe e releaseToEduGAIN.
<AttributeRule attributeID="eduPersonScopedAffiliation">
<PermitValueRule xsi:type="ANY" />
</AttributeRule>Configuração do eduPersonTargetedID
eduPersonTargetedIDO atributo eduPersonTargetedID encontra-se obsoleto desde janeiro de 2020, conforme a especificação eduPerson 2020-01.
Ele foi substituído pelo NameID no formato persistente (persistent-id).
Contudo, sua configuração ainda pode ser necessária, pois alguns provedores de serviço (SPs) continuam a exigir este atributo.
O atributo eduPersonTargetedID consiste em um identificador único, opaco e não reutilizável* utilizado para representar de forma persistente e anônima o relacionamento entre um usuário e um provedor de serviço.
A configuração é composta por quatro etapas principais:
Criação do salt
O salt será utilizado para gerar o identificador persistente. Execute o comando abaixo e salve o resultado:
openssl rand -base64 32Em seguida, insira o valor gerado ao final do arquivo
/opt/shibboleth-idp/credentials/secrets.properties conforme o exemplo abaixo:
idp.cafe.computedIDsalt = ResultadoDoComandoDefinição das propriedades do atributo
O atributo eduPersonTargetedID não está mais presente no schema eduPerson. Por esse motivo, suas propriedades precisam ser definidas manualmente no Shibboleth IDP.
Crie o arquivo /opt/shibboleth-idp/conf/attributes/custom/eduPersonTargetedID.properties e adicione o conteúdo abaixo:
# eduPersonTargetedID
id=eduPersonTargetedID
transcoder=SAML2XMLObjectTranscoder
saml2.name=urn:oid:1.3.6.1.4.1.5923.1.1.1.10
displayName.en=Opaque per-service identifier eduPersonTargetedID
description.en=Opaque per-service identifier eduPersonTargetedID
saml1.encodeType=falsesDefinição e vinculação do atributo
O próximo passo consiste na criação da definição do atributo e de seu respectivo data connector. Para isso, edite o arquivo
/opt/shibboleth-idp/conf/attribute-resolver.xml e faça as seguintes alterações.
Definição do atributo
Adicione a definição abaixo antes do bloco de configuração dos Data Connectors.
<!-- CAFe - eduPersonTargetedID -->
<AttributeDefinition id="eduPersonTargetedID" xsi:type="SAML2NameID"
nameIdFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">
<InputDataConnector ref="ComputedIDConnector" attributeNames="ComputedID" />
</AttributeDefinition>Definição do Data Connector
Adicione este bloco antes do DataConnector cujo id é staticAttributes.
<DataConnector id="ComputedIDConnector" xsi:type="ComputedId"
generatedAttributeID="ComputedID" salt="%{idp.cafe.computedIDsalt}">
<InputDataConnector ref="dcLDAP"
attributeNames="%{idp.authn.LDAP.returnAttributes}" />
</DataConnector>Liberação do atributo
Para disponibilizar o atributo aos provedores de serviço, é necessário criar uma nova política de liberação. Edite o arquivo
/opt/shibboleth-idp/conf/attribute-filter.xml e adicione o bloco a seguir antes do AttributeFilterPolicy cujo id é releaseToChimarraoOrCafe.
<AttributeFilterPolicy id="releaseToAnyone">
<PolicyRequirementRule xsi:type="ANY"/>
<AttributeRule attributeID="eduPersonTargetedID">
<PermitValueRule xsi:type="ANY" />
</AttributeRule>
</AttributeFilterPolicy>Ações Finais
Após concluir a configuração de um ou ambos os atributos, é necessário reiniciar o Shibboleth IdP para aplicar as alterações. Para tanto, execute o comando abaixo:
systemctl restart jetty.serviceRealizada a reinicialização do Shibboleth IDP é possível testar os novos atributos através do Serviço de Homologação de Atributos
Validação
Após a reinicialização, é possível testar a disponibilidade dos novos atributos por meio do Serviço de Homologação de Atributos da RNP. Após autenticar-se no serviço, verifique se os atributos eduPersonScopedAffiliation e/ou eduPersonTargetedID aparecem corretamente listados.
Isto foi útil?