Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagebash
themeConfluence
titlesimplesamlphp
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
languagebash
themeConfluence
titlesimplesamlphp-module-drupalauth
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
languagebash
themeConfluence
titleStruttura files
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
languagebash
themeConfluence
titleCreazione Certificati
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
languagebash
themeConfluence
titleCertificati SP
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}}Image Added

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.

Image Added

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
languagephp
themeConfluence
titlesaml20-idp-remote
$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: *

Image Added

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.

...