Aller au contenu

Keycloak

FonctionnalitéSupport
Clients OAuth2/OIDC✅ Complet
Clients SAML✅ Complet
Resource servers❌ Non pris en charge
Clonage de client✅ Complet
  1. 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.

  2. Attribuer les rôles realm-management

    Sur l’onglet Service account roles du nouveau client, attribuez les rôles manage-clients, view-clients et query-clients du client realm-management.

  3. Copier le secret du client

    Sur l’onglet Credentials, copiez le Client secret.

  4. Définir les variables d’environnement

    Terminal window
    OPENID_PROVIDER=keycloak
    KEYCLOAK_BASE_URL=https://keycloak.example.com
    KEYCLOAK_REALM=your-realm
    KEYCLOAK_ADMIN_CLIENT_ID=taco-admin
    KEYCLOAK_ADMIN_CLIENT_SECRET=your-client-secret
  • 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 client oauth2.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_post de client_secret_basic au niveau du token endpoint — les deux sont acceptés pour tout client à secret, donc Taco indique client_secret_basic pour tous les clients confidentiels.
  • Les clients SAML correspondent aux clients Keycloak saml, le clientId du client étant défini sur l’entity ID SAML. La signature utilise par défaut RSA_SHA256 avec 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-secret de 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.

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 :

Terminal window
AUTH_CLIENT_OPENID_CONFIGURATION_URL=https://keycloak.example.com/realms/your-realm
AUTH_CLIENT_ID=your-oidc-client-id
AUTH_CLIENT_SECRET=your-oidc-client-secret

Ajoutez <BASE_URL>/api/auth/callback/oidc aux Valid redirect URIs du client.