CAFe
  • CAFe
  • Central de Ajuda - CAFe
  • Políticas do Serviço
    • Termo de privacidade do Provedor de Serviço (SP)
    • CAFe Service Provider (SP) Privacy Agreement
    • Política da Comunidade Acadêmica Federada (CAFe)
    • Politics of Federated Academic Community (CAFe)
  • Aviso - Vulnerabilidade Shibboleth SP
  • Verificação de Inicidentes
  • Lista de Clientes
  • Atributos da CAFe
  • Perguntas Frequentes
    • FAQ - CAFe
    • FAQ - Pentaho
  • Pentaho
    • Pentaho
    • Procedimentos de Instalação
      • Procedimento de importação do template de Máquina Virtual (PDI 9.0)
      • Instalação Cliente PDI - Versão 9
      • Configuração do EID-PDI
        • Apresentação da Arquitetura do EID-PDI
        • Vídeo de configuração do EID-PDI
        • Descrição do modelo de dados EID
        • Descrição dos Jobs e Transformações disponíveis no PDI/EID
        • Descrição dos parâmetros do EID/PDI 9.0
        • Logs EID PDI
      • Controle de versão Pentaho Data Integration
      • Pentaho Módulo Web
        • Relatórios Pentaho
        • Agendamento de Jobs
      • Instalação do Apache DS - Windows
      • Tutorial Básico Apache DS
      • Procedimentos de criação da VM EID PDI
  • OpenLDAP
    • Instalação do OpenLDAP com esquema brEduPerson no Ubuntu 22.04
    • Habilitando o campo do sambaNTPassword
  • IDP CAFe
    • Requisitos de Uso
    • Manual de Usuário
      • Problemas no acesso CAFe
      • Coleta/Verificação de Atributos
        • Chimarrão (Homologação)
        • CAFe (Produção)
    • Procedimentos Técnicos
      • Como alterar o atributo principal de autenticação em seu IDP
      • Gerar nova chave e certificado para o shibboleth
      • Gerar nova chave e certificado para o Apache (auto assinado)
      • Instalando um certificado web válido em um IdP
      • Critérios de consulta ao OpenLDAP para Shibboleth
      • Altera nível do log do IDP para DEBUG
      • Ajustando Atributos CPF e Data de Nascimento para ICPEdu
      • Alterando o hostname e dominio de um IdP em produção na CAFe
      • Desabilitando o serviço Fail2ban do IdP CAFe
      • Instalando certificado Let's Encrypt no IDP Shibboleth
      • Customização da mensagens de login no IDP
      • Integrando o Office 365 com Shibboleth IDP
        • Office 365 - Configuração no Shibbboleth IDP
        • Office 365 - Configuração no Microsoft Entra
      • Instalação Manual do MFA CAFe
        • Requisitos de instalação do MFA
        • Procedimento de instalação
        • Configurações importantes - CAPTCHA
        • Ambiente com Redundância
        • Operando MFA
      • Alta Disponibilidade do Serviço
  • RPilot (IDP)
    • Instalação IDP RPilot
      • Escolhendo o Produto
      • Execução da Receita
        • Solicitar Execução
        • Parâmetros de uma receita
        • Revisão das Variáveis
        • Solicitações de Execuções
      • Homologar a instalação do IDP
      • Homologar a instalação do MFA
      • Customização da logo Institucional
    • Sobre o MFA CAFe
      • Senhas descartáveis MFA
      • Códigos de Emergência MFA
  • Service Provider (SP)
    • Guia de Instalação Shibboleth SP (3.4)
Powered by GitBook
On this page
  • Alteração do atributo no IDP
  • Alteração do texto de acesso

Was this helpful?

Export as PDF
  1. IDP CAFe
  2. Procedimentos Técnicos

Como alterar o atributo principal de autenticação em seu IDP

Esse roteiro tem como finalidade ajudar nossos clientes em como alterar o atributo principal de autenticação em seu IDP.

Alteração do atributo no IDP

Em seu IDP, assim como em todo IDP, o mesmo possui um atributo chave que é usado como o atributo de autenticação principal. Em clientes que usam LDAP esse atributo é setado por padrão como sendo o "uid" e em clientes que usam o Microsoft AD esse atributo por padrão é setado como sendo o atributo "sAMAccountName".

Clientes nos perguntam se é possível alterar esse atributo principal de login na federação CAFe, e sim, é possível ! Abaixo eu descrevo os passos necessários para que façam esse ajusto em seus IDPs.

Será necessário apenas ajustar e alterar informações em um único arquivo do IDP, é o arquivo "ldap.properties". Sugiro que seja feito um backup do arquivo original antes de altera-lo.

sudo -i

cp -a /opt/shibboleth-idp/conf/ldap.properties /home/cafe/ldap.properties-original

Vamos ao procedimento de alteração, acesse o arquivo "ldap.properties" como root:

sudo -i
vim /opt/shibboleth-idp/conf/ldap.properties

Faremos o exemplo usando um arquivo "ldap.properties" usando a configuração padrão de um LDAP, com isso o atributo principal será o "uid". Se você estiver usando um Microsoft AD esse atributo será o "sAMAccountName" não se preocupe basta fazer o mesmo procedimento.

# LDAP authentication (and possibly attribute resolver) configuration
# Note, this doesn't apply to the use of JAAS authentication via LDAP

## Authenticator strategy, either anonSearchAuthenticator, bindSearchAuthenticator, directAuthenticator, adAuthenticator
idp.authn.LDAP.authenticator                    = bindSearchAuthenticator

## Connection properties ##
idp.authn.LDAP.ldapURL                          = ldaps://ldap.rnp.br:636
idp.authn.LDAP.useStartTLS                      = false
# Time in milliseconds that connects will block
idp.authn.LDAP.connectTimeout                   = PT3S
# Time in milliseconds to wait for responses
idp.authn.LDAP.responseTimeout                  = PT3S
# Connection strategy to use when multiple URLs are supplied, either ACTIVE_PASSIVE, ROUND_ROBIN, RANDOM
#idp.authn.LDAP.connectionStrategy              = ACTIVE_PASSIVE

## SSL configuration, either jvmTrust, certificateTrust, or keyStoreTrust
idp.authn.LDAP.sslConfig                        = certificateTrust
## If using certificateTrust above, set to the trusted certificate's path
idp.authn.LDAP.trustCertificates                = %{idp.home}/credentials/ldap-server.crt
## If using keyStoreTrust above, set to the truststore path
#idp.authn.LDAP.trustStore                      = %{idp.home}/credentials/ldap-server.truststore

## Return attributes during authentication
idp.authn.LDAP.returnAttributes                 = uid

## DN resolution properties ##

# Search DN resolution, used by anonSearchAuthenticator, bindSearchAuthenticator
# for AD: CN=Users,DC=example,DC=org
idp.authn.LDAP.baseDN                           = ou=RNP,dc=rnp,dc=local
idp.authn.LDAP.subtreeSearch                    = true
idp.authn.LDAP.userFilter                       = (uid={user})
# bind search configuration
# for AD: idp.authn.LDAP.bindDN=adminuser@domain.com
idp.authn.LDAP.bindDN                           = uid=app.shib.r,OU=APLICACOES,dc=rnp,dc=local

# Format DN resolution, used by directAuthenticator, adAuthenticator
# for AD use idp.authn.LDAP.dnFormat=%s@domain.com
idp.authn.LDAP.dnFormat                         = uid=%s,ou=RNP,dc=rnp,dc=local

# pool passivator, either none, bind or anonymousBind
#idp.authn.LDAP.bindPoolPassivator              = none

# LDAP attribute configuration, see attribute-resolver.xml
# Note, this likely won't apply to the use of legacy V2 resolver configurations
idp.attribute.resolver.LDAP.ldapURL             = %{idp.authn.LDAP.ldapURL}
idp.attribute.resolver.LDAP.connectTimeout      = %{idp.authn.LDAP.connectTimeout:PT3S}
idp.attribute.resolver.LDAP.responseTimeout     = %{idp.authn.LDAP.responseTimeout:PT3S}
idp.attribute.resolver.LDAP.connectionStrategy  = %{idp.authn.LDAP.connectionStrategy:ACTIVE_PASSIVE}
idp.attribute.resolver.LDAP.baseDN              = %{idp.authn.LDAP.baseDN:undefined}
idp.attribute.resolver.LDAP.bindDN              = %{idp.authn.LDAP.bindDN:undefined}
idp.attribute.resolver.LDAP.useStartTLS         = %{idp.authn.LDAP.useStartTLS:true}
idp.attribute.resolver.LDAP.trustCertificates   = %{idp.authn.LDAP.trustCertificates:undefined}
idp.attribute.resolver.LDAP.searchFilter        = (uid=$resolutionContext.principal)

# LDAP pool configuration, used for both authn and DN resolution
#idp.pool.LDAP.minSize                          = 3
#idp.pool.LDAP.maxSize                          = 10
#idp.pool.LDAP.validateOnCheckout               = false
#idp.pool.LDAP.validatePeriodically             = true
#idp.pool.LDAP.validatePeriod                   = PT5M
#idp.pool.LDAP.validateDN                       =
#idp.pool.LDAP.validateFilter                   = (objectClass=*)
#idp.pool.LDAP.prunePeriod                      = PT5M
#idp.pool.LDAP.idleTime                         = PT10M
#idp.pool.LDAP.blockWaitTime                    = PT3S

