Você está na página 1de 9

Documentação Técnica (DT)

Implantação Federação CAFe

Data Documento: Versão: Autor: Projeto:


30/12/11 1 Lilian Maria Gonçalves Implantação do Shibboleth –
Federação CAFe

Introdução

Este documento descreve os procedimentos que devem ser executados para a instalação e configuração do
Shibboleth para utilização da Federação CAFe, visando a utilização do Periódicos da CAPES com autenticação
centralizada no próprio órgão de origem do servidor e/ou aluno.
Todos os procedimentos devem ser seguidos conforme especificação abaixo para que não haja
dessincronização com o servidor de Brasília e do Rio Grande do Sul.

Objetivo

Esta documentação se refere especificamente a instalação e configuração do aplicativo Shibboleth para


utilização do Periódicos da CAPES através de autenticação hospedada no órgão de origem do servidor e/ou
aluno.

Requisitos

Máquina virtual hoje utilizada no GLPI

• RAM – 02GB
• Máquina virtual instalada no Hyper-V
• Sistema Operacional: Ubuntu Server 10.04
• HD - 127 GB de disco rígido
• 01 interfaces de rede – IP 200.129.244.66

Procedimentos

1/9
Documentação Técnica (DT)
Implantação Federação CAFe

1) Foi instalado o Sistema Operacional Ubuntu versão 10.04 Server e configurado o servidor ntp conforme wiki
da RNP – http://wiki.rnp.br/pages/viewpage.action?pageId=41616299.
2) Foi instalado e configuradoo Tomcat conforme orientação da wiki da RNP –
http://wiki.rnp.br/pages/viewpage.action?pageId=43060377.
3) Foi instalado o Shibboleth-IDP conforme orientação da wiki da RNP –
http://wiki.rnp.br/pages/viewpage.action?pageId=43060402.
Os arquivos só podem ser modificados após instalação, ou seja instalação do Shibboleth que implica a
compilação da aplicação que é realizada na própria plataforma.
Os arquivos a serem alterados são attribute-filter.xml, attribute-resolver.xml, handler.xml, idp-
metadata.xml, java.security, server.xml, idp.xml, sites-available(apache),idp.conf, relying-party.xml. Para a
utilização na Federação CAFe faz-se necessário alteração novamente, indicando o provedor de serviço correto
da Federação.
Os arquivos attribute-resolver.xml e attribute-filter.xml são responsáveis pelo mapeamento dos atributos
do Active Directory e serão especificados no tópico Parâmetros Complementares.
As instruções para resolução e liberação de atributos estão na wiki da RNP –
http://wiki.rnp.br/pages/viewpage.action?pageId=41616318.
Também é importante baixar os certificados e gerar os certificados conforme orientação das páginas da
wiki – http://wiki.rnp.br/pages/viewpage.action?pageId=41616278, http://wiki.rnp.br/pages/viewpage.action?
pageId=43060402.
4) Após realização dos procedimentos, faz-se necessário a solicitação de inclusão do metadados na Federação
de homologação – Federação Chimarrão para que possa confirmar o funcionamento e também homologar os
parâmetros – wiki da RNP – http://wiki.rnp.br/pages/viewpage.action?pageId=41616265,
http://wiki.rnp.br/pages/viewpage.action?pageId=41616270.
5) Após homologado, para entrar na Federação CAFe, inclui-se alguns parâmetros para indicar o servidor da
Federação CAFe – wiki da RNP - http://wiki.rnp.br/pages/viewpage.action?pageId=41616243 – e deverá ser
homologado novamente. Após aceite da homologação, o próprio pessoal da Federação inclui o metadata no
Portal de Periódicos da CAPES e o serviço já estará disponível.
Para os usuários acessarem, deverão passar ainda por procedimentos para posterior utilização, a ser
criada em documentação a parte.

Parâmetros Complementares
Pasta: conf
Arquivo: attribute-filter.xml

Cabeçalho do arquivo não será alterado.


