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

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:

1

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>
2

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

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:

1

Criação do salt

O salt será utilizado para gerar o identificador persistente. Execute o comando abaixo e salve o resultado:

openssl rand -base64 32

Em seguida, insira o valor gerado ao final do arquivo /opt/shibboleth-idp/credentials/secrets.properties conforme o exemplo abaixo:

idp.cafe.computedIDsalt = ResultadoDoComando
2

Definiçã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=falses
3

Definiçã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>
4

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.service

Realizada 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?