Configuration générale de Keycloak

Configuration générale de Keycloak

Connexion à la console d’administration Keycloak

Pour accéder à la console il faut aller sur l’url /admin/

Si l’url de Strat MonitorStrat Monitor est https://stratmonitor.local/ l’url Keycloak sera https://stratmonitor.local/admin/

Le compte utilisateur est admin et le mot de passe est fourni par le support Virage GroupVirage Group.

Vérification du rôle par défaut

Pour que les utilisateurs puissent accéder à l’application il est nécessaire qu’un rôle leur soit affecté.

Pour que ce rôle soit affecté automatiquement à la création de chaque compte il faut vérifier que le paramétrage du royaume est correct.

Pour cela :

  1. Aller sur le royaume virage :
image
  1. Aller dans le menu Realm Settings puis dans l’onglet User Registration.
image
  1. Vérifier que le rôle perfv2-user est bien présent.
image
  1. Si ce n’est pas le cas il faut le rajouter via Assign role :
    1. changer le filtre sur Filter by clients
    2. cocher le rôle perfv2-user
    3. et enfin cliquer sur le bouton Assign
image

Configuration du serveur SMTP

Keycloak doit être en mesure d’envoyer des mails aux utilisateurs pour permettre des réinitialisations de mot de passe ou pour lier un compte local à un compte SSO.

La configuration se fait dans l’écran Realm Settings, onglet Email :

  1. Dans le champ From il faut mettre l’adresse de l’expéditeur. Cela peut être une adresse de type noreply mais il faut que le domaine de cette adresse soit autorisé sur le relais SMTP.
  2. Le champ Host correspond au FQDN ou l’adresse IP du serveur SMTP. On peut spécifier un port autre que le 25 et activer le SSL ou le StartTls en fonction de la configuration de ce serveur SMTP.
  3. Si le serveur SMTP n’autorise pas les connexions anonymes il faut activer l’option Authentication et renseigner le compte à utiliser ainsi que son mot de passe.
image

Configuration de la durée du token de session SSO

Par défaut les tokens de session sont valides uniquement 30 minutes. Il peut être souhaitable de modifier cette durée pour empêcher des erreurs lors des rafraichissements de tokens.

La configuration se fait dans Realm Settings, onglet Sessions.

image

Ajout d’un fournisseur d’identité externe

Si on souhaite mettre en place il faudra ajouter un fournisseur d’identité externe compatible avec le protocole OpenIdConnect (OIDC).

La configuration du fournisseur d’identité externe ne sera pas abordée ici, elle sera à la charge du client.

Il faut simplement être compatible avec le protocole OIDC et remplir le paramètre URL de redirection : https://stratmonitor.local/realms/virage/broker/oidc/endpoint (en remplaçant stratmonitor.local par l’url de l’application)

Il faut aller sur le menu Identity Providers puis OpenIdConnect :

image
  1. Alias du fournisseur d’identité (peut être laissé par défaut, cela n’a pas d’impact)
  2. Display name : Nom qui apparaitra sur le bouton de connexion (par exemple : Connexion SSO, Connexion Entra, etc.)
  3. Le discovery endpoint doit être fourni par ceux qui ont créé le client OIDC sur le fournisseur d’identité
  4. Client ID : Identifiant du client du fournisseur d’identité
  5. Client Secret : Valeur du secret du client du fournisseur d’identité

Une fois les champs remplis il ne reste plus qu’à cliquer sur Add.

image
🎉

À la prochaine connexion on verra apparaitre le bouton permettant la connexion SSO :

image

Changer l’attribut utilisé pour le nom d’utilisateur

Par défaut, lorsqu’un compte sera créé suite à une connexion SSO, Keycloak prendra l’attribut preferred_username pour créer le compte.

Si on souhaite changer ce paramètre pour utiliser plutôt l’adresse email ou autre (samAccountName par exemple) :

  1. Aller sur la configuration du fournisseur d’identité créé.
  2. Cliquer sur l’onglet Mappers et cliquer sur Add Mapper.
  3. Pour changer l’attribut nom d’utilisateur, il faut utiliser un mapper de type Username template importer :
💡

Dans cet exemple on utilise l’attribut email du token.

Il est possible d’utiliser n’importe quel attribut présent dans le token fourni par le fournisseur OIDC.

image