Shibboleth est un produit gratuit à code source ouvert qui offre une solution d'identité fédérée permettant de connecter les utilisateurs à des applications, tant à l'intérieur qu'à l'extérieur des établissements. Le cadre flexible du fournisseur de modules SSO de Lumina est conçu pour prendre en charge une grande variété de solutions d'identité et permet une intégration complète de Shibboleth dans votre infrastructure en quelques étapes simples.
Aperçu
Ce document vise à guider les utilisateurs dans l'intégration du serveur IDP Shibboleth de leur établissement en tant que système SSO pour connecter les utilisateurs à Lumina au moyen du protocole SAML 2.0. Une fois la configuration terminée, les utilisateurs devraient pouvoir lancer une connexion à partir du fournisseur de services (SP), être redirigés vers le fournisseur d'identité (IDP) et invités à saisir leurs identifiants, être authentifiés avec succès, puis être redirigés vers Lumina, où ils seront connectés en tant qu'utilisateurs.
Configuration de Shibboleth
La configuration consiste à créer les métadonnées SP de Lumina et à les ajouter comme fournisseur de métadonnées SP pour l'IDP Shibboleth. Il faut ensuite configurer Lumina pour qu'il communique avec l'IDP, ce qui vous permettra de tester et d'activer le nouveau système SSO.
Pour obtenir des instructions sur la création des métadonnées SP, cliquez ici.
Remarque : pour certaines étapes, <organization> doit être remplacé par le DNS générique de l'organisation associée à Lumina. Par exemple, pour « https://hudson.yuja.com », <organization> serait remplacé par « hudson ».
Créer les métadonnées SP
- Accédez à https://www.samltool.com/sp_metadata.php.
-
Saisissez les paramètres suivants :
Paramètre Valeur EntityId https://<organization>.yuja.com Attribute Consume Service Endpoint
(HTTP-POST)
https://<organization>.yuja.com/D/SamlReceiveResponse NameId Format urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress AuthnRequestsSigned False WantAssertionsSigned True - Laissez les autres champs vides, puis cliquez sur BUILD SP METADATA.
- Copiez le texte dans le champ de texte SP Metadata.
- Ouvrez n'importe quel éditeur de texte. Collez le texte copié et enregistrez-le sous forme de fichier .xml. Enregistrez le fichier .xml à un endroit pratique, car vous en aurez besoin à l'étape suivante.
Configuration de l'IDP Shibboleth
- Dans le répertoire de votre IDP Shibboleth, ouvrez %IDP_HOME%/conf/metadata-providers.xml dans n'importe quel éditeur de texte.
- À l'intérieur de l'élément <MetadataProvider> dont xsi:type est ”ChainingMetadataProvider”, ajoutez l'élément suivant, où <someId> est remplacé par une chaîne d'identifiant appropriée : <MetadataProvider id="<someId>" xsi:type="FilesystemMetadataProvider" metadataFile="C:\path\to\YuJa\metadata" />
- Assurez-vous que l'IDP transmet à Lumina les attributs suivants dans la réponse SAML :
- Principal Name (c'est-à-dire le nom d'utilisateur)
- First Name
- Last Name
-
Role
Remarque : Lumina a besoin des noms d'attributs utilisés dans la réponse SAML pour provisionner et créer des utilisateurs. Communiquez ces valeurs à Lumina après la configuration.
La revendication Role sert à déterminer si les utilisateurs sont provisionnés comme étudiants (valeur par défaut) ou reçoivent des privilèges élargis (Instructeur ou Gestionnaire TI). Les valeurs suggérées pour ce champ sont IT Manager et Instructor (pour les utilisateurs auxquels vous souhaitez accorder respectivement les privilèges de gestionnaire TI ou d'instructeur), mais vous pouvez utiliser des valeurs existantes ou personnalisées.
- Lumina ne chiffre pas les demandes d'authentification et ne reconnaît pas les réponses chiffrées. L'IDP doit donc être configuré pour rendre le chiffrement facultatif :
- Ouvrez %IDP_HOME%/conf/idp.properties dans n'importe quel éditeur de texte.
- Au besoin, ajoutez la ligne suivante au fichier de propriétés : idp.encryption.optional = true
- Ouvrez le fichier de métadonnées de l'IDP, situé dans %IDP_HOME%/metadata/idp-metadata.xml. Vous en aurez besoin pour configurer le côté Lumina.
Configuration SAML de Lumina
Une fois l'IDP configuré, le SP doit être configuré pour communiquer avec l'IDP. Certains des paramètres de configuration se trouvent dans les métadonnées de l'IDP. Suivez les étapes ci-dessous pour intégrer Shibboleth à Lumina.
- Connectez-vous à Lumina en tant que gestionnaire TI et accédez à Panneau d'admin → Intégrations.
- Sous Sélectionner une intégration, choisissez SSO – Shibboleth (SAML).
-
Saisissez les renseignements suivants. Lorsque vous créez le système SSO pour la première fois, vous pouvez laisser vides les champs de provisionnement des utilisateurs afin d'effectuer d'abord un test de connexion SAML (Tester la connexion SAML) pour récupérer les valeurs. Vous pourrez toujours saisir les valeurs plus tard et enregistrer votre configuration.
Attribut Obligatoire? Description URL SSO Shibboleth Oui L'URL utilisée pour le SSO. C'est à cette adresse que Lumina enverra les jetons AuthnRequest.
Elle se trouve dans les métadonnées de l'IDP Shibboleth sous :
<IDPSSODescriptor> → <SingleSignOnService>
Repérez celui dont la liaison est « SAML:2.0:bindings:HTTP-Redirect » et utilisez l'attribut « Location » de cette balise.
Par exemple : https://idp.example.com/idp/profile/SAML2/Redirect/SSO
Format de l'ID de nom Oui Le format que le SP et l'IDP doivent utiliser pour communiquer au sujet d'un sujet.
Il se trouve dans les métadonnées de l'IDP Shibboleth sous :
<IDPSSODescriptor> → <NameIDFormat>, comme valeur de cette balise. Notez que, si elle est disponible, la valeur emailAddress doit être privilégiée et utilisée.
Par exemple : urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
URL de déconnexion à distance Non prise en charge actuellement Laissez cette valeur vide. Empreinte du certificat de signature Shibboleth Non, mais fortement
recommandée
L'empreinte unique du certificat de l'IDP utilisé pour signer les réponses SAML.
L'empreinte ne se trouve pas explicitement dans les métadonnées, mais le certificat utilisé pour signer la SAMLResponse ou l'Assertion, lui, s'y trouve.
Pour plus de détails, consultez la section intitulée Comment obtenir l'empreinte d'un certificat de ce document.
Par exemple : 7j2mka9cfe2d09j23eefe01442f6a49d1222391f
Attribut du prénom Non Le nom de l'attribut de la réponse SAML** qui décrit le prénom de l'utilisateur.
Par exemple : urn:oid:2.5.4.42
Attribut du nom de famille Non Le nom de l'attribut de la réponse SAML** qui décrit le nom de famille de l'utilisateur. - Par exemple : urn:oid:2.5.4.4 Attribut du courriel Non Le nom de l'attribut de la réponse SAML** qui décrit l'adresse courriel de l'utilisateur.
Par exemple : urn:oid:0.9.2342.19200300.100.1.3
Attribut du rôle Non Le nom de l'attribut de la réponse SAML** qui décrit le rôle de l'utilisateur.
Par exemple : urn:oid:1.3.6.1.4.1.5923.1.1.1.5
Gestionnaire TI Non Vous pouvez utiliser une liste de valeurs séparées par des virgules
Si la valeur reçue dans l'attribut du rôle correspond à l'une de ces valeurs, l'utilisateur sera provisionné comme gestionnaire TI.
Par exemple : IT Manager
Instructeur Non Vous pouvez utiliser une liste de valeurs séparées par des virgules
Si la valeur reçue dans l'attribut du rôle correspond à l'une de ces valeurs, l'utilisateur sera provisionné comme instructeur.
Par exemple : Instructor ou Instructor,Teacher,TA
Synchroniser automatiquement les données à la connexion de l'utilisateur Non Si cette option est activée, chaque fois qu'un utilisateur se connecte par Shibboleth, ses renseignements de base sont mis à jour à partir des données reçues dans le jeton de réponse SAML. Remarque : pour obtenir un exemple de réponse SAML, suivez d'abord les instructions sous Extension Chrome utile pour déboguer les jetons SAML, dans la section Outils supplémentaires de ce document. Après avoir installé l'extension, effectuez un test de connexion SAML (Tester la connexion SAML) comme décrit à l'étape 7 de cette section, en vous assurant que l'extension est ouverte avant de vous connecter afin qu'elle puisse lire le jeton de réponse SAML.
- Cliquez sur Créer.
- Cliquez sur OK dans la boîte de dialogue de confirmation.
- Au besoin, vous pouvez modifier les paramètres de configuration si vous avez fait une erreur. Il suffit de cliquer sur Enregistrer pour conserver les modifications.
- Pour vérifier que la configuration est correcte, cliquez sur Tester la connexion SAML dans le coin supérieur droit. Un nouvel onglet devrait s'ouvrir et accéder à votre serveur Shibboleth, qui vous invitera à vous connecter.
- Saisissez des identifiants valides et connectez-vous.
- Vous devriez être redirigé vers Lumina, connecté en tant que nouvel utilisateur. Déconnectez-vous du compte du nouvel utilisateur et reconnectez-vous en tant que gestionnaire TI, puis retournez à Panneau d'admin→ Intégrations → SSO – Shibboleth (SAML).
- Une fois que vous avez vérifié que le SSO Shibboleth fonctionne, vous pouvez choisir d'activer le nouveau schéma d'authentification pour votre établissement. N'activez le nouveau schéma d'authentification qu'après avoir effectué avec succès une connexion de test et lorsque vous êtes prêt à le rendre disponible à tous les utilisateurs de votre établissement. Pour ce faire, cliquez sur Activer, puis sur OK dans la boîte de dialogue de confirmation.
Double intégration avec LTI
Si votre organisation a activé à la fois LTI et l'accès SSO SAML, vous pouvez choisir de lier les deux intégrations. Par défaut, un utilisateur qui se connecte à la fois par LTI et par SAML reçoit un compte Lumina distinct pour chaque connexion. Si votre fournisseur LTI est configuré pour authentifier les utilisateurs au moyen de leurs identifiants SAML, il est possible de lier les deux comptes, car le fournisseur LTI transmettra à Lumina un identifiant unique de l'utilisateur dans le système SAML.
- Configurez votre LMS pour qu'il transmette un paramètre LTI personnalisé appelé lis_person_sourcedid, qui contient la valeur SSO de correspondance. Il peut s'agir d'un courriel, d'un identifiant d'employé ou d'un autre champ. Lumina utilisera cette fonctionnalité pour lier les deux méthodes de connexion au même compte.
- Obtenez le nom précis de l'attribut utilisé dans le jeton de réponse SAML dont la valeur correspond à l'identifiant unique utilisé par le fournisseur LTI. Par exemple, si l'identifiant unique est le sAMAccountName de l'utilisateur, l'attribut de liaison pourrait être « urn:oid:1.2.840.113556.1.4.221 ». Consultez la configuration des attributs de votre IDP pour obtenir la liste des valeurs possibles.
- Saisissez cette valeur dans le champ Attribut de liaison.
- Cliquez sur Enregistrer.
- Désormais, lors de la première connexion par Shibboleth (SAML), le système Lumina recherchera un lien avec un compte LTI à l'aide de la valeur de l'attribut de liaison. Si un lien est trouvé, le compte lié à Shibboleth sera lié au compte existant lié à LTI. Sinon, un nouveau compte sera provisionné normalement. Toutes les connexions après la première continueront d'être liées au compte Lumina créé ou trouvé lors de la première connexion.
Utilisation
Une fois les deux côtés configurés et le SSO SAML activé, il est facile de vérifier que tout a été fait correctement.
- Accédez au domaine Lumina de l'organisation (https://<organization>.yuja.com) et cliquez sur Connexion. L'utilisateur devrait être redirigé vers la page de connexion du serveur IDP Shibboleth.
- Saisissez des identifiants valides et connectez-vous.
- Une fois authentifié, l'utilisateur devrait être redirigé vers Lumina.
Outils supplémentaires
Comment obtenir l'empreinte d'un certificat
L'empreinte du certificat de l'IDP sert à renforcer la sécurité lorsque le SP vérifie une réponse SAML de l'IDP. Pour obtenir l'empreinte du certificat, suivez les instructions ci-dessous :
- Dans les métadonnées de l'IDP Google, extrayez le certificat X509. Il devrait se trouver sous : <IDPSSODescriptor> →<KeyDescriptor use=”signing”> → <KeyInfo> → <X509Data> → <X509Certificate>
- Une fois le certificat en main, accédez au site Web suivant : https://www.samltool.com/fingerprint.php.
- Collez le certificat dans la zone de texte « X509 cert ».
- Assurez-vous que « sha1 » est sélectionné comme algorithme.
- Cliquez sur « Calculate Fingerprint ».
- Copiez la valeur « FingerPrint » générée. C'est la valeur utilisée dans la base de données. L'empreinte devrait être un tableau de 20 octets pour « sha1 ».
Extension Chrome utile pour déboguer les jetons SAML
Si vous utilisez Chrome comme navigateur Web, vous pouvez installer une extension SAML utile à l'adresse suivante : https://chrome.google.com/webstore/detail/saml-chrome-panel/paijfdbeoenhembfhkhllainmocckace?hl=en. Une fois l'extension installée, il suffit d'ouvrir les outils de développement du navigateur (F12) et de cliquer sur l'onglet SAML. Désormais, lors d'une connexion lancée par le SP, les jetons SAML envoyés par le navigateur seront affichés en détail. Cet outil peut être très utile pour déboguer les demandes et les réponses SAML.