Este documento está dirigido a administradores de la plataforma o a cualquier persona que gestione la configuración de la identidad en tu organización. En este artículo se explica cómo configurar el proveedor de identidades OpenID Connect (OIDC) que hayas elegido para autenticarte en clústeres de Kubernetes que no estén en Google Cloud.
Registrar una aplicación cliente con tu proveedor
Durante el flujo de autenticación de los usuarios, el clúster usa un ID de cliente y un secreto para conectarse a tu proveedor de identidades. Puedes obtener un ID de cliente y un secreto de tu proveedor de identidades configurando una aplicación cliente para Kubernetes. El procedimiento para configurar una aplicación cliente depende de tu proveedor. En la siguiente sección encontrarás información específica sobre el registro de proveedores populares.
En el caso de las URLs de redirección, especifique los siguientes valores:
https://console.cloud.google.com/kubernetes/oidces la URL de redirección de la consola Google Cloud .http://localhost:PORT/callbackes la URL de redirección de gcloud CLI. Puedes especificar cualquier número de puerto superior a 1024.APISERVER_URL:11001/finish-logines la URL de redirección si elige autenticarse mediante el acceso FQDN. SustituyeAPISERVER_URLpor el FQDN del servidor de la API de Kubernetes del clúster. Por ejemplo, siAPISERVER_URLeshttps://apiserver.company.com,redirect_uridebe serhttps://apiserver.company.com:11001/finish-login.
Guarda el ID y el secreto de cliente que obtengas en el paso de registro. Comparte estos detalles con los administradores de clústeres que necesiten configurar sus clústeres.
Información de configuración del proveedor de identidades
En esta sección se explica cómo registrar una aplicación cliente en Servicios de federación de Active Directory (AD FS) de Microsoft o en Microsoft Entra ID.
Microsoft AD FS
Usa un conjunto de asistentes de gestión de AD FS para configurar tu servidor de AD FS y tu base de datos de usuarios de AD.
Abre el panel de administración de AD FS.
Selecciona Grupos de aplicaciones > Acciones > Añadir un grupo de aplicaciones.
Selecciona Aplicación de servidor. Escribe el nombre y la descripción que quieras. Haz clic en Siguiente.
Introduce las dos URLs de redirección, tal como se indica más arriba. Se te asigna un ID de cliente. AD FS identifica el clúster mediante este ID de cliente. Guarda el ID de cliente para más adelante.
Selecciona Generar un secreto compartido. El mecanismo de autenticación de Kubernetes usa este secreto para autenticarse en el servidor de AD FS. Guarda el secreto para más tarde.
Configurar grupos de seguridad (opcional)
En la administración de AD FS, selecciona Relaciones de confianza para usuario autenticado > Añadir una nueva relación de confianza para usuario autenticado.
Selecciona Reclamaciones y haz clic en Iniciar.
Selecciona Introducir manualmente los datos sobre el usuario de confianza.
Introduce un nombre visible.
Sáltate los dos pasos siguientes.
Introduce un identificador de confianza de la parte de confianza. Sugerencia:
token-groups-claim.En Política de control de acceso, selecciona Permitir a todos. Esto significa que todos los usuarios comparten la información de su grupo de seguridad con la CLI de gcloud y la consola deGoogle Cloud .
Haz clic en Finalizar.
Asignar atributos LDAP a nombres de reclamaciones
En la administración de AD FS, selecciona Relaciones de confianza para usuario autenticado > Editar política de emisión de reclamaciones.
Selecciona Enviar atributos LDAP como notificaciones y haz clic en Siguiente.
En Nombre de la regla de reclamación, escribe
groups.En Almacén de atributos, selecciona Active Directory.
En la tabla, en Atributo LDAP, seleccione lo siguiente:
- AD FS versión 5.0 y posteriores: Token-Groups Qualified by Domain name (Grupos de tokens cualificados por nombre de dominio)
- Versiones de AD FS anteriores a la 5.0: Token Groups - Qualified Names (Grupos de tokens - Nombres cualificados)
En Tipo de notificación saliente, selecciona lo siguiente:
- AD FS 5.0 y versiones posteriores: Grupo
- Versiones de AD FS anteriores a la 5.0: grupos
Haz clic en Finalizar y, a continuación, en Aplicar.
Registrar la aplicación cliente de Kubernetes en AD FS
Abre una ventana de PowerShell en modo Administrador e introduce este comando:
Grant-AD FSApplicationPermission ` -ClientRoleIdentifier "[CLIENT_ID]" ` -ServerRoleIdentifier [SERVER_ROLE_IDENTIFIER] ` -ScopeName "allatclaims", "openid"
Haz los cambios siguientes:
[CLIENT_ID] es el ID de cliente que has obtenido anteriormente.
[SERVER_ROLE_IDENTIFIER] es el identificador de reclamación que introdujiste anteriormente. Recuerda que el identificador sugerido era
token-groups-claim.
ID de Microsoft Entra
Para registrar un cliente de OAuth con Microsoft Entra ID, sigue los pasos que se indican en los siguientes enlaces:
Si aún no lo ha hecho, configure un inquilino de Microsoft Entra.
En el centro de administración de Microsoft Entra, abra la página Registros de aplicaciones y seleccione su aplicación. Se abrirá la página de vista general de la aplicación.
Crea un secreto de cliente:
- En el menú de navegación, haz clic en Certificados y secretos.
- Haga clic en la pestaña Secretos de cliente.
- Haz clic en Nuevo secreto de cliente. Ponle un nombre a tu secreto y haz clic en Añadir.
- Guarda el valor del secreto en un lugar seguro. No podrás recuperarlo después de cerrar o actualizar la página.
Para obtener más información, consulta el artículo Añadir y gestionar credenciales de aplicaciones en Microsoft Entra ID.
Añade URIs de redirección:
- En el menú de navegación, haga clic en Autenticación.
- En la sección Configuraciones de plataforma, haga clic en Añadir una plataforma. Se abrirá el panel Configurar plataformas.
- Haz clic en Web.
- En el campo URIs de redirección, introduce
http://localhost:PORT/callbackpara el flujo de inicio de sesión de gcloud CLI. Elige un PORT mayor que 1024. - Haz clic en Configurar.
- Haga clic en Añadir URI para añadir otro URI.
- Introduce
https://console.cloud.google.com/kubernetes/oidcpara el Google Cloud flujo de inicio de sesión de la consola. - Guarda la configuración.
Para obtener más información, consulta Cómo añadir un URI de redirección a tu aplicación.
El registro de tu cliente se ha completado. Debes tener la siguiente información para compartirla con el administrador de tu clúster:
URI del emisor:
https://login.microsoftonline.com/TENANT_ID/v2.0. El ID de inquilino se muestra comoDirectory (tenant) IDen la página de resumen de la aplicación del centro de administración de Microsoft Entra.ID de cliente: el ID de cliente se muestra como
Application (client) IDen la página de descripción general de la aplicación en el centro de administración de Microsoft Entra.Secreto de cliente: el valor del secreto de cliente que creaste al registrar la aplicación cliente. Si no tienes acceso a este valor, genera un secreto nuevo.
Configuración avanzada de Microsoft Entra ID
Te recomendamos que uses esta configuración avanzada solo cuando quieras configurar clústeres con políticas de autorización basadas en grupos de Microsoft Entra ID en las que los usuarios de los clústeres pertenezcan a más de 200 grupos de Microsoft Entra ID. La configuración avanzada de Microsoft Entra ID es compatible con las siguientes plataformas:
- Google Distributed Cloud on-premise (tanto VMware como Bare Metal): a partir de la versión 1.14
- GKE en AWS: desde la versión 1.14 (versión de Kubernetes 1.25 o posterior)
- GKE en Azure: desde la versión 1.14 (versión de Kubernetes 1.25 o posterior)
Antes de empezar, asegúrate de que cada usuario tenga una dirección de correo asociada configurada como identificador en Microsoft Entra ID. Esta dirección de correo se usa para confirmar la identidad del usuario y autenticar la solicitud.
Debes asegurarte de que el cliente que has registrado en la sección anterior tenga permisos delegados para obtener información de usuarios y grupos de la API Microsoft Graph. Estos permisos permiten que el mecanismo de autenticación de Kubernetes acceda a los endpoints de la API Microsoft Graph desde los que se obtiene la información del grupo. Sin este paso, el clúster no puede obtener información de los grupos del usuario, lo que provoca que las políticas de autorización de RBAC basadas en grupos no funcionen como se espera.
Para llevar a cabo este paso de configuración, debes tener permisos de administrador global o de administrador de la organización.
- Inicia sesión en el centro de administración de Microsoft Entra.
- Selecciona el cliente de Microsoft Entra que tiene tu aplicación cliente.
- Seleccione Registros de aplicaciones y, a continuación, su aplicación cliente.
- Selecciona Permisos de API > Añadir un permiso > Microsoft Graph > Permisos delegados.
- En la pestaña Grupo, marca Group.Read.All. En la pestaña Usuario, marca User.Read.All.
- Haz clic en Añadir permisos para completar el proceso.
- Para dar el consentimiento en nombre de todos los usuarios, haz clic en Conceder consentimiento de administrador para.... Para obtener más información, consulta Más información sobre los permisos de las APIs y el consentimiento de los administradores.
Compartir los detalles del proveedor de identidades
Comparte la siguiente información del proveedor con el administrador del clúster para configurarlo:
- El URI del emisor del proveedor
- El secreto de cliente
- El ID de cliente
- El URI de redirección y el puerto que has especificado para la CLI de gcloud
- El campo de nombre de usuario (reivindicación) que usa tu proveedor para identificar a los usuarios en sus tokens (el valor predeterminado que se supone al configurar clústeres es
sub). - El campo de nombre de grupo (reivindicación) que usa tu proveedor para devolver grupos de seguridad, si procede.
- Cualquier ámbito o parámetro adicional específico de tu proveedor, tal como se describe en la sección anterior. Por ejemplo, si tu servidor de autorización solicita el consentimiento para la autenticación con Microsoft Entra ID y Okta, el administrador del clúster debe especificar
prompt=consentcomo parámetro. Si ha configurado AD FS para que proporcione información de grupos de seguridad, el parámetro adicional pertinente esresource=token-groups-claim(o el que haya elegido como identificador de confianza de la parte verificadora). - (Opcional) Si tu proveedor no usa un certificado firmado por una autoridad de certificación pública (por ejemplo, si usas certificados autofirmados), necesitarás un certificado (o una cadena de certificados) del proveedor de identidades. El certificado (o la cadena de certificados) debe contener como mínimo el certificado raíz (se aceptan cadenas parciales, siempre que la cadena sea contigua hasta el certificado raíz). Cuando proporcione este valor en ClientConfig, debe darle el formato de una cadena codificada en Base64. Para crear la cadena, concatena los certificados completos codificados con PEM en una sola cadena y, a continuación, codifícala en base64.
Para obtener más información sobre los parámetros de configuración de los clústeres, consulta Configurar clústeres.