O conteúdo existente referente ao AttributeFilterPolicy poderá ser comentado conforme arquivo
impresso anexo.

<AttributeFilterPolicy id="releaseBasicAttributesToAnyone">
<PolicyRequirementRule xsi:type="basic:ANY" />
<AttributeRule attributeID="sAMAccountName">
<PermitValueRule xsi:type="basic:ANY" />
</AttributeRule>
<AttributeRule attributeID="eduPersonPrincipalName">
<PermitValueRule xsi:type="basic:ANY" />
</AttributeRule>
<AttributeRule attributeID="givenName">
<PermitValueRule xsi:type="basic:ANY" />
2/9
Documentação Técnica (DT)
Implantação Federação CAFe

</AttributeRule>
<AttributeRule attributeID="mail">
<PermitValueRule xsi:type="basic:ANY" />
</AttributeRule>
<AttributeRule attributeID="cn">
<PermitValueRule xsi:type="basic:ANY" />
</AttributeRule>
<AttributeRule attributeID="sn">
<PermitValueRule xsi:type="basic:ANY" />
</AttributeRule>
<AttributeRule attributeID="displayName">
<PermitValueRule xsi:type="basic:ANY" />
</AttributeRule>
<AttributeRule attributeID="brEduAffiliationType">
<PermitValueRule xsi:type="basic:ANY" />
</AttributeRule>

</AttributeFilterPolicy>
<AttributeFilterPolicy id="releaseToChimarraoOrCafe">
<PolicyRequirementRule xsi:type="basic:OR">
<basic:Rule xsi:type="basic:AttributeRequesterString" value="https://chimarrao.ufrgs.br/shibboleth-sp" />
<basic:Rule xsi:type="saml:AttributeRequesterInEntityGroup"
groupID="urn:mace:shibboleth:cafe:chimarrao" />
<basic:Rule xsi:type="saml:AttributeRequesterInEntityGroup" groupID="urn:mace:shibboleth:cafe" />
</PolicyRequirementRule>
</AttributeFilterPolicy>

<AttributeFilterPolicy>
<PolicyRequirementRule xsi:type="basic:OR">
<basic:Rule xsi:type="saml:AttributeRequesterInEntityGroup" groupID="urn:mace:incommon" />
<basic:Rule xsi:type="saml:AttributeRequesterInEntityGroup" groupID="http://ukfederation.org.uk" />
<basic:Rule xsi:type="saml:AttributeRequesterInEntityGroup" groupID="urn:mace:switch.ch:SWITCHaai" />
</PolicyRequirementRule>
<AttributeRule attributeID="eduPersonAffiliation">
<PermitValueRule xsi:type="basic:OR">
<basic:Rule xsi:type="basic:AttributeValueString" value="Tecnico Administrativo" ignoreCase="true" />
<basic:Rule xsi:type="basic:AttributeValueString" value="Aluno" ignoreCase="true" />
<basic:Rule xsi:type="basic:AttributeValueString" value="Docente" ignoreCase="true" />
<basic:Rule xsi:type="basic:AttributeValueString" value="alum" ignoreCase="true" />
<basic:Rule xsi:type="basic:AttributeValueString" value="member" ignoreCase="true" />
<basic:Rule xsi:type="basic:AttributeValueString" value="affiliate" ignoreCase="true" />
<basic:Rule xsi:type="basic:AttributeValueString" value="employee" ignoreCase="true" />
<basic:Rule xsi:type="basic:AttributeValueString" value="library-walk-in" ignoreCase="true" />
</PermitValueRule>
</AttributeRule>
</AttributeFilterPolicy

Arquivo: attribute-resolver.xml

Cabeçalho não é alterado.


O conteúdo existente referente ao AttributeFilterPolicy poderá ser comentado conforme arquivo
impresso anexo.

<resolver:AttributeDefinition id="sAMAccountName" xsi:type="Simple"


xmlns="urn:mace:shibboleth:2.0:resolver:ad" sourceAttributeID="sAMAccountName">
3/9
Documentação Técnica (DT)
Implantação Federação CAFe

