|
Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado. |
Configurar Keycloak (OIDC)
Si tu organización utiliza Keycloak Identity Provider (IdP) para la autenticación de usuarios, puedes configurar Rancher para permitir que tus usuarios inicien sesión utilizando sus credenciales de IdP. Rancher soporta la integración con Keycloak utilizando el protocolo OpenID Connect (OIDC) y el protocolo SAML. Ambas implementaciones son funcionalmente equivalentes cuando se utilizan con Rancher. Esta página describe el proceso para configurar Rancher para trabajar con Keycloak utilizando el protocolo OIDC.
Si prefieres utilizar Keycloak con el protocolo SAML en su lugar, consulta esta página.
Si tienes una configuración existente utilizando el protocolo SAML y deseas cambiar al protocolo OIDC, consulta esta sección.
Requisitos previos
-
En Rancher, Keycloak (SAML) está deshabilitado.
-
Debes tener un Servidor IdP de Keycloak configurado.
-
Sigue la documentación de Keycloak para crear un nuevo cliente OIDC con la configuración a continuación.
Valor Valor Client ID<client-id> (p.ej.
rancher)Name<client-name> (p.ej.
rancher)Client typeOpenID ConnectClient authenticationONValid Redirect URIhttps://yourRancherHostURL/verify-auth -
En el nuevo cliente OIDC, crea Mapeadores para exponer los campos de los usuarios.
-
En el menú de navegación, haz clic en Clientes.
-
Haz clic en la pestaña Lista de clientes.
-
Encuentra y haz clic en el cliente que creaste.
-
Haz clic en la pestaña Ámbitos del cliente.
-
Encuentra y haz clic en el enlace etiquetado como
<client-name>-dedicated. Por ejemplo, si nombraste a tu clienterancher, busca el enlace llamadorancher-dedicated. -
Haz clic en la pestaña Mapeadores.
-
Haz clic en Configurar un nuevo mapeador. Si ya tienes mapeadores existentes configurados, haz clic en la flecha junto a Añadir mapeador y selecciona Por configuración. Repite este proceso y crea estos mapeadores:
-
Desde la tabla de mapeos, selecciona Pertinencia a grupos y configura un nuevo mapeador de grupos con los ajustes a continuación. Para los ajustes que no se mencionan, utiliza el valor por defecto.
Valor Valor NameGroups MapperMapper TypeGroup MembershipToken Claim NamegroupsFull group pathOFFAdd to ID tokenOFFAdd to access tokenOFFAdd to user infoON -
Desde la tabla de mapeos, selecciona Audiencia y configura un nuevo "Audiencia del Cliente" con los ajustes a continuación. Para los ajustes que no se mencionan, utiliza el valor por defecto.
Valor Valor NameClient AudienceMapper TypeAudienceIncluded Client Audience<client-name>
Add to ID tokenOFFAdd to access tokenON -
Desde la tabla de mapeos, selecciona Pertinencia a grupos y configura un nuevo "Ruta de Grupos" con los ajustes a continuación. Para los ajustes que no se mencionan, utiliza el valor por defecto.
Valor Valor NameGroup PathMapper TypeGroup MembershipToken Claim Namefull_group_pathFull group pathONAdd to ID tokenONAdd to access tokenONAdd to user infoON
-
-
-
Añade los siguientes mapeos de roles a todos los usuarios o grupos que necesiten consultar los usuarios de Keycloak.
-
Usuarios
-
Grupos
-
En el menú de navegación, haz clic en Usuarios.
-
Haz clic en el usuario al que deseas añadir mapeos de roles.
-
Haz clic en la pestaña Mapeo de roles.
-
Haz clic en Asignar rol.
-
Selecciona los siguientes roles:
-
consultar-usuarios
-
consultar-grupos
-
ver-usuarios
-
-
Haz clic en Asignar.
-
En el menú de navegación, haz clic en Grupos.
-
Haz clic en el grupo al que deseas añadir mapeos de roles.
-
Haz clic en la pestaña Mapeo de roles.
-
Haz clic en Asignar rol.
-
Selecciona los siguientes roles:
-
consultar-usuarios
-
consultar-grupos
-
ver-usuarios
-
-
Haz clic en Asignar.
-
Configurando Keycloak en Rancher
-
En la interfaz de Rancher, haz clic en ☰ > Usuarios y Autenticación.
-
En la barra de navegación izquierda, haz clic en Proveedor de Autenticación.
-
Selecciona Keycloak (OIDC).
-
Completa el formulario Configurar una cuenta OIDC de Keycloak. Para obtener ayuda con el llenado del formulario, consulta la referencia de configuración.
Al configurar la sección Endpoints utilizando la opción Generar, Rancher incluye
/authcomo parte de la ruta de contexto en los campos Emisor y Punto de Autenticación, que solo es válido para Keycloak 16 o anterior. Debes configurar los endpoints utilizando la opción Especificar para Keycloak 17 y versiones más recientes, que han migrado a Quarkus. -
Después de completar el formulario Configurar una cuenta OIDC de Keycloak, haz clic en Habilitar.
Rancher te redirige a la página de inicio de sesión del IdP. Introduzca las credenciales que se utilizan para autenticar en Keycloak IdP y validar la configuración de Keycloak en Rancher.
Es posible que necesites desactivar tu bloqueador de ventanas emergentes para ver la página de inicio de sesión del IdP.
Resultado: Rancher está configurado para trabajar con Keycloak utilizando el protocolo OIDC. Tus usuarios ahora pueden iniciar sesión en Rancher utilizando sus credenciales de Keycloak.
Referencia de configuración
| Campo | Descripción |
|---|---|
ID del cliente |
El |
Secreto del cliente |
El |
Clave Privada / Certificado |
Un par de clave/certificado para crear un shell seguro entre Rancher y tu IdP. Requerido si HTTPS/SSL está habilitado en tu servidor de Keycloak. |
seguros |
Elige si usar los valores generados para los campos |
URL de Keycloak |
La URL de tu servidor de Keycloak. |
Dominio de Keycloak |
El nombre del dominio en el que se creó el cliente de Keycloak. |
URL de Rancher |
La URL de tu servidor Rancher. |
Emisor |
La URL de tu IdP. |
Endpoint de autenticación |
La URL a la que se redirigen los usuarios para autenticarse. |
Migrando de SAML a OIDC
Esta sección describe el proceso para hacer la transición de usar Rancher con Keycloak (SAML) a Keycloak (OIDC).
-
Reconfigurar Keycloak.
-
Configura un nuevo
OpenID Connectcliente de acuerdo con los Requisitos previos. Asegúrate de que los mismosValid Redirect URIsestén configurados. -
Configura los mapeadores para el nuevo cliente de acuerdo con los Requisitos previos.
-
-
Antes de configurar Rancher para usar Keycloak (OIDC), primero debe deshabilitarse Keycloak (SAML).
-
En la interfaz de Rancher, haz clic en ☰ > Usuarios y Autenticación.
-
En la barra de navegación izquierda, haz clic en Proveedor de Autenticación.
-
Selecciona Keycloak (SAML).
-
Haz clic en Deshabilitar.
-
-
Sigue los pasos en Configurando Keycloak en Rancher.
Una vez completada la configuración, es necesario reaplicar los permisos de usuario de Rancher, ya que no se migran automáticamente.
Soporte OIDC para la Extensión 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.
Anexo: Solución de problemas
Si experimentas problemas al probar la conexión con el servidor Keycloak, primero verifica las opciones de configuración de tu cliente OIDC. También puedes inspeccionar los registros de Rancher para ayudar a identificar qué está causando los problemas. Los registros de depuración pueden contener información más detallada sobre el error. Por favor, consulta Cómo puedo habilitar el registro de depuración en esta documentación.
Todas las entradas de registro relacionadas con Keycloak están precedidas por [generic oidc] o [keycloak oidc].
No se le redirige a Keycloak.
Cuando llenas el formulario Configurar una cuenta OIDC de Keycloak y haces clic en Habilitar, no eres redirigido a tu IdP.
Verifique la configuración de su cliente Keycloak.
Los Issuer y Auth Endpoint generados son incorrectos
En el formulario Configurar una cuenta OIDC de Keycloak, cambia Endpoints a Specify (advanced) y sobrescribe los valores de Issuer y Auth Endpoint. Para encontrar los valores, ve a la consola de Keycloak y selecciona Configuración del dominio, selecciona la pestaña General y haz clic en Configuración del Endpoint de OpenID. La salida JSON muestra valores para issuer y authorization_endpoint.
Error de Keycloak: "Invalid grant_type"
En algunos casos, este mensaje de error puede ser engañoso y es causado por configurar el Valid Redirect URI incorrectamente.
No se pueden ver grupos al asignar roles globales.
Si utilizas un usuario que no forma parte de ningún grupo para la configuración, no podrás buscar grupos al intentar asignar un rol global. Para resolver esto, puedes hacer lo siguiente:
-
Editar manualmente el objeto
authconfig/keycloakoidcpara habilitar la búsqueda de grupos.-
En el servidor Rancher:
kubectl edit authconfigs.management.cattle.io keycloakoidc -
Establece
groupSearchEnabled: true. -
Guarde los cambios.
-
-
Reconfigura tu configuración OIDC de Keycloak utilizando un usuario que esté asignado a al menos un grupo en Keycloak.
Configurar el cierre de sesión único 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'