Contactez-nous
  • en
  • fr
  • Solutions
    • Intranet social et collaboratifDécouvrez comment eXo vous aide à bâtir votre culture d’entreprise
    • Plateforme collaborativeDécouvrez comment eXo aide vos équipes à travailler efficacement
    • Gestion des connaissancesDécouvrez comment booster votre intelligence collective avec eXo
    • Engagement collaborateurDécouvrez comment booster l’engagement de vos collaborateurs
  • Produit
    • Aperçu
      • ProduitUn tour de la plateforme en vidéo
      • Pourquoi eXoeXo au service de l’expérience collaborateur
    • Fonctionnalités
      • CommunicationCommunication interne et animation de communautés
      • CollaborationTravail collaboratif et travail à distance
      • ConnaissanceGestion de la connaissance
      • ProductivitéProductivité et reconnaissance collaborateur
    • Technologie
      • Open sourceAperçu de notre plateforme open-source
      • IntégrationsComment eXo s’intègre avec vos outils et systèmes
      • SécuritéComment eXo garantit la sécurité de vos données
  • Tarifs
    • Tarifs produitNotre modèle de vente et nos prix
    • ServicesNotre offre de services
    • FAQsQuestions sur les offres, logiciel et la communauté
  • Ressources
    • Centre de ressources
      • Etudes de cas
      • Fiches produit
      • Livres blancs
      • Vidéos
    • Documentation technique
      • Getting started
      • Developer Guide
      • Technical administration guide
      • REST APIs
    • Blog
      • eXo Platform 6.4 éditions Enterprise et Community sont disponibles !
      • L’édition communautaire d’eXo Platform signe son retour
      • eXo Platform et Schiever lauréats des cas d’or de la collaboration agile 2022
  • Entreprise
    • A propos de nous
    • Carrières
    • Clients
    • Actualités
    • Contactez-nous
    • Partenaires
  • Menu mobile
    • Tarifs
    • A propos d’eXo
    • Services
    • FAQs
    • Clients
    • Centre de ressources
    • Contactez-nous
    • Blog
Intranet social et collaboratif Découvrez comment eXo vous aide à bâtir votre culture d’entreprise
Plateforme collaborative Découvrez comment eXo aide vos équipes à travailler efficacement
Gestion des connaissances Découvrez comment booster votre intelligence collective avec eXo
Engagement collaborateur Découvrez comment booster l’engagement de vos collaborateurs
Aperçu
  • Produit Un tour de la plateforme en vidéo
  • Pourquoi eXo eXo au service de l’expérience collaborateur
Fonctionnalités
  • Communication Communication interne et animation de communautés
  • Collaboration Travail collaboratif et travail à distance
  • Connaissance Gestion de la connaissance
  • Productivité Productivité et reconnaissance collaborateur
Technologie
  • Open source Aperçu de notre plateforme open-source
  • Intégrations Comment eXo s’intègre avec vos outils et systèmes
  • Sécurité Comment eXo garantit la sécurité de vos données
Tarifs produit Notre modèle de vente et nos prix
Services Notre offre de services
FAQs Questions sur les offres, logiciel et la communauté
Centre de ressources
  • Etudes de cas
  • Fiches produit
  • Livres blancs
  • Vidéos
Documentation technique
  • Getting started
  • Developer Guide
  • Technical administration guide
  • REST APIs
Blog
  • eXo Platform 6.4 éditions Enterprise et Community sont disponibles !
  • L’édition communautaire d’eXo Platform signe son retour
  • eXo Platform et Schiever lauréats des cas d’or de la collaboration agile 2022
A propos de nous
Carrières
Clients
Actualités
Contactez-nous
Partenaires
Tarifs
A propos d'eXo
Services
FAQs
Clients
Centre de ressources
Contactez-nous
Blog
  1. Accueil
  2. Etudes de cas
  3. Tutoriel
  4. Intégration étape par étape d’eXo Platform SSO via SAML2 avec Keycloak

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:

Integrate eXo Platform SOO via SAML2 with Keycloak

Passons maintenant aux instructions étape par étape.

Mise en place de Keycloak

D’abord, nous devons lancer et configurer une instance Keycloak

  1. Lancement de keycloak (en supposant qu’il s’exécute sur le port 8080)
  2. Créer un utilisateur “administrateur” et accéder à la console d’administration

Setting up Keycloak instance

 

  1. 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)

  1. 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).

Export SAML Key

  1. Aller au “settings, remplir le formulaire comme indiqué ci-dessous et enregistrer.

Export SAML Key on localhost

  1. 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).

Add Role SAML Key

  1. 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”.

Add User SAML Key

– Pour chaque utilisateur créé, veuillez à ajouter les rôles en conséquence et à leurs attribuer des mots de passe.

Root SAML Key

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.

  1. 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

 

 

  1. 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.

  1. 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.
Verify SAML Key

  1. 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.

  1. 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!

Jihed Chabbeh

Passionné depuis longtemps par les nouvelles technologies, et plus encore par l’environnement informatique. je suis particulièrement motivé par l’aspect relationnel entre l’univers informatique d’une entreprise et ses utilisateurs : former, expliquer, configurer, développer, en assurer la maintenance & le dépannage.

Une digital workplace tout-en-un centrée sur l'utilisateur pour des collaborateurs connectés et engagés

  • Fonctions
    • Communication Interne
    • Ressources humaines
    • Direction informatique
  • Produit
    • La Plateforme
    • Communiquer
    • Collaborer
    • Connaissances
    • Productivité
    • Open source
    • Integrations
    • Sécurité
  • Usages
    • Digital workplace
    • Logiciel collaboratif
    • Logiciel intranet
    • Gestion des connaissances
    • Plateforme d’engagement collaborateur
    • Réseau social d’entreprise
  • Guides
    • Qu’est ce q’un intranet ?
    • Plateforme collaborative
    • Guide Digital Workplace
    • La collaboration
    • Le travail collaboratif
    • Engagement collaborateur
    • Espace numérique de travail
  • Ressources
    • FAQs
    • Offres produit
    • Offres services
    • Centre de ressources
    • Clients
    • Partenaires
    • A propos de nous
  • Conditions Générales
  • Confidentialité
  • Mentions légales
  • Accessibilité
  • Plan du site
  • Contact
  • Facebook
  • Twitter
  • LinkedIn
wpDiscuz