User Tools

Site Tools


cn:ccr:aai:howto:rl9saml

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
cn:ccr:aai:howto:rl9saml [2024/06/05 07:00] monducci@infn.itcn:ccr:aai:howto:rl9saml [2024/12/09 12:44] (current) – [Metadati da inviare] monducci@infn.it
Line 1: Line 1:
 +====== RHEL 9: Configurare un Service Provider SAML 2.0 ======
 +
 +Work in progress
 +aggiornamento delle istruzioni RHEL 7 \\
 +https://wiki.infn.it/cn/ccr/aai/howto/saml-sp-rhel7
 +
 +
 +===== Shibboleth =====
 +==== Installazione ====
 +Scaricare il repository per shibboleth collegandosi qui: \\
 +https://shibboleth.net/downloads/service-provider/RPMS/ \\
 +e selezionando Rocky Linux 9 
 +
 +<code>
 +cat  /etc/yum.repos.d/shib.repo  
 +
 +[shibboleth]
 +name=Shibboleth (rockylinux9)
 +# Please report any problems to https://shibboleth.atlassian.net/jira
 +type=rpm-md
 +mirrorlist=https://shibboleth.net/cgi-bin/mirrorlist.cgi/rockylinux9
 +gpgcheck=1
 +gpgkey=https://shibboleth.net/downloads/service-provider/RPMS/repomd.xml.key
 +        https://shibboleth.net/downloads/service-provider/RPMS/cantor.repomd.xml.key
 +enabled=1
 +
 +</code>
 +
 +Installare i pacchetti: 
 +  epel-release, httpd, mod_ssl
 +
 +Installare shibboleth
 +
 +  dnf install shibboleth.x86_64
 +
 +==== Configurazione ====
 +Modificare il file: ''/etc/shibboleth/shibboleth2.xml''
 +
 +  * Sostituire tutte le occorrenze di ''sp.example.org'' con l'hostname del SP
 +  * Sostituire tutte le occorrenze di ''signing="false"'' con ''signing="true"''
 +  * Sostituire ''https://idp.example.org/idp/shibboleth'' con ''https://idp.infn.it/saml2/idp/metadata.php'' oppure con ''https://idp.infn.it/testing/saml2/idp/metadata.php'' per l'IdP di test.
 +  * Impostare ''handlerSSL="true"'' e ''cookieProps="https"''
 +  * Prima del tag ''<AttributeExtractor...'' inserire
 +<code>
 +  <MetadataProvider type="XML" path="idp.infn.it-metadata.xml"/>
 +</code>
 +
 +
 +
 +  * Scaricare i metadati dell'IdP
 +== IdP di Produzione ==
 +  # curl -o /etc/shibboleth/idp.infn.it-metadata.xml https://idp.infn.it/saml2/idp/metadata.php
 +
 +== IdP di Test ==
 +  # curl -o /etc/shibboleth/idp.infn.it-metadata.xml https://idp.infn.it/testing/saml2/idp/metadata.php
 +
 +  * Configurare il mapping degli attributi. Scaricate il file già pronto:
 +
 +  # curl -o /etc/shibboleth/attribute-map.xml https://wiki.infn.it/_media/cn/ccr/aai/howto/attribute-map.xml
 +
 +  * Far (ri)partire i servizi
 +
 +  #  systemctl restart httpd
 +  #  systemctl restart shibd
 +
 +==== Metadati da inviare ==== 
 +
 +Per scaricare i metadati da inviare, collegarsi qui 
 +
 +https://SP-HOSTNAME/Shibboleth.sso/Metadata
 +
 +
 +Attenzione con le SELinux abilitate si potrebbe avere la seguente segnalazione: 
 +  Metadata Request Failed
 +Mettere, temporaneamente le SELinux in permissive 
 +  setenforce  permissive 
 +
 +Collegarsi qui: https://idp.infn.it/utils/metadata-send.php per inviare i metadati
 +
 +Dopo aver ricevuto il mail dell'avvenuta registrazione dei metadati procedere al test di configurazione.
 +Per testare la configurazione, creare uno script di prova 
 +
 +  mkdir /var/www/html/secure
 +  echo "<?php phpinfo(); ?>" > /var/www/html/secure/test.php
 +  
 +Invocare lo script all'indirizzo 
 +  
 +  https://SP-HOSTNAME/secure/test.php
 +  
 +Gli attributi dell'utente autenticato saranno disponibili fra le variabili d'ambiente PHP valorizzate. 
 +
 +Per effettuare il logout utilizzare l'indirizzo:
 +
 +  https://SP-HOSTNAME/Shibboleth.sso/Logout?return=
 +
 +La configurazione del modulo shibboleth di apache si trova nel file ''/etc/httpd/conf.d/shib.conf'', la cui documentazione è alla pagina https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPhtaccess
 +
 +In caso si utilizzino CMS, in particolare Joomla, si presti attenzione alle regole di riscrittura presenti nel file ''.htaccess'' nella root directory. Alcune di queste regole impediscono l'accesso a path relativi al funzionamento di Shibboleth: ad esempio il caso del path che permette di ottenere i metadati '' https://SP-HOSTNAME/Shibboleth.sso/Metadata''. Quindi è necessario inserire alcune condizioni aggiuntive alla relativa regola di riscrittura, ad esempio:
 +
 +  RewriteCond %{REQUEST_URI} !^/index\.php
 +  RewriteCond %{REQUEST_FILENAME} !-f
 +  RewriteCond %{REQUEST_FILENAME} !-d
 +  RewriteCond %{REQUEST_URI} !^/Shibboleth\.sso  ### condizione riscrittura inserita
 +  RewriteCond %{REQUEST_URI} !^/secure  ### condizione riscrittura inserita
 +  RewriteRule .* index.php [L]
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki