Page tree
Skip to end of metadata
Go to start of metadata

O primeiro passo a efectuar é instalar os pacotes ansible e git para obter o código de instalação do Shibboleth 3.4.4 por código Ansible. 

[root@idp-server ~]# yum -y install ansible git

Efectuar o download do código Ansible a partir do repositório git.

[root@idp-server ~]# git clone https://gitlab.fccn.pt/dev-sid/shibboleth-3-4-4-centos7-org.git

Após ter-se efectuado o download do código, entre na nova pasta shibboleth-3-4-4-centos7-org:

[root@idp-server ~]# cd shibboleth-3-4-4-centos7-org

Editar o ficheiro de definições gerais sobre a instituição e da instalação em curso no seguinte ficheiro

[root@idp-server shibboleth-3-4-4-centos7-org]# vi group_vars/general_definitions

Exemplo de um conjunto de configurações:

#
# Configurações Apache
######################
organization_domain: fccn.pt
server_name: idp.fccn.pt
server_admin: idp-admin@fccn.pt

#
# Certificados digitais
#######################
path_ssl_cert_key_file: /etc/pki/tls/private/XXXXXXXX.key
path_ssl_cert_file: /etc/pki/tls/certs/idp/XXXXXXXXXXX.crt
path_ssl_cert_chain_file: /etc/pki/tls/certs/idp/DigiCertCA.crt

#
# Configurações de Base de Dados
postgresql_backup_dest: /var/lib/pgsql/backups

#
# Configurações Tomcat
######################
tomcat_version: 9.0.16
tomcat_xms: 512M
tomcat_xmx: 3072M

#
# Configurações Shibboleth
##########################
ip_range_access_control: '0.0.0.0/0'  # Tem de estar obrigatoriamente entre 'plicas'
idp_metadata: rctsaai,rctsaai-engine,interfederation                 # No caso de testes aaitest, caso de produção rctsaai
ldap_url: XXXXXXXX              # Pode ser o endereco IP ou o FQDN do servidor da AD ou LDAP server
ldap_dn_format: dc=corp,dc=fccn,dc=pt
ldap_port: XXXXXXXX               # Porto de ligação à AD ou LDAP (standart 389)
ldap_username: XXXXXXXX
ldap_password: XXXXXXXX
ldap_type: sAMAccountName             # No caso de AD sAMAccountName, no caso de LDAP uid

IDP_VERSION: 3.4.4
source_directory: /usr/local/dist/shibboleth-identity-provider-3.4.4
installation_directory: /opt/shibboleth-idp
hostname: idp.fccn.pt
SAML_entityID: https://idp.fccn.pt/idp/shibboleth
attribute_scope:  fccn.pt
backchannel_PKCS12_password: password #Não alterar
cookie_Encryption_key_password: password #Não alterar

#
# Links Shibboleth
##########################
link_suporte: https://confluence.fccn.pt/pages/viewpage.action?pageId=16810329
link_rctsaai: https://confluence.fccn.pt/display/RCTSAAI/RCTSaai
link_seguranca: https://confluence.fccn.pt/display/RCTSAAI/FAQ
link_esqueceu_palavra_chave: https://www.fccn.pt
idp_logo_url: https://www.fccn.pt
idp_logo_img: /FCCN/images/fccn.pt.png
idp_logo_alt: FCCN

DESCRIÇÃO DAS VARIAVEIS PARA O ANSIBLE

A instalação do Shibboleth depende das parametrizações efectuadas no ficheiro general_definitions. Serão em baixo abordadas as parametrizações necessárias a preencher, relativas à sua instituição.

organization_domain
Indicar qual é o nome da organização da instituição, ex:. fccn.pt

server_name
Nome da máquina ou FQDN onde está a ser instalado o Shibboleth, ex:. idp.fccn.pt

server_admin
Endereço de email de administração da Instituição

path_ssl_cert_key_file
Caminho completo para o ficheiro que contem a chave (key) do certificado digital gerado no ponto 1.2.1 Instalação - Apache HTTP Server 2.4.

path_ssl_cert_file
Caminho completo para o ficheiro que contem o certificado digital gerado no ponto 1.2.1 Instalação - Apache HTTP Server 2.4.

path_ssl_cert_chain_file
Caminho completo para o ficheiro que contem o Chain Authority recebido no ponto 1.2.1 Instalação - Apache HTTP Server 2.4.

postgresql_backup_dest
Caminho para a pasta onde ficaram alojados os backups da base de dados. Os backups serão lançados automaticamente todos dias durante a madrugada.

