...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
composer require "simplesamlphp/simplesamlphp: 1.19.6" |
Per permettere a SimpleSAMLphp a comunicare con Drupal bisogna che installiamo un modulo (per SimpleSAMLphp, non per Drupal)
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
composer require "drupalauth/simplesamlphp-module-drupalauth:1.9.1 as 1.8.1" |
Per trasformare drupal in Identity provider manca un altro modulo
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
certs/
simplesamlphp/
- dev/
- - certs/
- - config/
- - metadata/
- prod/
- - certs/
- - config/
- - metadata/
vendor/
- simplesamlphp/
- - simplesamlphp/
- - - modules/
- - - - drupalauth/
web/
- autoload.php
- core/
- .htaccess
- idp -> ../vendor/simplesamlphp/simplesamlphp/www
- index.php
- modules/
- profiles/
- sites/
- themes/
- update.php
composer.json
composer.lock |
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
cd /{progetto}/simplesamlphp/dev/certs openssl req -newkey rsa:3072 -new -x509 -days 3652 -nodes -out simplesaml.crt -keyout simplesaml.pem openssl rsa -in simplesaml.pem -out simplesaml.key |
Questo creerà 3 files simplesaml.crt,simplesaml.pem,simplesaml.key
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
openssl reqcd /{progetto}/certs openssl req -newkey rsa:3072 -new -x509 -days 3652 -nodes -out drupal.crt -keyout drupal.pem openssl rsa -in drupal.pem -out drupal.key |
Questi certificati saranno i nostri certificati X.509 per l'SP.
...
Puoi accedere a questo utilizzando la password di amministrazione che hai impostato sopra.
{{FOTO}}
Il sistema non fa molto al momento, quindi abilitiamo alcuni protocolli e moduli di autenticazione.
...
Si noti che quanto sopra utilizza una fonte di autenticazione chiamata "example-userpass". Questo viene fornito in bundle con SimpleSAMLphp come sistema di autenticazione di esempio e fornisce agli utenti una matrice piatta di credenziali utente e password. Questo va bene da usare per l'installazione e il test, ma probabilmente non è una buona idea da usare in produzione. La configurazione per questo sistema di autenticazione è conservata nel file authsources.php nella tua directory di configurazione. Devi anche aver abilitato il modulo 'exampleauth' nella tua configurazione.
Con questo array di questa configurazione in posizione, vai alla scheda "Federazione" nella configurazione di SimpleSAMLphp. Ora dovresti vedere il tuo IdP nell'elenco. Questo è visualizzabile anche senza aver effettuato l'accesso come amministratore dell'applicazione.
Fai clic su "Mostra metadati", vedrai un mucchio di output. Questo è costituito dall'URL dei metadati, dall'XML dei metadati SAML 2.0, da una rappresentazione PHP degli stessi e dal certificato x509 pubblico che abbiamo creato in precedenza che viene utilizzato per crittografare/decrittografare i dati.
Copia l'output PHP e incollalo in saml20-ipd-remote.php nella directory dei metadati.
Torneremo su SimpleSAMLphp tra un po', ma prima dobbiamo configurare Drupal.
Configurare Drupal come un IDP
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
$metadata['ssotestdrupal'] = [
'metadata-set' => 'saml20-idp-remote',
'entityid' => 'ssotestdrupal',
'SingleSignOnService' => [
[
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
'Location' => 'https://multisite.ddev.site/idp/saml2/idp/SSOService.php',
],
],
'SingleLogoutService' => [
[
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
'Location' => 'https://multisite.ddev.site/idp/saml2/idp/SingleLogoutService.php',
],
],
'certData' => '[REMOVED]',
'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient',
]; |
Torneremo su SimpleSAMLphp tra un po', ma prima dobbiamo configurare Drupal.
Configurare Drupal come un IDP
Un requisito Un requisito per far funzionare tutto questo in Drupal è l'uso del modulo drupalauth4ssp. Questo viene installato tramite il composer.
...
Allowed List of URLs for ReturnTo Parameter: *
Facoltativamente, puoi aggiungere URL all'elenco dei parametri ReturnTo consentiti. Questo viene utilizzato dal sistema di autenticazione per rimandare gli utenti ai loro siti di origine (ovvero l'SP a cui stanno tentando di accedere) e quindi può essere una misura di sicurezza aggiuntiva per impedire ai siti indesiderati di utilizzare il tuo sito come IdP.
...