Skip to content

Client keycloak

Description

Ce client permet l'authentification par Keycloak. L'authentification via Keycloak peut également se faire avec le client oauth2, mais le client keycloak dispose d'automatismes qui facilitent l'intégration avec Keycloak. Cela réduit d'autant les paramètres à fournir.

Paramètres

realm obligatoire
Realm dans lequel le client est défini
baseUri obligatoire

URL de base du serveur Keycloak. Le client s'appuie sur cet URI et sur le realm pour construire les URL d'appel à Keycloak (urls d'authentification, de token et de profil).

Exemple de valeur: http://localhost:8081/auth

clientId obligatoire
Nom du client id défini dans Keycloak
clientSecret obligatoire

Secret rattaché au client id.

Nous rappelons ici que la valeur peut être chiffrée. On l'indiquera alors en ajoutant un attribut encrypted="true" à l'élément dans le fichier XML.

withState

Valeur true/false indiquant si un paramètre OAuth state est utilisé.

Par défaut la valeur est true.

authMethod

Méthode d'authentification. Les valeurs reconnues sont:

  • client_secret_basic
  • client_secret_post
  • client_secret_jwt
  • private_key_jwt
  • tls_client_auth
  • self_signed_tls_client_auth
  • request_object
  • none

Cette page fournit davantage d'informations sur les différentes méthodes.

scope
Scope. Il est possible de spécifier plusieurs scopes en les séparant par un espace, par exemple: openid profile roles.
algo
Définit l'algorithme JWS de préférence
responseType
Valeur du response_type
customParam

Ajoute un ou plusieurs paramètres supplémentaires qui seront repris dans l'URL d'authentification.

L'élément doit posséder un attribut name qui indique le nom du paramètre et une valeur. Cette dernière peut être chiffrée (mais pas le nom du paramètre).

Exemple

1
2
3
4
5
6
7
8
9
<client name="keycloak-client" type="keycloak">
    <realm>example</realm>
    <baseUri>http://localhost:8081/auth</baseUri>
    <clientId>ewt-client</clientId>
    <clientSecret>dATZeUMQAQnSPM88bwMt3Ugdfxg75IDS</clientSecret>
    <withState>true</withState>
    <authMethod>client_secret_basic</authMethod>
    <scope>openid profile roles</scope>
</client>