Keycloak
Disponibilité des fonctionnalités
Section titled “Disponibilité des fonctionnalités”| Fonctionnalité | Support |
|---|---|
| Clients OAuth2/OIDC | ✅ Complet |
| Clients SAML | ✅ Complet |
| Resource servers | ❌ Non pris en charge |
| Clonage de client | ✅ Complet |
Configuration
Section titled “Configuration”-
Créer un client admin confidentiel
Dans la console d’administration Keycloak, dans le realm que Taco doit gérer, allez dans Clients → Create client. Activez Client authentication et Service accounts roles, puis enregistrez.
-
Attribuer les rôles realm-management
Sur l’onglet Service account roles du nouveau client, attribuez les rôles
manage-clients,view-clientsetquery-clientsdu clientrealm-management. -
Copier le secret du client
Sur l’onglet Credentials, copiez le Client secret.
-
Définir les variables d’environnement
Terminal window OPENID_PROVIDER=keycloakKEYCLOAK_BASE_URL=https://keycloak.example.comKEYCLOAK_REALM=your-realmKEYCLOAK_ADMIN_CLIENT_ID=taco-adminKEYCLOAK_ADMIN_CLIENT_SECRET=your-client-secret
Notes sur la gestion des clients
Section titled “Notes sur la gestion des clients”- Les clients OAuth2/OIDC correspondent directement aux clients Keycloak
openid-connect. Les grant types correspondent aux bascules de flux de Keycloak (standardFlowEnabled,implicitFlowEnabled,directAccessGrantsEnabled,serviceAccountsEnabled) ; le grant device code correspond à l’attribut de clientoauth2.device.authorization.grant.enabled. Le grant JWT bearer n’est pas proposé — Keycloak n’a pas d’équivalent dans la représentation du client. - Keycloak ne distingue pas
client_secret_postdeclient_secret_basicau niveau du token endpoint — les deux sont acceptés pour tout client à secret, donc Taco indiqueclient_secret_basicpour tous les clients confidentiels. - Les clients SAML correspondent aux clients Keycloak
saml, leclientIddu client étant défini sur l’entity ID SAML. La signature utilise par défautRSA_SHA256avec binding POST et une assertion signée ; ajustez le chiffrement, les paramètres de signature supplémentaires et les mappers d’attributs/rôles directement dans la console d’administration Keycloak pour un contrôle plus fin. - Les secrets de client sont récupérés via l’endpoint dédié
/client-secretde Keycloak plutôt que depuis la représentation du client elle-même. - Les resource servers ne sont pas modélisés par Taco pour ce fournisseur — gérez les client scopes et les authorization services Keycloak directement dans la console d’administration Keycloak.
Connexion OIDC (optionnel)
Section titled “Connexion OIDC (optionnel)”Pour protéger le tableau de bord Taco avec le SSO Keycloak, enregistrez un client OIDC confidentiel séparé (flux standard) dans le même realm ou un autre :
AUTH_CLIENT_OPENID_CONFIGURATION_URL=https://keycloak.example.com/realms/your-realmAUTH_CLIENT_ID=your-oidc-client-idAUTH_CLIENT_SECRET=your-oidc-client-secretAjoutez <BASE_URL>/api/auth/callback/oidc aux Valid redirect URIs du client.