Este tutorial apresenta os procedimentos necessários para instalar e configurar o SimpleSAML. Os comandos apresentados no roteiro presumem que a instalação é feita em um servidor Linux onde há possibilidade de acesso shell.
O conteúdo deste roteiro é um resumo da documentação oficial disponível em https://simplesamlphp.org/docs/stable/simplesamlphp-install/ e https://simplesamlphp.org/docs/stable/simplesamlphp-sp. Eventuais dúvidas devem ser sanadas através da documentação oficial. Voltar ao sumário
servidor.ufrgs.br
1. Faça download do SimpleSAML através do endereço: https://simplesamlphp.org/res/downloads/simplesamlphp-1.13.2.tar.gz
2. Descompacte o arquivo e renomeie a pasta criada para simplesamlphp
.
3. A unica pasta do SimpleSAMLphp que deve ficar exposta na internet é a tar -zxvf simplesamlphp-1.13.2.tar.gz
mv simplesamlphp-1.13.2 simplesamlphp
www
. Um exemplo de configuração é:
4. É necessário criar um certificado SSL e uma chave privada. Para isso, execute os seguintes passos:
<VirtualHost *>
ServerName service.example.com
DocumentRoot /var/www/service.example.com
Alias /simplesaml /var/simplesamlphp/www
</VirtualHost>
4.1. Crie o arquivo /tmp/openssl.cnf
com o conteúdo a seguir:
[ req ]
default_bits = 2048 # Size of keys
string_mask = nombstr # permitted characters
distinguished_name = req_distinguished_name
[ req_distinguished_name ]
# Variable name Prompt string
#---------------------- ----------------------------------
0.organizationName = Nome da universidade/organização
organizationalUnitName = Departamento da universidade/organização
emailAddress = Endereço de email da administração
emailAddress_max = 40
localityName = Nome do município (por extenso)
stateOrProvinceName = Unidade da Federação (por extenso)
countryName = Nome do país (código de 2 letras)
countryName_min = 2
countryName_max = 2
commonName = Nome completo do host (incluíndo o domínio)
commonName_max = 64
# Default values for the above, for consistency and less typing.
# Variable name Value
#------------------------------ ------------------------------
0.organizationName_default = UFRGS - Universidade Federal do Rio Grande do Sul
# Obs.: o valor de organizationalUnitName_default pode ser modificado, para indicar quem é o provedor do serviço
organizationalUnitName_default = UFRGS - Universidade Federal do Rio Grande do Sul
localityName_default = Porto Alegre
stateOrProvinceName_default = Rio Grande do Sul
countryName_default = BR
commonName_default = $HOSTNAME_FULL
4.2. Execute os seguintes comandos:
openssl genrsa 2048 -config /tmp/openssl.cnf > simplesaml.key
openssl req -new -x509 -nodes -days 1095 -sha1 -key simplesaml.key -set_serial 00 -config /tmp/openssl.cnf > simplesaml.crt
openssl pkcs12 -export -in simplesaml.crt -inkey simplesaml.key -out simplesaml.p12 -name simplesaml -caname selfsigned
4.3. Mova os arquivos simplesaml.key
; simplesaml.crt
e simplesaml.p12
para a pasta simplesamlphp/cert
5. Edite o arquivo de configuração disponível em simplesamlphp/config/config.php
e altere as seguintes entradas:
autenticacao-federada/www/
Administrador
suporte@instituicao.br
en
America/Sao_Paulo
tr -c -d '0123456789abcdefghijklmnopqrstuvwxyz' </dev/urandom | dd bs=32 count=1 2>/dev/null;echo
8 * (60*60)
servidor.ufrgs.br/autenticacao-federada/www
. Se a instalação ocorreu com sucesso, uma tela similar a Figura 1 deverá ser exibida.
1. Faça a configuração dos parâmetros do SP. Para tanto edite o arquivo simplesamlphp/config/authsources.php
e substitua o conteúdo do referido arquivo pelas linhas a seguir:
<?php
$config = array (
'admin' => array(
'core:AdminPassword',
),
'default-sp' => array(
'saml:SP',
'privatekey' => 'simplesaml.key',
'certificate' => 'simplesaml.crt',
'entityID' => 'https://$HOSTNAME_FULL/caminho/simplesamlphp',
'idp' => 'https://login.teste.ufrgs.br/idp/shibboleth',
),
);
2. O arquivo simplesamlphp/metadata/saml20-idp-remote.php
contém informações relativas ao IdP que será utilizado pelo SimpleSAML. Substitua o conteúdo do arquivo pelas linhas a seguir:
<?php
$metadata['https://login.teste.ufrgs.br/idp/shibboleth'] = array(
'name' => array(
'en' => 'UFRGS',
'pt-BR' => 'UFRGS',
),
'description' => 'Servidor de autenticação da UFRGS - Teste',
'SingleSignOnService' => 'https://login.teste.ufrgs.br/idp/profile/SAML2/Redirect/SSO',
'certFingerprint' => 'EA9D6546BF3D1C3DE84D945993516D3E26B39FD8'
);
3. Para obter os metadados do SimpleSAML para adiciona-los a Federação, acesse o SimpleSAML e clique na aba Federation
e depois na opção Show Metadata
. Os metadados estão presentes na caixa de texto In SAML 2.0 Metadata XML format
.4. É importante ressaltar que o SimpleSAML apenas estará integrado a Federação uma vez que seus metadados (obtidos no passo anterior) estejam inclusos no arquivo de metadados da Federação. Para tanto, envie os metadados para: rui.ribeiro@cpd.ufrgs.br
5. Após copiar os metadados é fortemente recomendável o bloqueio do acesso às páginas de configuração do SimpleSAMLphp, para tanto, altere o valor dos atributos protectindexpage
e protectmetadata
que estão no arquivo config/config.php
para true
.
Voltar ao sumário
'admin.protectindexpage' => true,
'admin.protectmetadata' => true,