tomcat_xms
Definir o tamanho de heap size inicial em memória no arranque do Tomcat. Exemplo, 512M

tomcat_xmx
Definir o tamanho de heap size máximo em memória do Tomcat. Exemplo, 3072M

ip_range_access_control
Indicar a rede e o domínio em que é permitido visualizar o estado do IdP. É obrigatório a rede estar entre plicas. Por defeito pode-se deixar durante

idp_metadata
Activar a metadata a utilizar.

ldap_url
Indicar qual é o endereço do servidor da AD ou LDAP da instituição.

ldap_dn_format
Devem ser indicados os objectos a consultar na AD da instituição. Exemplo, dc=corp,dc=fccn,dc=pt

ldap_port
Indicar qual o porto de comunicação com o AD ou LDAP. Exemplo: 389

ldap_username
Representa o utilizador que irá efetuar a ligação à AD ou LDAP da instituição. Exemplo, ldap_user@corp.fccn.pt

ldap_password
Indicar qual é a password de acesso à AD utilizada pelo o utilizador definido para ldap_bind_dn.

ldap_type
Atributo de AD ou LDAP a utilizar:

  • quando AD: sAMAccountName
  • quando LDAP: uid

idp_version

Indicar qual a versão do Fornecedor de Identidade a instalar. Valor por defeito 3.4.4. #Não deverá ser alterado
source_directory

Directoria onde são colocados os ficheiros de instalação. Por defeito /usr/local/dist/shibboleth-identity-provider-3.4.4 #Não deverá ser alterado
installation_directory

Directoria onde são colocados os ficheiros de instalação. Por defeito /opt/shibboleth-idp #Não deverá ser alterado
attribute_scope

Scope do Fornecedor de identidade. Exemplo fccn.pt

link_suporte

Link para uma página com contactos de suporte. Exemplohttps://confluence.fccn.pt/pages/viewpage.action?pageId=16810329
link_rctsaai

Link para a página da RCTSaai. Por defeito https://confluence.fccn.pt/display/RCTSAAI/RCTSaai
link_seguranca

Link para página relativa a segurança de informação. Exemplo https://confluence.fccn.pt/display/RCTSAAI/FAQ
link_esqueceu_palavra_chave

Link para página para plataforma ou procedimentos de recuperação de palavra-passe. Exemplo https://www.fccn.pt
idp_logo_url

Link de destino quando se clica no logo do Fornecedor de Identidade. Exemplo: https://www.fccn.pt
idp_logo_img

Localização da imagem do Fornecedor de Identidade. Exemplo: /FCCN/images/fccn.pt.png
idp_logo_alt

Texto para alt da imagem do Fornecedor de Identidade: Exemplo FCCN



Iniciar instalação do Shibboleth por código Ansible

Após as configurações básicas do Ansible deve ser executado o playbook de instalação do Shibboleth da seguinte forma:

[root@idp-server shibboleth-3-4-4-centos7-org]# ansible-playbook -i "localhost," --connection=local main.yml
PLAY [all] *****************************************************************************************
TASK [Gathering Facts] *****************************************************************************
ok: [localhost]

Quando termina a execução do Ansible espera-se que termina da seguinte forma:

RUNNING HANDLER [httpd : restart httpd] ************************************************************
changed: [localhost]

RUNNING HANDLER [tomcat : restart tomcat] **********************************************************
changed: [localhost]

PLAY RECAP ****************************************************************
localhost                  : ok=163  changed=124  unreachable=0    failed=0

Após execução do código Ansible

Após a instalação com sucesso do Ansible, deve ser realizado um reboot à máquina para validar que os seguintes serviçoes arrancam com sucesso.

[root@idp-server shibboleth-3-4-4-centos7-org]# reboot
Last login: Thu Sep 21 12:08:51 2017 from machine.fccn.pt

Validar serviços

Validar Apache

