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:
uidomail - 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.