|
Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi. |
Configurer Keycloak (OIDC)
Si votre organisation utilise Keycloak Identity Provider (IdP) pour l’authentification des utilisateurs, vous pouvez configurer Rancher pour permettre à vos utilisateurs de se connecter en utilisant leurs identifiants IdP. Rancher prend en charge l’intégration avec Keycloak en utilisant le protocole OpenID Connect (OIDC) et le protocole SAML. Les deux implémentations sont fonctionnellement équivalentes lorsqu’elles sont utilisées avec Rancher. Cette page décrit le processus de configuration de Rancher pour fonctionner avec Keycloak en utilisant le protocole OIDC.
Si vous préférez utiliser Keycloak avec le protocole SAML à la place, référez-vous à cette page.
Si vous avez une configuration existante utilisant le protocole SAML et souhaitez passer au protocole OIDC, référez-vous à cette section.
Conditions préalables
-
Sur Rancher, Keycloak (SAML) est désactivé.
-
Vous devez avoir un Serveur IdP Keycloak configuré.
-
Suivez la documentation Keycloak pour créer un nouveau client OIDC avec les paramètres ci-dessous.
Paramètre Valeur Client ID<client-id> (par exemple
rancher)Name<client-name> (par exemple
rancher)Client typeOpenID ConnectClient authenticationONValid Redirect URIhttps://yourRancherHostURL/verify-auth -
Dans le nouveau client OIDC, créez Mappers pour exposer les champs des utilisateurs.
-
Dans le menu de navigation, cliquez sur Clients.
-
Cliquez sur l’onglet Liste des clients.
-
Trouvez et cliquez sur le client que vous avez créé.
-
Cliquez sur l’onglet Scopes du client.
-
Trouvez et cliquez sur le lien étiqueté
<client-name>-dedicated. Par exemple, si vous avez nommé votre clientrancher, recherchez le lien nommérancher-dedicated. -
Cliquez sur l’onglet Mappers.
-
Cliquez sur Configurer un nouveau mapper. Si vous avez déjà des mappers existants configurés, cliquez sur la flèche à côté de Ajouter un mapper et sélectionnez Par configuration. Répétez ce processus et créez ces mappers :
-
Dans le tableau des mappages, sélectionnez Appartenance au groupe et configurez un nouveau "Mapper de groupes" avec les paramètres ci-dessous. Pour les paramètres non mentionnés, utilisez la valeur par défaut.
Paramètre Valeur NameGroups MapperMapper TypeGroup MembershipToken Claim NamegroupsFull group pathOFFAdd to ID tokenOFFAdd to access tokenOFFAdd to user infoON -
Dans le tableau des mappages, sélectionnez Audience et configurez un nouveau "Client Audience" avec les paramètres ci-dessous. Pour les paramètres non mentionnés, utilisez la valeur par défaut.
Paramètre Valeur NameClient AudienceMapper TypeAudienceIncluded Client Audience<client-name>
Add to ID tokenOFFAdd to access tokenON -
Dans le tableau des mappages, sélectionnez Appartenance au groupe et configurez un nouveau "Chemin des groupes" avec les paramètres ci-dessous. Pour les paramètres non mentionnés, utilisez la valeur par défaut.
Paramètre Valeur NameGroup PathMapper TypeGroup MembershipToken Claim Namefull_group_pathFull group pathONAdd to ID tokenONAdd to access tokenONAdd to user infoON
-
-
-
Ajoutez les mappages de rôles suivants à tous les utilisateurs ou groupes qui ont besoin de consulter les utilisateurs de Keycloak.
-
Utilisateurs
-
Groupes
-
Dans le menu de navigation, cliquez sur Utilisateurs.
-
Cliquez sur l’utilisateur auquel vous souhaitez ajouter des mappages de rôles.
-
Cliquez sur l’onglet Mappage de rôle.
-
Cliquez sur Assigner un rôle.
-
Sélectionnez les rôles suivants :
-
query-users
-
query-groups
-
view-users
-
-
Cliquez sur Assigner.
-
Dans le menu de navigation, cliquez sur Groupes.
-
Cliquez sur le groupe auquel vous souhaitez ajouter des mappages de rôles.
-
Cliquez sur l’onglet Mappage de rôle.
-
Cliquez sur Assigner un rôle.
-
Sélectionnez les rôles suivants :
-
query-users
-
query-groups
-
view-users
-
-
Cliquez sur Assigner.
-
Configurer Keycloak dans Rancher
-
Dans l’interface utilisateur de Rancher, cliquez sur ☰ > Utilisateurs et authentification.
-
Dans la barre de navigation à gauche, cliquez sur Fournisseur d’authentification.
-
Sélectionnez Keycloak (OIDC).
-
Complétez le formulaire Configurer un compte Keycloak OIDC. Pour obtenir de l’aide sur le remplissage du formulaire, consultez la référence de configuration.
Lors de la configuration de la section Points de terminaison en utilisant l’option Générer, Rancher inclut
/authcomme partie du chemin de contexte dans les champs Émetteur et Point de terminaison d’authentification, ce qui n’est valide que pour Keycloak 16 ou antérieur. Vous devez configurer les points de terminaison en utilisant l’option Spécifier pour Keycloak 17 et les versions ultérieures, qui ont migré vers Quarkus. -
Après avoir complété le formulaire Configurer un compte Keycloak OIDC, cliquez sur Activer.
Rancher vous redirige vers la page de connexion de l’IdP. Entrez les identifiants permettant de vous authentifier auprès de l’IdP Keycloak afin de valider la configuration de Keycloak dans Rancher.
Vous devrez peut-être désactiver votre bloqueur de fenêtres contextuelles pour voir la page de connexion de l’IdP.
Résultat : Rancher est configuré pour fonctionner avec Keycloak en utilisant le protocole OIDC. Vos utilisateurs peuvent désormais se connecter à Rancher en utilisant leurs identifiants Keycloak.
Référence de configuration :
| Champ | Description |
|---|---|
ID du client |
Le |
Secret du client |
Le |
Clé privée / Certificat |
Une paire clé/certificat pour créer un shell sécurisé entre Rancher et votre IdP. Requis si HTTPS/SSL est activé sur votre serveur Keycloak. |
noeuds d’extrémité |
Choisissez d’utiliser les valeurs générées pour les champs |
URL de Keycloak |
L’URL de votre serveur Keycloak. |
Domaine Kerberos Keycloak |
Le nom du domaine Kerberos dans lequel le client Keycloak a été créé. |
URL de Rancher |
L’URL de votre serveur Rancher. |
Émetteur |
L’URL de votre IdP. |
Point de terminaison d’authentification |
L’URL où les utilisateurs sont redirigés pour s’authentifier. |
Migration de SAML vers OIDC
Cette section décrit le processus de transition de l’utilisation de Rancher avec Keycloak (SAML) vers Keycloak (OIDC).
-
Reconfigurer Keycloak.
-
Avant de configurer Rancher pour utiliser Keycloak (OIDC), Keycloak (SAML) doit d’abord être désactivé.
-
Dans l’interface utilisateur de Rancher, cliquez sur ☰ > Utilisateurs et authentification.
-
Dans la barre de navigation à gauche, cliquez sur Fournisseur d’authentification.
-
Sélectionnez Keycloak (SAML).
-
Cliquez sur Désactiver.
-
-
Suivez les étapes dans Configurer Keycloak dans Rancher.
Après la configuration, les autorisations des utilisateurs de Rancher doivent être réappliquées car elles ne sont pas migrées automatiquement.
Support OIDC pour l’extension PKCE
Rancher supports the Proof Key for Code Exchange (PKCE) extension (RFC 7636) for OIDC authentication providers. SHA-256 (S256) is the only supported PKCE verification method. To enable this feature, your authentication provider must use PKCE with S256 for authorization requests.
You can enable this feature by selecting Enable PKCE (S256) in your authentication provider configuration in Rancher. Enabling S256 PKCE token verification allows you to mitigate authorization code interception attacks during OIDC authentication flows.
Annexe : Dépannage
Si vous rencontrez des problèmes lors du test de la connexion au serveur Keycloak, vérifiez d’abord les options de configuration de votre client OIDC. Vous pouvez également inspecter les journaux de Rancher pour aider à identifier ce qui cause des problèmes. Les journaux de débogage peuvent contenir des informations plus détaillées sur l’erreur. Veuillez vous référer à Comment puis-je activer la journalisation de débogage dans cette documentation.
Toutes les entrées de journal liées à Keycloak sont précédées de [generic oidc] ou [keycloak oidc].
Vous n’êtes pas redirigé vers Keycloak
Lorsque vous remplissez le formulaire Configurer un compte Keycloak OIDC et cliquez sur Activer, vous n’êtes pas redirigé vers votre IdP.
Vérifiez la configuration de votre client Keycloak.
Les Issuer et Auth Endpoint générés sont incorrects
Dans le formulaire Configurer un compte OIDC Keycloak, changez Points de terminaison en Specify (advanced) et remplacez les valeurs Issuer et Auth Endpoint. Pour trouver les valeurs, allez dans la console Keycloak et sélectionnez Paramètres du domaine Kerberos, sélectionnez l’onglet Général, et cliquez sur Configuration du point de terminaison OpenID. La sortie JSON affiche les valeurs pour issuer et authorization_endpoint.
Erreur Keycloak : "grant_type invalide"
Dans certains cas, ce message d’erreur peut être trompeur et est causé par une mauvaise configuration du Valid Redirect URI.
Impossible de voir les groupes lors de l’attribution de rôles globaux.
Si vous utilisez un utilisateur qui ne fait partie d’aucun groupe pour la configuration initiale, vous ne pouvez pas rechercher de groupes lorsque vous essayez d’attribuer un rôle global. Pour résoudre ce problème, vous pouvez soit :
-
Modifier manuellement l’objet
authconfig/keycloakoidcpour activer la recherche de groupes.-
Sur le serveur Rancher :
kubectl edit authconfigs.management.cattle.io keycloakoidc -
Définissez
groupSearchEnabled: true. -
Enregistrez vos modifications.
-
-
Reconfigurez votre configuration OIDC Keycloak en utilisant un utilisateur qui est attribué à au moins un groupe dans Keycloak.
Configuration de la déconnexion unique OIDC (SLO)
Rancher supports the ability to configure OIDC Single Logout (SLO). Options include logging out of the Rancher application only, logging out of Rancher and registered applications tied to the external authentication provider, or a prompt asking the user to choose between the previous options.
Prerequisites
Before configuring OIDC SLO, ensure the following is set up on your IdP:
-
SLO Support: The Log Out behavior configuration section only appears if your OIDC IdP allows for
OIDC SLO. -
Post-Logout Redirect URI: Your Rancher Server URL must be configured as an authorized post-logout redirect URI in your IdP’s OIDC client settings. This URL is used by the IdP to redirect a user back to Rancher after a successful external logout.
OIDC SLO Configuration
Configure the SLO settings when setting up or editing your OIDC authentication provider.
-
Sign in to Rancher using a standard user or an administrator role.
-
In the top left corner, select ☰ > Users & Authentication.
-
In the left navigation menu, select Auth Provider.
-
Under the section Log Out behavior, choose the appropriate SLO setting as described below:
Setting Description Log out of Rancher and not authentication provider
Choosing this option will only logout the Rancher application and not external authentication providers.
Log out of Rancher and authentication provider (includes all other applications registered with authentication provider)
Choosing this option will logout Rancher and all external authentication providers along with any registered applications linked to the provider.
Allow the user to choose one of the above in an additional log out step
Choosing this option presents users with a choice of logout method as described above.
-
If you choose to log out of your IdP, provide an End Session Endpoint. Rancher uses this URL to initiate the external logout.
How to get the End Session Endpoint
The end_session_endpoint is one of the specific URLs published within a standardized JSON object containing the IdP’s metadata and is retrieved from the OIDC Discovery URL. To get the end_session_endpoint from the OIDC Discovery URL, follow these steps:
-
Obtain the Discovery URL by appending the IdP Issuer URL with the well-known path (
.well-known/openid-configuration). -
Send an HTTP
GETrequest to the Discovery URL. -
In the JSON object, look for the key named
end_session_endpointand retrieve the URL.You can also use a
curlcommand to retrieveend_session_endpoint:curl -s <ISSUER_URL>/.well-known/openid-configuration | jq '.end_session_endpoint'