<resolver:Dependency ref="myLDAP" />


<resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:mace:dir:attribute-def:sAMAccountName" />
<resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:oid:2561.2.840.113556.1.4.221" friendlyName="sAMAccountName" />
</resolver:AttributeDefinition>

<resolver:AttributeDefinition id="userPrincipalName" xsi:type="Simple"


xmlns="urn:mace:shibboleth:2.0:resolver:ad" sourceAttributeID="userPrincipalName">
<resolver:Dependency ref="myLDAP" />
<resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:mace:dir:attribute-def:userPrincipalName" />
<resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:oid:1.2.840.113556.1.4.656" friendlyName="userPrincipalName" />
</resolver:AttributeDefinition>

<resolver:AttributeDefinition id="eduPersonPrincipalName" xsi:type="Scoped"


xmlns="urn:mace:shibboleth:2.0:resolver:ad" sourceAttributeID="uidMD5" scope="ifmt.edu.br">
<resolver:Dependency ref="uidMD5" />
<resolver:AttributeEncoder xsi:type="SAML1ScopedString"
xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:mace:dir:attribute-
def:eduPersonPrincipalName" />
<resolver:AttributeEncoder xsi:type="SAML2ScopedString"
xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6"
friendlyName="eduPersonPrincipalName" />
</resolver:AttributeDefinition>

<resolver:AttributeDefinition xsi:type="Script" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="uidMD5"


sourceAttributeID="userPrincipalName">
<resolver:Dependency ref="myLDAP" />
- <!--

The script, wrapped in a CDATA section so that special XML characters don't need to be removed

-->
<Script>
- <![CDATA[

importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider);
importPackage(Packages.org.apache.commons.codec.digest);
uidMD5 = new BasicAttribute("uidMD5");
if (typeof userPrincipalName != "undefined" && userPrincipalName != null ){
localpart = DigestUtils.md5Hex(userPrincipalName.getValues().get(0));
uidMD5.getValues().add(localpart);
importPackage(Packages.org.slf4j);
logger = LoggerFactory.getLogger("edu.internet2.middleware.shibboleth.resolver.Script.UID");
logger.info("uid: "+userPrincipalName.getValues().get(0)+" md5: "+localpart);
}

]]>
</Script>
</resolver:AttributeDefinition>

4/9
Documentação Técnica (DT)
Implantação Federação CAFe

<resolver:AttributeDefinition id="givenName" xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad"


sourceAttributeID="givenName">
<resolver:Dependency ref="myLDAP" />
<resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:mace:dir:attribute-def:givenName" />
<resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:oid:2.5.4.42" friendlyName="givenName" />
</resolver:AttributeDefinition>

<resolver:AttributeDefinition id="mail" xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad"


sourceAttributeID="mail">
<resolver:Dependency ref="myLDAP" />
<resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:mace:dir:attribute-def:mail" />
<resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:oid:0.9.2342.19200300.100.1.3" friendlyName="mail" />
</resolver:AttributeDefinition>
<resolver:AttributeDefinition id="cn" xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad"
sourceAttributeID="cn">
<resolver:Dependency ref="myLDAP" />
<resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:mace:dir:attribute-def:cn" />
<resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:oid:2.5.4.3" friendlyName="cn" />
</resolver:AttributeDefinition>
<resolver:AttributeDefinition id="sn" xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad"
sourceAttributeID="sn">
<resolver:Dependency ref="myLDAP" />
<resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:mace:dir:attribute-def:sn" />
<resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:oid:2.5.4.4" friendlyName="sn" />
</resolver:AttributeDefinition>
<resolver:AttributeDefinition id="displayName" xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad"
sourceAttributeID="displayName">
<resolver:Dependency ref="myLDAP" />
<resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:mace:dir:attribute-def:displayName" />
<resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:oid:2.5.5.12" friendlyName="displayName" />
</resolver:AttributeDefinition>
<resolver:AttributeDefinition id="description" xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad"
sourceAttributeID="description">
<resolver:Dependency ref="myLDAP" />
<resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:mace:dir:attribute-def:description" />
<resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:oid:2.5.4.13" friendlyName="description" />
</resolver:AttributeDefinition>