[root@idp-server ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-06-26 19:27:05 WEST; 15h ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 666 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─666 /usr/sbin/httpd -DFOREGROUND
           ├─763 /usr/sbin/httpd -DFOREGROUND
           ├─764 /usr/sbin/httpd -DFOREGROUND
           ├─765 /usr/sbin/httpd -DFOREGROUND
           ├─766 /usr/sbin/httpd -DFOREGROUND
           └─768 /usr/sbin/httpd -DFOREGROUND
Sep 21 12:29:45 idp-server.fccn.pt systemd[1]: Starting The Apache HTTP Server...
Sep 21 12:29:45 idp-server.fccn.pt httpd[666]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using idp-server.fccn.pt. Set the 'Server...his message
Sep 21 12:29:45 idp-server.fccn.pt systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

Validar Tomcat

[root@idp-server ~]# systemctl status tomcat
● tomcat.service - Apache Tomcat 8 Web Application Container
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-06-26 19:27:04 WEST; 15h ago
  Process: 665 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 704 (java)
   CGroup: /system.slice/tomcat.service
           └─704 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64/jre/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.man...
Sep 21 12:29:45 idp-server.fccn.pt systemd[1]: Starting Apache Tomcat 8 Web Application Container...
Sep 21 12:29:45 idp-server.fccn.pt startup.sh[665]: Existing PID file found during start.
Sep 21 12:29:45 idp-server.fccn.pt startup.sh[665]: Removing/clearing stale PID file.
Sep 21 12:29:45 idp-server.fccn.pt systemd[1]: Started Apache Tomcat 8 Web Application Container.

Validar Postgresql

[root@idp-server ~]# systemctl status postgresql
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-06-26 19:27:06 WEST; 15h agoo
  Process: 685 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS)
  Process: 663 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 715 (postgres)
   CGroup: /system.slice/postgresql.service
           ├─ 715 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432
           ├─ 748 postgres: logger process   
           ├─ 758 postgres: checkpointer process   
           ├─ 759 postgres: writer process   
           ├─ 760 postgres: wal writer process   
           ├─ 761 postgres: autovacuum launcher process   
           ├─ 762 postgres: stats collector process   
           └─1722 postgres: shibboleth shibboleth 127.0.0.1(50602) idle
Sep 21 12:29:45 idp-server.fccn.pt systemd[1]: Starting PostgreSQL database server...
Sep 21 12:29:46 idp-server.fccn.pt systemd[1]: Started PostgreSQL database server.

Validar Selinux

[root@idp-server ~]# sestatus 
SELinux status:                 disabled

Validar iptables

Nos casos em que a firewall tem de estar activa, devemos validar que está a ser permitidas ligações ao HTTP e HTTPS:

[root@idp-server ~]# iptables -L IN_public_allow
Chain IN_public_allow (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh ctstate NEW
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http ctstate NEW
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https ctstate NEW

Concluir a configuração do Layout

Após a execução do código Ansible é necessário actualizar o layout das paginas apresentadas pelo Shibboleth.

Finalizar

No final das configurações se pretender limpar os ficheiros auxiliares colocados no servidor, pode apagar a pasta shibboleth-3-4-4-centos7 que contem o respositório git assim como os pacotes de sistema operativo git e ansible.

[root@idp-server ~]# rm -rf shibboleth-3-4-4-centos7-org/
[root@idp-server ~]# yum remove ansible git
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package ansible.noarch 0:2.3.2.0-2.el7 will be erased
---> Package git.x86_64 0:1.8.3.1-12.el7_4 will be erased
--> Processing Dependency: git = 1.8.3.1-12.el7_4 for package: perl-Git-1.8.3.1-12.el7_4.noarch
--> Running transaction check
---> Package perl-Git.noarch 0:1.8.3.1-12.el7_4 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
=============================================================================================================================================================
 Package                             Arch                              Version                                     Repository                           Size
=============================================================================================================================================================
Removing:
 ansible                             noarch                            2.3.2.0-2.el7                               @extras                              27 M
 git                                 x86_64                            1.8.3.1-12.el7_4                            @updates                             22 M
Removing for dependencies:
 perl-Git                            noarch                            1.8.3.1-12.el7_4                            @updates                             57 k
Transaction Summary
=============================================================================================================================================================
Remove  2 Packages (+1 Dependent package)
Installed size: 49 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : ansible-2.3.2.0-2.el7.noarch                                                                                                              1/3
  Erasing    : perl-Git-1.8.3.1-12.el7_4.noarch                                                                                                          2/3
  Erasing    : git-1.8.3.1-12.el7_4.x86_64                                                                                                               3/3
  Verifying  : git-1.8.3.1-12.el7_4.x86_64                                                                                                               1/3
  Verifying  : ansible-2.3.2.0-2.el7.noarch                                                                                                              2/3
  Verifying  : perl-Git-1.8.3.1-12.el7_4.noarch                                                                                                          3/3
Removed:
  ansible.noarch 0:2.3.2.0-2.el7                                                git.x86_64 0:1.8.3.1-12.el7_4
Dependency Removed:
  perl-Git.noarch 0:1.8.3.1-12.el7_4
Complete!



  • No labels