Identity Brokering
L'Identity Brokering permet aux utilisateurs de se connecter via un fournisseur d'identite externe (Google, GitHub, Facebook, etc.). Keycloak agit comme intermediaire.
Configurer Google comme Identity Provider
- Creez un projet dans Google Cloud Console
- Activez l'API "Google+ API" ou "Google Identity"
- Creez des identifiants OAuth 2.0 :
- Redirect URI :http://localhost:8080/realms/mon-application/broker/google/endpoint - Dans Keycloak : Identity Providers > Google
- Collez le Client ID et le Client Secret de Google
Configurer GitHub comme Identity Provider
- Allez dans GitHub Developer Settings
- Creez une nouvelle OAuth App :
- Homepage URL :http://localhost:8080
- Callback URL :http://localhost:8080/realms/mon-application/broker/github/endpoint - Dans Keycloak : Identity Providers > GitHub
- Collez le Client ID et le Client Secret
Configuration commune des Identity Providers
- First Login Flow : Que faire quand un utilisateur se connecte pour la premiere fois (creer un compte, lier a un existant)
- Trust Email : Faire confiance a l'email fourni par le provider
- Account Linking : Lier un compte social a un compte existant
- Mappers : Transformer les informations du provider en attributs Keycloak
# Exemple : ajouter un mapper pour recuperer l'avatar GitHub
# Identity Providers > GitHub > Mappers > Add mapper
# Type: Attribute Importer
# Claim: avatar_url
# User Attribute Name: avatar
First Login Flow
Le First Broker Login flow controle ce qui se passe quand un utilisateur se connecte pour la premiere fois via un provider externe :
- Review Profile : Demander a l'utilisateur de verifier son profil
- Create User If Unique : Creer automatiquement un compte si l'email n'existe pas
- Automatically Link Brokered Account : Lier automatiquement au compte existant si l'email correspond
Securite : Faites attention avec le lien automatique. Un attaquant pourrait creer un compte Google avec l'email d'une victime pour acceder a son compte Keycloak.