Solution d'identité et de management
Open ENT v3 s'appuie sur la solution d'identité et de management KeyCloak par défaut.
Keycloak supporte plusieurs protocoles de sécurité pour l'authentification et l'autorisation des applications. Voici les principaux protocoles supportés par Keycloak :
-
OpenID Connect (OIDC) :
- OpenID Connect est un protocole d'authentification basé sur OAuth 2.0. Il fournit des fonctionnalités d'authentification sécurisées pour les applications web et mobiles en utilisant des tokens JWT (JSON Web Tokens). Keycloak est une implémentation complète d'OIDC, ce qui permet aux applications de se connecter et de s'authentifier de manière sécurisée.
-
OAuth 2.0 :
- OAuth 2.0 est un protocole d'autorisation largement utilisé pour permettre à une application tierce d'accéder aux ressources d'un utilisateur sans divulguer les identifiants de l'utilisateur. Keycloak implémente OAuth 2.0 pour fournir des mécanismes d'autorisation sécurisés et flexibles.
-
SAML (Security Assertion Markup Language) :
- SAML est un protocole de fédération d'identité permettant l'authentification unique (SSO) entre plusieurs applications ou domaines. Keycloak peut agir en tant que fournisseur d'identité SAML, permettant aux utilisateurs de s'authentifier auprès de plusieurs applications à l'aide de leurs identifiants Keycloak.
-
LDAP (Lightweight Directory Access Protocol) :
- Bien que techniquement pas un protocole de sécurité au sens strict, LDAP est un protocole de communication standard utilisé pour accéder et gérer des services d'annuaire. Keycloak peut intégrer des services d'annuaire LDAP pour l'authentification des utilisateurs.
-
Kerberos :
- Keycloak supporte également l'intégration avec Kerberos pour l'authentification unique (SSO) basée sur des tickets Kerberos, permettant aux utilisateurs de se connecter à leurs applications sans ressaisir leurs identifiants.
-
HTTP POST et HTTP Redirect Binding :
- Ces méthodes sont utilisées avec SAML pour la communication sécurisée entre le fournisseur d'identité (IdP) Keycloak et les services de confiance (SP), garantissant l'intégrité et la confidentialité des données d'authentification.
Ces protocoles permettent à Keycloak de répondre à une variété de besoins d'authentification et d'autorisation dans différents environnements et pour divers types d'applications, allant des applications web traditionnelles aux services cloud modernes et aux microservices.
Différence entre Open ENT NG et Open ENT v3
Dans Open ENT v3, le projet entcore/auth contient un serveur OAuth 2. Cette partie du projet est remplacé par keycloak qui propose une interface complète d'administration.
Configuration Headers KeyCloak
Configuration du client pour la partie frontend
Identification de l'utilisateur
OAuth est utilisé pour l'authentification et l'autorisation. Contrairement à Open ENT NG, il n'y a pas de gestion de sessions (application stateless) permettant une montée en charge horizontale de l'application