====== 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 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 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 '' * 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 https://boweb.bo.infn.it/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 "" > /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]