As alterações irão ocorrer em apenas 4 linhas, tenha atenção nesse ponto.

Serão as linhas 25, 33, 40 e 55 procure pelas variáveis nesse ordem que segue:

idp.authn.LDAP.returnAttributes                 = uid
idp.authn.LDAP.userFilter                       = (uid={user})
idp.authn.LDAP.dnFormat                         = uid=%s,ou=RNP,dc=rnp,dc=local
idp.attribute.resolver.LDAP.searchFilter        = (uid=$resolutionContext.principal)

Essas variáveis são as responsáveis por determinar qual atributo será usado para login em seu IDP, sendo assim em nosso exemplo o nosso atributo de autenticação no IDP está sendo o "uid". Porém houve a necessidade de se alterar esse atributo e a escolha do novo atributo para login, em nosso exemplo, será o atributo "mail". Como ficaria então essa nova configuração, veja:

idp.authn.LDAP.returnAttributes                 = mail
idp.authn.LDAP.userFilter                       = (mail={user})
idp.authn.LDAP.dnFormat                         = mail=%s,ou=RNP,dc=rnp,dc=local
idp.attribute.resolver.LDAP.searchFilter        = (mail=$resolutionContext.principal)

Repare aonde mudamos os valores para as variáveis, veja como a estrutura deve ficar ao final:

# LDAP authentication (and possibly attribute resolver) configuration
# Note, this doesn't apply to the use of JAAS authentication via LDAP

## Authenticator strategy, either anonSearchAuthenticator, bindSearchAuthenticator, directAuthenticator, adAuthenticator
idp.authn.LDAP.authenticator                    = bindSearchAuthenticator

## Connection properties ##
idp.authn.LDAP.ldapURL                          = ldaps://ldap.rnp.br:636
idp.authn.LDAP.useStartTLS                      = false
# Time in milliseconds that connects will block
idp.authn.LDAP.connectTimeout                   = PT3S
# Time in milliseconds to wait for responses
idp.authn.LDAP.responseTimeout                  = PT3S
# Connection strategy to use when multiple URLs are supplied, either ACTIVE_PASSIVE, ROUND_ROBIN, RANDOM
#idp.authn.LDAP.connectionStrategy              = ACTIVE_PASSIVE

## SSL configuration, either jvmTrust, certificateTrust, or keyStoreTrust
idp.authn.LDAP.sslConfig                        = certificateTrust
## If using certificateTrust above, set to the trusted certificate's path
idp.authn.LDAP.trustCertificates                = %{idp.home}/credentials/ldap-server.crt
## If using keyStoreTrust above, set to the truststore path
#idp.authn.LDAP.trustStore                      = %{idp.home}/credentials/ldap-server.truststore

## Return attributes during authentication
idp.authn.LDAP.returnAttributes                 = mail

## DN resolution properties ##

# Search DN resolution, used by anonSearchAuthenticator, bindSearchAuthenticator
# for AD: CN=Users,DC=example,DC=org
idp.authn.LDAP.baseDN                           = ou=RNP,dc=rnp,dc=local
idp.authn.LDAP.subtreeSearch                    = true
idp.authn.LDAP.userFilter                       = (mail={user})
# bind search configuration
# for AD: idp.authn.LDAP.bindDN=adminuser@domain.com
idp.authn.LDAP.bindDN                           = uid=app.shib.r,OU=APLICACOES,dc=rnp,dc=local

# Format DN resolution, used by directAuthenticator, adAuthenticator
# for AD use idp.authn.LDAP.dnFormat=%s@domain.com
idp.authn.LDAP.dnFormat                         = mail=%s,ou=RNP,dc=rnp,dc=local

# pool passivator, either none, bind or anonymousBind
#idp.authn.LDAP.bindPoolPassivator              = none

# LDAP attribute configuration, see attribute-resolver.xml
# Note, this likely won't apply to the use of legacy V2 resolver configurations
idp.attribute.resolver.LDAP.ldapURL             = %{idp.authn.LDAP.ldapURL}
idp.attribute.resolver.LDAP.connectTimeout      = %{idp.authn.LDAP.connectTimeout:PT3S}
idp.attribute.resolver.LDAP.responseTimeout     = %{idp.authn.LDAP.responseTimeout:PT3S}
idp.attribute.resolver.LDAP.connectionStrategy  = %{idp.authn.LDAP.connectionStrategy:ACTIVE_PASSIVE}
idp.attribute.resolver.LDAP.baseDN              = %{idp.authn.LDAP.baseDN:undefined}
idp.attribute.resolver.LDAP.bindDN              = %{idp.authn.LDAP.bindDN:undefined}
idp.attribute.resolver.LDAP.useStartTLS         = %{idp.authn.LDAP.useStartTLS:true}
idp.attribute.resolver.LDAP.trustCertificates   = %{idp.authn.LDAP.trustCertificates:undefined}
idp.attribute.resolver.LDAP.searchFilter        = (mail=$resolutionContext.principal)