<resolver:AttributeDefinition id="brEduAffiliationType" xsi:type="Mapped"


xmlns="urn:mace:shibboleth:2.0:resolver:ad" sourceAttributeID="description">
<resolver:Dependency ref="description" />
<resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:mace:rnp.br:attribute-def:brEduAffiliationType" />
<resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:oid:1.3.6.1.4.1.15996.100.1.1.2.1" friendlyName="brEduAffiliationType" />
<DefaultValue passThru="false" />
5/9
Documentação Técnica (DT)
Implantação Federação CAFe

<ValueMap>
<ReturnValue>employee</ReturnValue>
<SourceValue>Tecnico Administrativo</SourceValue>
</ValueMap>
<ValueMap>
<ReturnValue>faculty</ReturnValue>
<SourceValue>Docente</SourceValue>
</ValueMap>
<ValueMap>
<ReturnValue>student</ReturnValue>
<SourceValue>Aluno</SourceValue>
<SourceValue>Estagiario</SourceValue>
<SourceValue>Bolsista</SourceValue>
</ValueMap>
<ValueMap>
<ReturnValue>other</ReturnValue>
<SourceValue>Tecnico Terceirizado</SourceValue>
<SourceValue>Convidado</SourceValue>
</ValueMap>
</resolver:AttributeDefinition>

<resolver:AttributeDefinition id="transientId" xsi:type="TransientId"


xmlns="urn:mace:shibboleth:2.0:resolver:ad">
<resolver:AttributeEncoder xsi:type="SAML1StringNameIdentifier"
xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
nameFormat="urn:mace:shibboleth:1.0:nameIdentifier" />
<resolver:AttributeEncoder xsi:type="SAML2StringNameID"
xmlns="urn:mace:shibboleth:2.0:attribute:encoder" nameFormat="urn:oasis:names:tc:SAML:2.0:nameid-
format:transient" />
</resolver:AttributeDefinition>

<resolver:DataConnector id="myLDAP" xsi:type="LDAPDirectory"


xmlns="urn:mace:shibboleth:2.0:resolver:dc" ldapURL="ldap://<seuIP>:3268" baseDN="dc=<seu dominio>l"
principal="<usuario>@<dominio>" principalCredential="<sua senha>" searchScope="SUBTREE"
mergeResults="true" cacheResults="false" maxResultSize="1" searchTimeLimit="3000">

<FilterTemplate>
- <![CDATA[

(samAccountName=$requestContext.principalName)

]]>
</FilterTemplate>
<ReturnAttributes>userPrincipalName mail sn cn SAMAccountName givenName displayName description
createTimeStamp</ReturnAttributes>
<LDAPProperty name="java.naming.referral" value="follow" />
</resolver:DataConnector>

Arquivo: handler.xml

Alterar somente na parte indicada abaixo.

- <!--

6/9
Documentação Técnica (DT)
Implantação Federação CAFe

Login Handlers

-->
- <!--
<LoginHandler xsi:type="RemoteUser">
<AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</AuthenticationMethod>
</LoginHandler>

-->
- <!--
Username/password login handler

-->
- <LoginHandler xsi:type="UsernamePassword" jaasConfigurationLocation="file:///opt/shibboleth-
idp/conf/login.config">
<AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</AuthenticationMe
thod>
</LoginHandler>

Arquivo: relying-party.xml

Alterar o arquivo somente no local mencionado abaixo. Também está constante a impressão
do arquivo já alterado.

<MetadataProvider id="URLMD" xsi:type="FileBackedHTTPMetadataProvider"


