- Roteiro de instalação completo da solução multi-fator (IdP e MfaProvider).
- Organização dos repositórios do projeto GT-AMPTo
- Primeira Instalação
- Pré-requisitos
- Configurações FCM para Diálogo de Confirmação
- Ajustes de configuração da máquina
- Certificado auto-assinado
- Instalação do banco de dados MongoDB
- Instalação da aplicação MfaProvider e configuração da solução de multi-fator no Shibboleth IdP.
- Instalação Básica
- Instalação Avançada
- Testes para verificar se a instalação foi feita com sucesso
- Atualização da aplicação MFaP já instalada
- Utilitários para Administrador
- Guia de instalação e script para automatizar a instalação
- https://git.rnp.br/GT-AMPTo/mfap-installation-guide
- Use esse repositório para fazer a instalação automatizada da solução MFaP no Provedor de Identidade. O script irá baixar os códigos do MFaProvider e do MfaProviderIdp
- MFaProvider
- https://git.rnp.br/GT-AMPTo/MfaProvider
- Aplicação responsável por fazer autenticação MFA dos usuários e que apresenta um SP (dashboard) para os usuários habilitarem seus fatores de autenticação
- Biblioteca MFaP para o IdP
- https://git.rnp.br/GT-AMPTo/mfadialogo
- Biblioteca a ser invocada pelos
AuthFlow
do IdP (no arquivo.xml
) e que permitirá interagir com o MFaProvider
- Aplicativo móveis para atuar com o Diálogo de Confirmação
- https://git.rnp.br/GT-AMPTo/App2Ampto - versão Android
- https://git.rnp.br/GT-AMPTo/amptoios - versão iOS
- Necessário se desejar usar o Diálogo de Confirmação como um segundo fator de autenticação
- IdP Shibboleth v3.3, Apache Tomcat 8 e Apache HTTPd 2 instalados.
Para funcionamento da opção multi-fator com diálogo de confirmação, é necessário utilizar o servidor de fila de mensagens FCM do Google. Siga os passos a seguir para configurar o FCM:
- Crie uma conta google para a instituição (caso já possuir, ignorar esta etapa): https://accounts.google.com/SignUp?hl=pt
- Acesse a página de console do FCM e faça login com a conta google: https://console.firebase.google.com/
- Clique em
Adicionar Projeto
. - Digite um nome para o projeto (ignore os demais campos), marque a opção "Aceito os termos.." e clique em
Criar projeto
. - Clique no ícone do Android para adicionar o Firebase ao app para Android, conforme imagem abaixo:
-
Informe no campo Nome do pacote Android:
br.edu.ifsc.sj.gtampto
e clique emRegistrar APP
. -
Na etapa: Fazer o download do arquivo de configuração , clique em
Próxima
. -
Na etapa: Adicionar o SDK do Firebase, clique em
Próxima
. -
Em Execute seu app para verificar a instalação, o FCM irá tentar conectar no aplicativo, como ele já é configurado previamente, esta etapa pode ser ignorada, clique em
Pular esta etapa
. -
Após criar conta FCM e registrar o app seguindo as instruções, clique em configurações conforme imagem abaixo:
- Clique em
Configurações do Projeto
e na aba Cloud Messaging, anote os valores dos atributoschave herdada do servidor
ecódigo do remetente
que serão solicitados pelo script de instalação.
Segue imagem exemplificando o local dos atributos:
Para que o IdP consiga realizar requisições para seu próprio endereço, é necessário um ajuste na configuração do /etc/hosts
-
Edite o arquivo
/etc/hosts
:sudo vi /etc/hosts
-
Apague a linha que contém o endereço
127.0.1.1
. O arquivo deverá ficará semelhante ao exemplo abaixo:127.0.0.1 localhost #Endereço de Ip e Host 191.36.8.39 idpexemplo.idp.edu.br idpexemplo
-
Reinicie o serviço de rede para aplicação da nova configuração:
sudo systemctl restart networking.service
A comunicação IdP - MfaProvider se dá utilizando requisições via HTTPS, as quais necessitam que a Java Virtual Machine (JVM) confie no certificado utilizado. Caso o certificado ssl do IdP for um certificado do tipo auto-assinado, deve ser importado para a JVM usando o seguinte comando:
<JAVA_HOME>/bin/keytool -import -alias <server_name> -keystore <JAVA_HOME>/jre/lib/security/cacerts -file public.crt
Caso não saiba qual é o certificado ssl a ser importado, execute o comando abaixo para exibir o caminho do arquivo:
cat /etc/apache2/sites-enabled/01-idp.conf | grep SSLCertificateFile
Supondo que JAVA_HOME
seja /usr/lib/jvm/java-8-oracle
e que o certificado ssl utilizado esteja no caminho /etc/ssl/certs/server.crt
,
e que o server_name seja idp.rnp.br
, o comando final ficaria da seguinte forma:
/usr/lib/jvm/java-8-oracle/bin/keytool -import -alias idp.rnp.br -keystore /usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts -file /etc/ssl/certs/server.crt
Atenção: A senha de administração da keystore da JVM vai ser solicitada. A senha padrão, caso não tenha sido mudada, é changeit. Esse procedimento deve ser repetido sempre que o certificado for trocado.
Após, reinicie o Tomcat: sudo systemctl restart tomcat8
- Baixe e instale o MongoDB pelo gerenciador de pacotes:
sudo apt-get install mongodb
- Observação: Ao término da instalação, o serviço do MongoDB será instanciado automaticamente, o qual pode ser conferido pelo comando
sudo systemctl status mongodb.service
(caso não estiver iniciado, utilize o comandosudo systemctl start mongodb
).
- Observação: Ao término da instalação, o serviço do MongoDB será instanciado automaticamente, o qual pode ser conferido pelo comando
Instalação da aplicação MfaProvider e configuração da solução de multi-fator no Shibboleth IdP.
Observação: executar todos os comandos como root
- Faça o download do projeto
mfap-installation-guide
para o diretório de sua preferência. Pode ser utilizado o diretório home do usuário por exemplo.git clone https://git.rnp.br/GT-AMPTo/mfap-installation-guide.git
- Observação: Em caso de problemas com certificado, utilize o comando:
git -c http.sslVerify=false clone https://git.rnp.br/GT-AMPTo/mfap-installation-guide.git
- Observação: Em caso de problemas com certificado, utilize o comando:
- Dentro do diretório baixado do git, acesse o diretório
scripts
. Este será nosso diretório base para execução dos próximos passos.cd scripts
Há duas formas de realizar a instalação, de forma básica ou de forma avançada.
- Na instalação básica, o script irá questionar os valores das variáveis básicas para funcionamento padrão da solução de multi-fator.
- A instalação avançada é recomendada caso queira alterar o pathname padrão do
MfaProvider
(idp.instituicao.edu.br/conta
) ou tenha algum problema na instalação básica devido a locais e diretórios diferente do padrão.
- No diretório scripts, execute o script
install.py
python2 install.py
Serão realizados questionamentos durante a instalação, tais como:
- Definição de usuário e senha do banco de dados;
- Definição de usuário e senha para proteção dos recursos rest;
- Endereço do IdP sem https, ex:
idp.instituicao.edu.br
.
Após processo de instalação concluído, verificar a seção Testes para verificar o funcionamento da aplicação.
- No diretório
scripts
, edite o arquivoconfig.ini
conforme abaixo:- Caso deseje alterar o caminho dos diretórios:
- Endereço do metadata:
alterar o atributo:
idp.metadata=/opt/shibboleth-idp/metadata/idp-metadata.xml
- Diretório base do Idp: alterar o atributo:
dir_base_idp_shibboleth=/opt/shibboleth-idp
- Endereço do server.xml do tomcat: alterar o atributo:
tomcat_server_config=/etc/tomcat8/server.xml
- Endereço do arquivo de configuração do site do idp no apache: alterar o atributo:
apache_conf_file=/etc/apache2/sites-enabled/01-idp.conf
- Endereço do metadata:
alterar o atributo:
- Caso desejar alterar o
pathname
(nome a ser acessado pelo usuário para acessar o MfaProvider no Idp) :- Endereço do pathname: alterar o atributo
mfapbasepath=conta
- Endereço do pathname: alterar o atributo
- Caso deseje alterar o caminho dos diretórios:
Os demais atributos não devem ser alterados, os que estão sem informação o script de instalação irá solicitar durante o processo.
Por fim, no diretório scripts, execute o script install.py
python2 install.py
Após processo de instalação concluído, verificar a seção Testes para verificar o funcionamento da aplicação.
- A aplicação será disponibilizada no endereço configurado, ex:
https://idp.instituicao.edu.br/conta
.
Ao acessar o endereço, caso apresentar a mensagem "Sua conexão não é segura" ou "Sua conexão não é particular" (dependendo do navegador), isto pode indicar que você possui um certificado auto-assinado e será necessário realizar o processo descrito na seção Certificado auto-assinado Utilitários para Administrador > Uso de certificado auto-assinado ou expiração de certificado. Este processo evitará erro após processo de login.
- Faça a autenticação e verifique o auxílio da página para cadastrar e utilizar o segundo fator.
Eventualmente pode ser necessário atualizar a aplicação multi-fator MfaProvider e esse procedimento pode ser feito separadamente.
Para isso, no diretório do roteiro de instalação, que foi baixado conforme passo Instalação da aplicação MfaProvider e configuração da solução de multi-fator no Shibboleth IdP da instalação inicial, execute o seguinte comando:
python update_mfaprovider.py
O script acima irá realizar a atualização da aplicação multi-fator MfaProvider, baixando o código fonte do repositório git, gerando o pacote necessário para implantação no tomcat8, e reiniciando-o.
- No diretório
/opt/mfaprovider
, utilize o script abaixo e informe o login do usuário para remover as configurações de segundo fator
./removeSecondFactor.sh
- Na pasta do projeto
scripts/MfaProvider
, edite o arquivosrc/main/resource/factor.properties
e utilizetrue
para habilitar oufalse
para desabilitar o fator desejado. Após, ainda no diretórioscripts/MfaProvider
, execute o deploy da aplicação, através do comando:
./deploy.sh