# LDAP pool configuration, used for both authn and DN resolution
#idp.pool.LDAP.minSize                          = 3
#idp.pool.LDAP.maxSize                          = 10
#idp.pool.LDAP.validateOnCheckout               = false
#idp.pool.LDAP.validatePeriodically             = true
#idp.pool.LDAP.validatePeriod                   = PT5M
#idp.pool.LDAP.validateDN                       =
#idp.pool.LDAP.validateFilter                   = (objectClass=*)
#idp.pool.LDAP.prunePeriod                      = PT5M
#idp.pool.LDAP.idleTime                         = PT10M
#idp.pool.LDAP.blockWaitTime                    = PT3S

Alteração do texto de acesso

Excelente ! Se o seu arquivo ficou conforme o final do processo anterior indica que você alterou o seu atributo principal de login, agora os usuários usarão o e-mail para logar em seu IDP.

Mas é agora ? Na tela de login a mensagem que aparece para os usuários ainda é a de inserir o "uid" ?

Sim, verdade ! Será necessário também customizar a frase da tela de login, afinal mudamos o meio de login do IDP e isso pode confundir os usuários. Então vamos lá !

Na imagem abaixo eu mostro como estava a minha frase na minha tela de login, veja:

Veja que a minha frase era "Seu nome.sobrenome" porque como os usuários usavam o "uid" para se logar, e em minha base o nosso "uid" é nome.sobrenome do usuário, mas eu alterei para o atributo "mail" conforme procedimento acima, então temos que alterar essa frase.

Para alterar a frase da tela de login do IDP vamos precisar mexer no arquivo "messages_pt_BR.properties". Sugiro que seja feito um backup desse arquivo original antes de altera-lo.

sudo -i

cp -a /opt/shibboleth-idp/messages/messages_ptBR.properties /home/cafe/messages_ptBR.properties-original

Agora vamos alterar a mensagem de login da tela do IDP. Edite o arquivo messages_ptBR.properties

sudo -i
vim /opt/shibboleth-idp/messages/messages_ptBR.properties

Esse arquivo é muito grande não seria prático colocar todo ele aqui, então oriento você a procurar pela seguinte variável:

idp.login.username.label = Seu nome.sobrenome

Essa é a mensagem que irá aparecer para os usuários do IDP, então altere como achar melhor para indicar aos seus usuários o que eles devem usar para se autenticar, no nosso exemplo usamos o atributo "mail" referente ao email, então nossa alteração será assim:

idp.login.username.label = Seu email @rnp.br

Salve o arquivo e vamos agora refazer o "build" do IDP:

sudo -i
cd /opt/shibboleth-idp/bin
./build.sh
Buildfile: /opt/shibboleth-idp/bin/build.xml

build-war:
Installation Directory: [/opt/shibboleth-idp] ?

INFO [net.shibboleth.idp.installer.BuildWar:103] - Rebuilding /opt/shibboleth-idp/war/idp.war, Version 4.1.5
INFO [net.shibboleth.idp.installer.BuildWar:113] - Initial populate from /opt/shibboleth-idp/dist/webapp to /opt/shibboleth-idp/webpapp.tmp
INFO [net.shibboleth.idp.installer.BuildWar:92] - Overlay from /opt/shibboleth-idp/edit-webapp to /opt/shibboleth-idp/webpapp.tmp
INFO [net.shibboleth.idp.installer.BuildWar:125] - Creating war file /opt/shibboleth-idp/war/idp.war

BUILD SUCCESSFUL
Total time: 8 seconds

Repare que na etapa de número (7) o script está lhe fazendo uma pergunta, aonde é o diretório instalado do seu IDP, como o nosso template usa o padrão, basta pressionar a tecla <enter> que o script irá seguir com o restante. Feito isso acabamos, agora vamos reiniciar o serviço do Jetty9

sudo -i
systemctl restart jetty9.service

Veja como ficou agora a minha tela de login:

Pronto, você alterou o seu atributo de login prinicipal e alterou a frase da sua tela de login.

PreviousProcedimentos TécnicosNextGerar nova chave e certificado para o shibboleth

Last updated 1 month ago

Was this helpful?