Instituições que desejam desenvolver novos fatores de autenticação e que já possuam um servidor IdP com MFaP funcionando corretamente.
- Eclipse IDE (com plugin Buildship Gradle Integration)
- MongoDB
- Ter um IdP Shibboleth v3.3 (com MFaProvider) remoto operacional, por exemplo, o IdP que está na federação CAFe.
-
Faça o download do projeto MfaProvider para o diretório de sua preferência
- ATENÇÃO: não colocar tal diretório dentro do workspace do Eclipse
$ git clone https://git.rnp.br/GT-AMPTo/MfaProvider.git
-
No eclipse, importe o MfaProvider como projeto Gradle.
-
Na máquina onde está instalado o IdP, copiar o arquivo
/opt/shibboleth-idp/metadata/idp-metadata.xml
para seu computador e salve em um diretório de sua preferência. Por exemplo:/home/user/mfap-dev/
. -
No diretório onde você baixou o projeto (ex:
MfaProvider/
), edite o arquivo./src/main/resources/sp.properties
e altere os campos conforme exemplo:- Observação: O campo
idp.metadata
deve ser alterado para o caminho onde foi copiado o arquivo do item 3. Também é necessário substituir os####
dos camposrestsecurity.user
erestsecurity.password
por usuário e senha de sua preferência.
- Observação: O campo
host.name=https://localhost:9443/conta
idp.metadata=/home/user/mfap-dev/idp-metadata.xml
restsecurity.user=####
restsecurity.password=####
-
Para executar a aplicação clique no menu/aba:
Gradle Tasks > conta > gretty > tomcatStart
-
Com a aplicação rodando, gere o arquivo com metadata do SP através da seguinte URL
https://localhost:9443/conta/saml/web/metadata/getNewMetaData
, usando o comandocurl
por exemplo:curl -X GET --user '%user:%password' https://localhost:9443/conta/saml/web/metadata/getNewMetaData --insecure > sp-metadata.xml
- Observação: Altere
%user
e%password
para os valores configurados nos camposrestsecurity.user
erestsecurity.password
do arquivosp.properties
editado no item 4.
- Observação: Altere
-
Substituir o arquivo
MfaProvider/src/main/resources/metadata/sp-metadata.xml
pelo arquivo gerado no item anterior.
-
Verifique se o serviço do MongoDB está rodando
$ sudo service mongodb status
- Observação: Caso não estiver, execute
$ sudo service mongodb start
- Observação: Caso não estiver, execute
-
No diretório do projeto (ex:
MfaProvider/
), edite o arquivoscriptMongo.js
, altere os valores dos camposuser
epwd
de acordo com o desejado e salve o arquivo. -
Ainda no diretório do projeto, realize a criação do usuário executando:
$ mongo < scriptMongo.js
- Copiar o arquivo com o metadata gerado no item 6 da seção Importando projeto no Eclipse para
/opt/shibboleth-idp/metadata/mfapdev-metadata.xml
na máquina onde está o IdP - Ainda na máquina do IdP, Editar o arquivo
/opt/shibboleth-idp/conf/metadata-provider.xml
e inserir uma entrada, conforme exemplo, apontando para o arquivo copiado no item anterior;
<MetadataProvider id="mfapdev" metadataFile="/opt/shibboleth-idp/metadata/mfapdev-metadata.xml" xsi:type="FilesystemMetadataProvider" />
- Execute o script
build.sh
do IdP para aplicar as alterações realizadas.
/opt/shibboleth-idp/bin/build.sh
Com a aplicação em execução (item 5 da seção Importando projeto no Eclipse), acesse a URL https://localhost:9443/conta
pelo navegador.
A página de login do IdP será apresentada e após a autenticação o navegador será redirecionado para a URL https://localhost:9443/conta/mfa/cadastrar/dashboard
listando as opções de segundo fator.