Comprendre le SSO avec Keycloak¶
Bienvenue dans ce guide francophone pour découvrir l’authentification unique (SSO), les protocoles OpenID Connect (OIDC) et SAML 2.0, puis leur mise en œuvre avec Keycloak. Il s’adresse aux débutants : chaque notion est introduite avant d’être utilisée, et les exemples servent de point de départ à adapter à votre environnement.
Pourquoi ce guide ?¶
Le SSO permet à une personne de s’authentifier une fois auprès d’un fournisseur d’identité puis d’accéder à plusieurs applications sans ressaisir ses identifiants à chaque fois. Les protocoles définissent comment les applications et le fournisseur se font confiance, échangent des messages et vérifient l’identité. Keycloak est un serveur open source qui peut jouer le rôle de fournisseur d’identité, gérer des comptes et fédérer des sources externes.
Le guide distingue l’authentification (« qui êtes-vous ? ») de l’autorisation (« qu’avez-vous le droit de faire ? »). Un jeton ou une assertion n’accorde que les droits que l’application et sa configuration savent interpréter.
Parcours de lecture¶
- Protocoles SSO : notions communes et comparaison
- OIDC : OAuth 2.0, jetons, points de terminaison et flux
- SAML 2.0 : assertions, requêtes, bindings et métadonnées
- Concepts Keycloak : realms, clients, rôles et utilisateurs
- Fédération d’utilisateurs LDAP / Active Directory
- Courtiers d’identité et connexion à un fournisseur externe
- Parcours d’authentification, OTP et WebAuthn
- Guide pratique pas à pas
Carte d’ensemble des concepts Keycloak¶
Le diagramme donne une vue d’ensemble : un realm contient la configuration d’identité, les utilisateurs, les groupes, les clients, les rôles et les flux. Les courtiers et fournisseurs LDAP relient le realm à des systèmes extérieurs. Les protocoles OIDC et SAML transportent les échanges avec les applications.
flowchart LR
Personne[Utilisateur] -->|s'authentifie| Realm[Realm Keycloak]
Realm --> Users[Utilisateurs locaux]
Realm --> Groups[Groupes]
Groups -->|membres et rôles hérités| Users
Realm --> Roles[Rôles de realm]
Realm --> Clients[Clients / applications]
Clients --> ClientRoles[Rôles de client]
Users -->|attributions directes ou via groupes| Roles
Users --> ClientRoles
Clients --> Scopes[Client scopes]
Scopes --> Mappers[Protocol mappers]
Mappers --> Tokens[Claims des jetons / assertions]
Clients -->|OIDC| OIDC[ID token et access token]
Clients -->|SAML 2.0| SAML[Réponse et assertion SAML]
OIDC --> Apps[Applications]
SAML --> Apps
Realm --> Flows[Flux d'authentification]
Flows --> MFA[Mot de passe, OTP, WebAuthn]
Realm --> Federation[Fédération LDAP / AD]
Federation --> Directory[Annuaire externe]
Realm --> Broker[Identity brokering]
Broker --> ExternalIdP[IdP externe OIDC / SAML]
Comment utiliser le guide¶
- Lisez Protocoles SSO pour fixer le vocabulaire, puis choisissez OIDC ou SAML 2.0 selon l’application.
- Consultez les concepts Keycloak avant de créer des rôles ou des clients.
- Les sujets LDAP, courtage d’identité et flux sont détaillés dans leurs pages respectives.
- Suivez le guide pratique pour lancer une instance de développement et tester une configuration.
Sécurité :
start-devet les secrets d’exemple de ce guide sont réservés aux essais locaux. En production, utilisez HTTPS, une base de données adaptée, des secrets gérés, des URL publiques exactes, des sauvegardes et une politique de mises à jour. Consultez les recommandations correspondant à votre version de Keycloak.