xmlns="urn:mace:shibboleth:2.0:metadata"
metadataURL="https://ds.chimarrao.cafe.rnp.br/metadata/chimarrao-metadata.xml"
backingFile="/opt/shibboleth-idp/metadata/chimarrao-metadata.xml">
<MetadataFilter xsi:type="ChainingFilter" xmlns="urn:mace:shibboleth:2.0:metadata">
- <!--

<MetadataFilter xsi:type="RequiredValidUntil" xmlns="urn:mace:shibboleth:2.0:metadata"


maxValidityInterval="604800" />
<MetadataFilter xsi:type="SignatureValidation" xmlns="urn:mace:shibboleth:2.0:metadata"
trustEngineRef="shibboleth.MetadataTrustEngine"
requireSignedMetadata="true" />

-->
<MetadataFilter xsi:type="EntityRoleWhiteList" xmlns="urn:mace:shibboleth:2.0:metadata">
<RetainedRole>samlmd:SPSSODescriptor</RetainedRole>
</MetadataFilter>
</MetadataFilter>
</MetadataProvider>
<MetadataProvider id="cafe" xsi:type="FileBackedHTTPMetadataProvider"
xmlns="urn:mace:shibboleth:2.0:metadata" metadataURL="https://ds.cafe.rnp.br/metadata/cafe-
metadata.xml" backingFile="/opt/shibboleth-idp/metadata/cafe-metadata.xml">
<MetadataFilter xsi:type="ChainingFilter" xmlns="urn:mace:shibboleth:2.0:metadata">
<MetadataFilter xsi:type="EntityRoleWhiteList" xmlns="urn:mace:shibboleth:2.0:metadata">
<RetainedRole>samlmd:SPSSODescriptor</RetainedRole>
</MetadataFilter>
</MetadataFilter>
</MetadataProvider>
</MetadataProvider>
7/9
Documentação Técnica (DT)
Implantação Federação CAFe

Arquivo: login.config
Alterar conforme mostrado abaixo.

ShibUserPassAuth {
edu.vt.middleware.ldap.jaas.LdapLoginModule required
host="<seuIP>"
port="3268"
base="dc=<seu dominio>"
ssl="false"
userField="sAMAccountName"
serviceUser="<usuario>@<dominio>"
serviceCredential="<sua senha>"
subtreeSearch="true";
};

Pasta: metadata

Acrescentar os arquivos cafe-metadata.xml e chimarrao-metadata.xml.

Arquivo: idp-metadata.xml
Alterar somente onde é indicado e conforme anexo a este do arquivo impresso.

<Extensions>
<shibmd:Scope regexp="false">ifmt.edu.br</shibmd:Scope>
</Extensions>

Acrescentar o certificado do arquivo /opt/shibboleth-idp/credentials/idp.crt na tag KeyDescriptor


do arquivo idp-metadata.xml. Existem 02 (dois) locais que devem ser acrescentados esse
certificado.
<Organization>
<OrganizationName xml:lang="en">IFMT - Instituto Federal de Mato Grosso</OrganizationName>
<OrganizationDisplayName xml:lang="en">IFMT - Instituto Federal de Mato Grosso</OrganizationDisplayName>
<OrganizationURL xml:lang="en">http://www.ifmt.edu.br/</OrganizationURL>
</Organization>
<ContactPerson contactType="technical">
<SurName>Diretoria de Gestao da Tecnologia da Informacao</SurName>
<EmailAddress>dgti@ifmt.edu.br</EmailAddress>
</ContactPerson>
</EntityDescriptor>

Observações e cuidados na utilização e na manutenção

O horário do servidor tem que estar sincronizado com a RNP.


Qualquer problema ou suporte deverá ser entrado em contato com o pessoal do suporte da federação
através do e-mail: suporte-cafe@cpd.ufrgs.br. A configuração que está hoje no servidor já está homologada e
em funcionamento.

8/9
Documentação Técnica (DT)
Implantação Federação CAFe

Assinatura Analista TI Data e Hora

Lilian Maria Gonçalves

9/9

Você também pode gostar