Drupal SAML Single Sign On utilisant SimpleSAMLphp comme fournisseur d'identité
Marché
L'intégration Drupal SAML utilisant le Module miniOrange SAML SP établit une connexion unique transparente entre SimpleSAMLphp et le site Drupal. Les utilisateurs pourront se connecter au site Drupal en utilisant leurs identifiants SimpleSAMLphp. Ce document vous guidera à travers les étapes de configuration de l'authentification unique - SSO entre Drupal en tant que fournisseur de services (SP) et SimpleSAMLphp en tant que fournisseur d'identité (IdP). Le module est compatible avec Drupal 7, Drupal 8, Drupal 9, Drupal 10 et Drupal 11.
Procédure d'installation
- Utiliser le compositeur
- Utiliser Drush
- Installation manuelle
Étapes de configuration
Métadonnées Drupal SAML SP
- Allez dans Configuration → Personnes → Configuration de connexion SAML dans le Administration menu. (/admin/config/people/miniorange_saml/idp_setup)
- Sous l'onglet Métadonnées du fournisseur de services, copiez le ID d'entité SP/émetteur et URL du SPACS et gardez-les à portée de main. Ces métadonnées SP sont nécessaires pour configurer SimpleSAMLphp en tant que fournisseur d'identité (IdP).
Configurer SimpleSAMLphp comme fournisseur d'identité
-
Depuis le répertoire d'installation de SimpleSAML, ouvrez config/config.php et modifiez ce qui suit :
'enable.saml20-idp' ⇒ vrai
- Activez la Authentification UserPass module (inclus dans exampleauth). Cela se fait en créant un fichier nommé permettre (nom du fichier) dans modules/exempleauth/.
-
Créez une source d'authentification dans config/authsources.phpLe fichier doit contenir une seule entrée, voir ci-dessous :
'__DEFAULT__', /* * La clé privée et le certificat à utiliser lors de la signature des réponses. * Ceux-ci sont stockés dans le répertoire cert. */ 'privatekey' => 'example.org.pem', 'certificate' => 'example.org.crt', /* * La source d'authentification qui doit être utilisée pour authentifier l'utilisateur. Cela doit correspondre à l'une des entrées dans config/authsources.php. */ 'auth' => '' Exemple : 'example-userpass', // Vous pouvez le trouver à l'étape numéro 1 ];
Cette configuration crée deux utilisateurs - étudiant et employé, avec les mots de passe studentpass et employeepass. Le nom d'utilisateur et le mot de passe sont stockés dans l'index du tableau (student:studentpass pour l'utilisateur étudiant). Les attributs de chaque utilisateur sont configurés dans le tableau référencé par l'index. Ainsi, pour l'utilisateur étudiant, il s'agit de :
[ 'uid' => ['étudiant'], 'eduPersonAffiliation' => ['membre', 'étudiant'], ],
Les attributs seront renvoyés par l'IdP lorsque l'utilisateur se connectera.
- Générez un certificat auto-signé à l'aide de l'une des méthodes suivantes :
-
Utilisation de la commande openssl
openssl req -newkey rsa:3072 -new -x509 -days 3652 -nodes -out exemple.org.crt -keyout exemple.org.pem
-
Générez-le à l'aide de n'importe quel outil en ligne et ajoutez-le dans le répertoire cert.
L'extension devrait ressembler àexemple.org.crt //(Clé publique)exemple.org.pem //(Clé privée)
-
À noter: SimpleSAMLphp ne fonctionnera qu'avec les certificats RSA. Les certificats DSA ne sont pas pris en charge.
-
L'IdP SAML 2.0 est configuré par les métadonnées stockées dans métadonnées/saml20-idp-hosted.php. Ceci est une configuration minimale :
'__DEFAULT__', /* * La clé privée et le certificat à utiliser lors de la signature des réponses. * Ceux-ci sont stockés dans le répertoire cert. */ 'privatekey' => 'example.org.pem', 'certificate' => 'example.org.crt', /* * La source d'authentification qui doit être utilisée pour authentifier l'utilisateur *. Cela doit correspondre à l'une des entrées dans config/authsources.php. */ ' auth' => '' Exemple :- 'example-userpass', // Vous pouvez trouver ceci à l'étape numéro 1 ];
-
Le fournisseur d'identité que vous configurez doit connaître les fournisseurs de services auxquels vous allez vous connecter. Ceci est configuré par les métadonnées stockées dans metadata/saml20-sp-remote.php. Voici un exemple minimal d'un fichier de métadonnées metadata/saml20-sp-remote.php pour un SP SimpleSAMLphp : (Remplacez example.com avec ton Nom de domaine Drupal.)
'https://example.com/samlassertion', 'SingleLogoutService' => 'https://example.com/user/logout', 'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid -format:emailAddress', 'simplesaml.nameidattribute' => 'mail', 'simplesaml.attributes' => true, 'attributes' => array('mail', 'givenname', 'sn', 'memberOf'), ];
À noter: L'URI de l'identifiant d'entité et les URL des points de terminaison AssertionConsumerService et Single Logout Service varient selon les fournisseurs de services. Si vous disposez des métadonnées du fournisseur de services distant sous forme de fichier XML, vous pouvez utiliser le convertisseur XML vers SimpleSAMLphp intégré, accessible par défaut sous le nom /admin/metadata-converter.php dans votre installation SimpleSAMLphp.
- Accédez à la page d’accueil de SimpleSAMLphp d’installation. (L'URL d'une installation peut être par exemple https://service.example.com/simplesaml/ où service.example.com doit être remplacé par votre chemin d'accès SimpleSAMLphp.)
- Accédez à l'onglet Fédération et cliquez sur Afficher les métadonnées(Ces métadonnées IdP seront nécessaires pour configurer Drupal en tant que fournisseur de services.)
Configurer Drupal comme fournisseur de services SAML :
- Accédez à votre site Drupal. Accédez au Configuration du fournisseur de services onglet du module et cliquez sur le bouton Télécharger les métadonnées IDP.
- Téléchargez le fichier de métadonnées précédemment téléchargé depuis SimpleSAML dans le Télécharger le fichier de métadonnées champ de texte et cliquez sur le Publier un fichier .
À noter: Pour mettre à jour le nom du fournisseur d'identité, procédez comme suit :
- Sous Action, Sélectionnez l' Modifier.
- Entrez SimpleSAMLphp dans le Nom du fournisseur d'identité champ de texte.
- Faites défiler vers le bas et cliquez sur le Enregistrer la configuration .
- Cliquez sur le lien Test pour tester la connexion entre Drupal et SimpleSAMLphp.
- Dans la fenêtre contextuelle de configuration de test, connectez-vous avec vos identifiants SimpleSAMLphp (si aucune session n'est déjà ouverte). Une fois l'authentification réussie, la liste des attributs reçus de SimpleSAMLphp s'affichera. Cliquez sur le bouton correspondant. OK.
Félicitations ! Vous avez configuré avec succès SimpleSAMLphp comme fournisseur d'identité SAML (IdP) et Drupal comme fournisseur de services SAML.
Comment fonctionne la connexion SAML SSO ?
- Ouvrez un nouveau navigateur/fenêtre privée et accédez à la page de connexion du site Drupal.
- Cliquez sur Connectez-vous à l'aide du fournisseur d'identité (SimpleSAMLphp) lien.
- Vous serez redirigé vers la page de connexion SimpleSAMLphp. Entrez les identifiants SimpleSAMLphp. Après une authentification réussie, l'utilisateur sera redirigé vers le site Drupal.
Merci pour votre réponse. Nous reviendrons vers vous bientôt.
Quelque chose s'est mal passé. Veuillez soumettre à nouveau votre requête

Contactez-nous