Drupal SimpleSAMLphp: SSO setup

SSO con SAML

Single Sign-On (SSO) tramite SAML 2.0 permette agli utenti di accedere a Drupal con le credenziali del provider centrale aziendale (Active Directory, Azure AD, Okta, Google Workspace, Keycloak). Per Drupal lo standard de facto e' SimpleSAMLphp integrato dal modulo simplesamlphp_auth.

Prerequisiti

  • SimpleSAMLphp installato sul server (libreria PHP, non modulo)
  • Metadata XML dell'Identity Provider (IdP)
  • Certificato SP (Service Provider) generato per Drupal
  • HTTPS obbligatorio

Installazione SimpleSAMLphp

Via Composer come libreria standalone (preferito per Drupal 10/11):

composer require simplesamlphp/simplesamlphp

Si crea una directory accessibile via web (es. /simplesaml) che punta a vendor/simplesamlphp/simplesamlphp/www.

Configurazione SP

In simplesamlphp/config/authsources.php si configura il Service Provider:

'default-sp' => [
  'saml:SP',
  'entityID' => 'https://www.example.com/saml',
  'idp' => 'https://idp.example.com/metadata',
  'privatekey' => 'sp.key',
  'certificate' => 'sp.crt',
],

Metadata IdP

Il file metadata/saml20-idp-remote.php contiene la configurazione dell'IdP (URL, certificato pubblico, formato NameID). Tipicamente importata dall'XML fornito da IT/admin IdP.

Modulo Drupal

composer require drupal/simplesamlphp_auth
drush en simplesamlphp_auth

Da /admin/config/people/simplesamlphp_auth:

  • Activate SimpleSAMLphp: ON
  • Path SimpleSAMLphp installation: ../vendor/simplesamlphp/simplesamlphp
  • Authentication source: default-sp

Mapping attributi

Si mappano gli attributi SAML ai campi utente Drupal:

  • Username: uid o mail
  • Email: mail
  • First name: givenName
  • Last name: sn

Auto-provisioning

Opzione "Register users" crea automaticamente l'account Drupal al primo login SSO. Ruoli iniziali assegnati da configurazione. Mapping ruoli SAML role attribute -> ruolo Drupal abilita governance centralizzata.

Local accounts

Si decide se permettere ancora login locale (utente/password Drupal) o forzare SSO. Per admin tipicamente si mantiene login locale come fallback in caso di IdP down.

Logout SLO

Single Logout (SLO): il logout in Drupal propaga all'IdP e a tutte le altre app federate. Configurabile in simplesamlphp_auth e nei metadata SP/IdP.

Test

Pagina di test SimpleSAMLphp /simplesaml espone diagnostiche: SP info, metadata, autenticazione test verso IdP.

Hai bisogno di aiuto?

Se vuoi un sito Drupal performante dal team di G Tech Group, scrivici tramite il modulo di contatto.

Hai trovato utile quest'articolo?