Intégration étape par étape d’eXo Platform SSO via SAML2 avec Keycloak
eXo Platform fournit une implémentation de l’authentification unique Single Sign-On (SSO) en tant que plate-forme d’intégration et d’agrégation.
Lors de la connexion au portail, les utilisateurs ont accès à de nombreux systèmes via des portlets utilisant une identité unique. Dans de nombreux cas, l’infrastructure du portail doit être intégrée à d’autres systèmes compatibles SSO.
Il existe différentes solutions de gestion des identités. Dans la plupart des cas, chaque infrastructure SSO constitue un moyen unique de se connecter à une application Java EE.
Le tutoriel suivant présente une intégration étape par étape d’eXo Platform SSO via saml2 avec Keycloak (veuillez noter que nous avons utilisé une configuration de base).
Disclaimer: Je ne suis en aucun cas un expert en SAML2, ni en Keycloack.
Mon idée et motif par écrit ce poste était tout d’abord de m’enseigner ces concepts, tout en essayant de redonner quelque chose à la communauté eXo.
Bien que j’ai essayé et testé toutes les étapes moi-même, des erreurs se sont peut-être glissées. Si vous remarquez que quelque chose qui ne va pas du tout avec les informations que j’ai partagées, faites-le-moi savoir.
Nous apprenons tous de façon continue, et nous pouvons certainement le faire ensemble!
Je sais que votre temps est précieux, donc je l’ai enregistré un screencast reprenant toutes les étapes que je décris dans ce tutoriel:
Passons maintenant aux instructions étape par étape.
Mise en place de Keycloak
D’abord, nous devons lancer et configurer une instance Keycloak
- Lancement de keycloak (en supposant qu’il s’exécute sur le port 8080)
- Créer un utilisateur “administrateur” et accéder à la console d’administration
- Dans le menu “Clients”, ajouter un nouveau “Client”
# URI du référent (pour notre cas, nous avons utilisé le service de connexion d’eXo http: // localhost: 8090/portal/dologin)
- Après l’enregistrement, assurez-vous d’exporter la clé SAML (assurez-vous de la placer dans le dossier $EXO_HOME/gatein/conf/saml2): SAML KEYS → EXPORT: ajoutez les mots de passe Key et du store (à renseigner ultérieurement dans picketlink-sp.xml) & Assurez-vous de conserver l’alias de certificat du Realm tel quel (valeur par défaut: master).
- Aller au “settings, remplir le formulaire comme indiqué ci-dessous et enregistrer.
- Aller à “Roles” et ajoutez les rôles déjà existants dans eXo Platform (les “Roles” à utiliser: users, administrators,web-contributors and guests, bien sûr en minuscule).
- Aller à Users > Ajouter un utilisateur et s’assurer d’ajouter des utilisateurs qui existent déjà dans eXo Platform (les mêmes noms d’utilisateur).
Note: Keycloack offre un support d’intégration pour LDAP et Active Directory.
Vous pouvez également coder votre propre extension pour toutes les bases de données utilisateur personnalisées que vous possédez avec User Storage SPI de Keycloack. Sinon, vous devez créer manuellement des utilisateurs dans Keycloack.
Pour plus de détails, veuillez consulter la documentation “Keycloack’s User Federation Storage”.
– Pour chaque utilisateur créé, veuillez à ajouter les rôles en conséquence et à leurs attribuer des mots de passe.
Mise en place d’eXo Platform
Ce qui suit suppose que vous avez une instance d’eXo Platform et que vous exécutez localhost sur le port 8090. Veuillez vous réfèrer à la documentation eXo Platform pour savoir comment procéder.
- Installer exo-saml-addon:
Note:Nous avons installé la version 2.2.2 d’exo-saml (version addon compatible avec eXo Platform 5.2.2)
Note: Après l’installation de l’add-on SAML2, son dossier correspondant saml2 doit se trouver sous le chemin $EXO_HOME/standalone/configuration/gatein/. Donc, vous devez les déplacer sous le chemin $EXO_HOME/gatein/conf en exécutant cette commande sous le chemin $EXO_HOME:
2. Ouvrir le fichier $EXO_HOME/gatein/conf/exo.properties et éditer les propriétés suivantes (A ajouter si elles n’existent pas)
gatein.sso.enabled=true gatein.sso.callback.enabled=${gatein.sso.enabled} gatein.sso.login.module.enabled=${gatein.sso.enabled} gatein.sso.login.module.class=org.gatein.sso.agent.login.SAML2IntegrationLoginModule gatein.sso.filter.login.sso.url=/@@portal.container.name@@/dologin gatein.sso.filter.initiatelogin.enabled=false gatein.sso.valve.enabled=true gatein.sso.saml.config.file=$EXO_HOME/gatein/conf/saml2/picketlink-sp.xml gatein.sso.idp.host=localhost #Keycloak instance gatein.sso.idp.url=http://${gatein.sso.idp.host}:8080/auth/realms/master/protocol/saml # eXo platform login URL gatein.sso.sp.url=http://localhost:8090/portal/dologin # WARNING: This bundled keystore is only for testing purposes. You should generate and use your own keystore! gatein.sso.picketlink.keystore=$EXO_HOME/gatein/conf/saml2/jbid_test_keystore.jks gatein.sso.valve.class=org.gatein.sso.saml.plugin.valve.ServiceProviderAuthenticator gatein.sso.filter.logout.enabled=false gatein.sso.filter.initiatelogin.enabled=false
- Copier les bibliothèques de support SAML
*- Ajouter « jboss-security-spi-3.0.0.Final.jar » (Lien) dans $EXO_HOME/lib/
*- Ajouter «sso-saml-plugin-5.2.2.jar» (lien) dans $EXO_HOME/lib/ (si vous utilisez la version exo-saml 2.2.3, veuillez utiliser «sso-saml-plugin-5.2.2 .jar »(lien))
**- Modifier le fichier $EXO_HOME/gatein/conf/saml2/picketlink-sp.xml
# Ajouter les mots de passe KeyStorePass, SigningKeyPass et SigningKeyAlias appropriés.
- Lancer eXoPlatform:
Vérifier votre configuration
Maintenant que vous êtes tous prêts, assurez-vous que tout fonctionne comme il se doit. C’est votre jour de chance, j’ai fait un autre screen-cast pour ça aussi.
- Créez des utilisateurs dans Keycloack et eXo Platform pour les tester. Veuillez considérer que le nom d’utilisateur «john» dans eXo Platform doit être identique au nom d’utilisateur «john» dans Keycloack. Assurez-vous également que les utilisateurs de Keycloack aient le rôle «users» (pour pouvoir accéder à eXo Platform).2. Maintenant, accédez à eXo Platform. Vous serez redirigé vers la page de connexion Keycloack.
Après avoir obtenu l’authentification avec le nom d’utilisateur Keycloak, vous avez accès à eXo Platform.
- Une fois que vous vous déconnectez d’eXo Platform, vous serez redirigé vers la page de connexion Keycloak.Dans cet article, nous avons montré comment configurer eXo Platform SSO via saml2 avec Keycloak.
Ce guide a été réalisé avec les versions ci-dessous:
eXo Platform: 5.2.2 / 5.2.3
Keycloack: 6.0.1 / 7.0.1
exo-saml: 2.2.2 / 2.2.3
N’hésitez pas à nous faire part de votre expérience en appliquant ce didacticiel sur vos propres instances et à nous contacter si vous avez des questions ou des problèmes.
SPOILER ALERT:
* Ces étapes ne seront plus nécessaires à partir de eXo Platform 5.2.5 (Sera publié bientôt).
** À partir de eXo Platform 5.2.5, ces propriétés seront définies dans exo.properties.
Découvrez comment eXo Platform peut vous aider à transformer votre entreprise!