cn:ccr:aai:howto:joomla
Table of Contents
Joomla!: Configurare l'accesso SAML 2.0 con Joomla! 3.x
Reference: https://support.onelogin.com/hc/en-us/articles/201173564-Configuring-SAML-for-Joomla
Questa guida si applica a Joomla! >= 3.3.x
Download dei pacchetti
- Scaricare il plugin da https://baltig.infn.it/sysinfo/onelogin_infn_library/raw/master/plg_user_oneloginsaml.zip e installarlo
- Scaricare la libreria da https://baltig.infn.it/sysinfo/onelogin_infn_library/raw/master/onelogin.zip ed installarla
- Scaricare il modulo da https://baltig.infn.it/sysinfo/onelogin_infn_library/raw/master/mod_aai_login.zip ed installarlo
Configurazione del Plugin
- Accedere al pannello di configurazione di Joomla e quindi al menu Estensioni→Plugin
- Cercare il plugin Authentication - OneLogin SAML e accedere alla pagina di configurazione del plugin
- Cliccare sul tab Identity Provider Settings
- Inserire nel campo IdP Entity Id:
- https://idp.infn.it/saml2/idp/metadata.php (Produzione)
- Inserire nel campo Single Sign On Service Url:
- https://idp.infn.it/saml2/idp/SSOService.php (Produzione)
- Inserire nel campo Single Log Out Service Url:
- Inserire nel campo X.509 Certificate
IdP di Produzione:
MIIDtTCCAp2gAwIBAgIJAOU29OWoolW3MA0GCSqGSIb3DQEBBQUAMEUxFDASBgNVBAMTC2lkcC5pbmZuLml0MREwDwYDVQQLEwhJTkZOLUFBSTENMAsGA1UEChMESU5GTjELMAkGA1UEBhMCSVQwHhcNMTQwNDE0MTQ1NzI2WhcNNDEwODI5MTQ1NzI2WjBFMRQwEgYDVQQDEwtpZHAuaW5mbi5pdDERMA8GA1UECxMISU5GTi1BQUkxDTALBgNVBAoTBElORk4xCzAJBgNVBAYTAklUMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxTXQ7OFlyqDxcDkdUgPXtKrHw2vUkKuGkEMpQrrK/PU/emzT13Jualti38jV4NTSBSIXc7P3PTTUsfnk3o+IAej1JKNlQ2klqFDvPiwl9sKFh4Pd66K0g6ebGunsRZtR5LJLMJrrqOhRiLZdAcJzB4RxZsqSYxz0EDw6S5r6w6Sgm4xiupviC9gINAzpTkjFR78dbJ7fDzvvVUXxPz1T4awL01RCt0s/05fHeWM1I4cPjoVSB0t6wzv0CfaWWlid3I6yyFWiFYeVGvn7eeqhvRckthumYOayL18Ri+S2vxYkDqDcY6b6y2OWYhFZ1VTosUoUBPhwXyCYYJ2wAmi2VwIDAQABo4GnMIGkMB0GA1UdDgQWBBROEkiqrjIVFsHZKsnYbh+xPNmilDB1BgNVHSMEbjBsgBROEkiqrjIVFsHZKsnYbh+xPNmilKFJpEcwRTEUMBIGA1UEAxMLaWRwLmluZm4uaXQxETAPBgNVBAsTCElORk4tQUFJMQ0wCwYDVQQKEwRJTkZOMQswCQYDVQQGEwJJVIIJAOU29OWoolW3MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBALVVWVWP9nrWlmU37KbTE3kuqJWptGmaDS2uuOg5RN5lGevQvVu4cac23qaZZ+TN+b6WDXuhEfmVJzBYczxByVeGEvew0fHgRRMZLqST6j2gyb89qzNNFyTcyRZ/5Z7jXWjrnDp3pOLNvrr9BhVojoC2F7EYjSdddwq2pb++9FiHglwSTl5WV+V4ZuNUMemY8jzhqayOK6UuwdL61UE4dPGKnlCgMaiYVST86HkiqFh9oOJ8D6jtlk695pRaz1h3ajxwB9zOa2VAWEsi40P2tZIzY3ek25wTM2vuvHO4YsOmkAOxj2Wk/itj5MnK1tT0u840b61Q/j4SJGuKLe4Tzzg=
IdP di Test:
MIIDzTCCArWgAwIBAgIJAOECAK4a4wUSMA0GCSqGSIb3DQEBBQUAME0xHDAaBgNVBAMTE2lkcC5pbmZuLml0LXRlc3RpbmcxETAPBgNVBAsTCElORk4tQUFJMQ0wCwYDVQQKEwRJTkZOMQswCQYDVQQGEwJJVDAeFw0xNDAxMTUxMDAwNTJaFw00MTA2MDExMDAwNTJaME0xHDAaBgNVBAMTE2lkcC5pbmZuLml0LXRlc3RpbmcxETAPBgNVBAsTCElORk4tQUFJMQ0wCwYDVQQKEwRJTkZOMQswCQYDVQQGEwJJVDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALDVak4mMVfX5XD4ZVhJI8gWG8cS8fJy+TqTMC6bGMbuvRVgpwC9c1Wpjrtmx6Bc/1vETRrronpxHEwERMQh14CVatajCP7ptr+6NbeA5hdPkwt6wZoHsKQ3fPKi6iSjO0ri08rHD0ouCQC2FeF2QCnzdsW3Czp6pJGLDKySkB3fdKId6ZvrR5a/uR8ePZURol69hOxsyNzQuwU17x+k4UUvdkE1LCOYm4X/GXkbYWyLgazQvpspez/Ba/+QAtK1KUUOrVgIP9Tn/H//RFJHBJzpjQ4SevsE1gsDxXpJVPA2EKKBhglRjPpASETf0diaXIoYrGnRYaRfM3BcPAakXQ8CAwEAAaOBrzCBrDAdBgNVHQ4EFgQURnQboZrmM6KuN+D+Rb/hgHxbsSswfQYDVR0jBHYwdIAURnQboZrmM6KuN+D+Rb/hgHxbsSuhUaRPME0xHDAaBgNVBAMTE2lkcC5pbmZuLml0LXRlc3RpbmcxETAPBgNVBAsTCElORk4tQUFJMQ0wCwYDVQQKEwRJTkZOMQswCQYDVQQGEwJJVIIJAOECAK4a4wUSMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADxY+9QU7RJLPbCpAt3beWi1k+z6wGmFvMhDJbzv4quPK39bKeGQQyBootuXo14/4zuCrifV7Y4GNro+DXXxlqmfG18Ds2jqAXpy6DyVfDLYR3LP/JlJiLbDWdP/dlzd/9/ukcJH2Vq2T9pOcyHKDex88oQQC0tKd8fsrhV0vXElSi6bBBXaqvrsTTJMfmYDgHYCxJO/yYP/vsILxDbmafbWPsrwhJxArOKzhIlc0uJOyN+zX4JYYfVS/xNibbhwW5I7v6tGl5ibp9W3AIfpFCjUXRW3NUzM52ht39TqVVaeKtuPZlnW2Seo3N+XRgOm8KElowp+YbfrBRje0CftFrc=
- Nel tab Opzioni attivare le prime tre linee (click su Yes) e selezionare Username alla quarta linea
- Nel tab Attribute Mapping
- Inserire nel campo Name:
- urn:oid:2.16.840.1.113730.3.1.241 (Produzione)
- urn:oid:2.5.4.3 (Test)
- Inserire nel campo Username:
- urn:oid:0.9.2342.19200300.100.1.1 (Produzione e Test)
- Inserire nel campo E-Mail
- urn:oid:0.9.2342.19200300.100.1.3 (Produzione e Test)
- Inserire nel campo Groups:
- urn:oid:1.3.6.1.4.1.5923.1.5.1.1 (Produzione e Test)
- Lasciare i campi nel tab Group Mapping così come sono
- Nel tab Avanzate
- Attivare tutti le linee (click su Yes) tranne
- Encrypt nameID
- Reject Unencrypted Assertions
- Inserire una stringa identificativa del sito web nel campo Service Provider Entity Id (ad es. sito_amministrazione)
- Generare con OpenSSL un certificato X.509 e una chiave privata per l'SP usando il comando:
openssl req -new -x509 -newkey rsa:2048 -days 3652 -nodes -out saml.crt -keyout saml.key -subj /CN=`hostname -f`/OU=SAML-SP/
- inserire il contenuto di saml.crt nel campo Service Provider X.509 Certificate
- inserire il contenuto di saml.key nel campo Service Provider Private Key
- Click su Salva e Chiudi in alto
Attivazione
- Attivare il plugin cliccando in corrispondenza della colonna Stato (deve apparire una spunta verde)
- Aggiungere il modulo
- Click su Estensioni→moduli
- Click su Nuovo in alto a sx
- Click su AAI Login Module
- Configurare i parametri di posizione e visibilità e click su Salva
Invio dei metadati
- Accedere all'indirizzo http://path-di-joomla/plugins/user/oneloginsaml/oneloginsaml.php?metadata e visualizzare il sorgente della pagina (ignorare eventuali errori sull'XML)
- Copiare il sorgente dell'XML e incollarlo in questa pagina https://idp.infn.it/utils/metadata-send.php nel campo or XML Metadata
- Attenzione !: il tag md:EntityDescriptor contiene l'attributo validUntil che per default è impostato a pochi giorni di distanza dal giorno attuale
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" validUntil="2017-09-13T08:49:57Z"...
modifcare questo attributo con una data più in là nel tempo per evitare che i metadati scadano rendendo inutilizzabile l'SP
- Selezionare l'IdP (Produzione/Testing), selezionare il Set di Attributi Esteso e inserire una descrizione dell'SP
- Click su Send SAML metadata for approval
Test del sistema
- Una volta ricevuta conferma dell'inserimento dei metadati è possibile testare il sistema
- Click su Login, nel frontend del sito, in corrispondenza del modulo di Login AAI
- Autenticarsi sulla maschera di login INFN-AAI (se ci sono errori SAML verificare che i metadati siano stati inseriti)
- Se l'autenticazione va a buon fine…
- il plugin creerà (se non già presente) un nuovo utente utilizzando l'uid LDAP come username e i campi cn e mail
- successivamente, caricherà i gruppi della persona autenticata mappandoli sui gruppi di Joomla e associandoli all'utente Joomla
- la creazione dei gruppi richiede qualche decimo di secondo e i primi login potrebbero impiegare qualche secondo prima di mostrare nuovamente il sito
- Ogni gruppo viene mappato su una struttura a due livelli: ad es., per il gruppo i:infn:sezione:servizio::tipo_ruolo:ruolo
- sarà creato (se non già presente) un primo gruppo per il nodo corrispondente in GODiVA: i:infn:sezione:servizio
- …e sotto di esso (se non già presente) un secondo gruppo i:infn:sezione:servizio::tipo_ruolo:ruolo per il ruolo specifico
- L'utente avrà membership su entrambi i gruppi e così facendo sarà possibile identificare tutti gli afferenti ad uno stesso nodo indipendentemente dal ruolo
- Ad ogni login tutte le membership sono cancellate (ma non i relativi gruppi) e riassegnate in base ai gruppi ricevuti dall'IdP
- A partire dai gruppi sarà possibile definire diversi Livelli di visibilità per contenuti e menu
cn/ccr/aai/howto/joomla.txt · Last modified: 2018/02/21 14:41 by apaolett@infn.it