Federation d'identites et social login 18 min de lecture

Social login : Google, GitHub et autres

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

  1. Creez un projet dans Google Cloud Console
  2. Activez l'API "Google+ API" ou "Google Identity"
  3. Creez des identifiants OAuth 2.0 :
    - Redirect URI : http://localhost:8080/realms/mon-application/broker/google/endpoint
  4. Dans Keycloak : Identity Providers > Google
  5. Collez le Client ID et le Client Secret de Google

Configurer GitHub comme Identity Provider

  1. Allez dans GitHub Developer Settings
  2. Creez une nouvelle OAuth App :
    - Homepage URL : http://localhost:8080
    - Callback URL : http://localhost:8080/realms/mon-application/broker/github/endpoint
  3. Dans Keycloak : Identity Providers > GitHub
  4. 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.