Este documento está dirigido a los 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 GKE Identity Service.
Registrar el servicio de identidad de GKE con tu proveedor
Para configurar el servicio de gestión de identidades de GKE, necesitas un único ID de cliente y un secreto de tu proveedor de identidades. GKE Identity Service usa este ID y este secreto al conectarse al proveedor como parte del flujo de autenticación de los usuarios. Para obtenerlos, debes registrar GKE Identity Service con tu proveedor como aplicación cliente. Para ello, sigue el procedimiento estándar 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/oidc
es la URL de redirección de la consola Google Cloud .http://localhost:PORT/callback
es la URL de redirección de gcloud CLI. Puedes especificar cualquier número de puerto superior a 1024.APISERVER-URL:11001/finish-login
es la URL de redirección si elige autenticarse mediante el acceso FQDN. SustituyeAPISERVER-URL
por el FQDN del servidor de la API de Kubernetes del clúster. Por ejemplo, siAPISERVER-URL
eshttps://apiserver.company.com
,redirect_uri
debe 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 GKE Identity Service.
Información de configuración del proveedor de identidades
En esta sección se proporciona información adicional específica del proveedor para registrar GKE Identity Service. Si tu proveedor aparece en esta lista, registra GKE Identity Service con tu proveedor como aplicación cliente siguiendo estas instrucciones.
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. Así es como el servidor de AD FS identifica a Identity Service para GKE. Guarda el ID de cliente para más adelante.
Selecciona Generar un secreto compartido. GKE Identity Service usa este secreto para autenticarse en el servidor de AD FS. Guarda el secreto para más adelante.
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, introduce
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 el servicio de identidad de GKE con 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
.
Azure AD
Registrar un cliente de OAuth en Azure
Para registrar un cliente de OAuth en Azure, sigue los pasos que se indican en los siguientes enlaces:
Si aún no lo has hecho, configura un inquilino en Azure Active Directory.
Registra una aplicación en la plataforma de identidad de Microsoft.
Abre la página Registros de aplicaciones en Azure Portal y selecciona tu aplicación por su nombre.
Crea un secreto de cliente.
En Pasos esenciales, haz clic en Añadir un certificado o un secreto. Aparecerá una lista de certificados y otra de secretos.
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.
Añade URIs de redirección.
Vuelve a la página de la aplicación.
En Pasos esenciales, selecciona Añadir un URI de redirección. Aparecerá la página Autenticación.
Seleccione Añadir una plataforma. A la derecha, aparecerá el panel Configurar plataformas.
Elige Web. En URIs de redirección, introduce
http://localhost:PORT/callback
para el flujo de inicio de sesión de gcloud CLI. Elige un PORT mayor que 1024. Haz clic en el botón Configurar.Haz clic en el botón Añadir URI para añadir otro URI
https://console.cloud.google.com/kubernetes/oidc
, para el inicio de sesión en la consola Google Cloud .Haz clic en el botón Guardar de la parte superior.
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) ID
en la página Aplicación del portal de Azure.ID de cliente: el ID de cliente se muestra como
Application (client) ID
en la página Aplicación del portal de Azure.Secreto de cliente: se te proporcionó en el último paso. No podrás recuperar esta información si cierras la página al crear el secreto. Asegúrate de guardar el valor en un lugar seguro (o genera un nuevo secreto si pierdes la pista del anterior).
Configuración avanzada de Azure AD
Te recomendamos que uses esta configuración avanzada solo cuando quieras configurar clústeres con políticas de autorización basadas en grupos de Azure AD en los que los usuarios de los clústeres pertenezcan a más de 200 grupos de Azure AD. La configuración avanzada de Azure AD es compatible con las siguientes plataformas:
- Clústeres de GKE on-premise (tanto VMware como bare metal): desde GKE Enterprise 1.14
- Clústeres de Anthos en AWS: desde GKE Enterprise 1.14 (versión de Kubernetes 1.25 o posterior)
- Clústeres de Anthos en Azure: desde GKE Enterprise 1.14 (versión de Kubernetes 1.25 o posterior)
- Clústeres de Anthos en AWS (generación anterior): desde GKE Enterprise 1.14
Antes de empezar, asegúrate de que cada usuario tenga una dirección de correo asociada configurada como identificador en Azure AD. Identity Service for GKE usa el correo del usuario para confirmar su identidad 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 complemento de servicio de identidad de GKE acceda a los endpoints de la API Microsoft Graph desde los que se obtiene la información de los grupos. Si no se lleva a cabo este paso, GKE Identity Service no podrá enumerar los grupos del usuario y las políticas de autorización de RBAC basadas en grupos no funcionarán 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 portal de Azure.
- Si tienes acceso a varios inquilinos, usa el filtro Directorio + suscripción en el menú superior para seleccionar el inquilino que contenga el registro de tu aplicación cliente.
- Selecciona Azure Active Directory - Registros de aplicaciones y, a continuación, tu 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 conceder el consentimiento en nombre de todos los usuarios, haz clic en el botón Conceder consentimiento de administrador para.... Para obtener más información sobre cómo conceder el consentimiento de administrador, consulta Más información sobre los permisos de API y el consentimiento de administrador.
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 Azure y Okta, el administrador del clúster debe especificar
prompt=consent
como parámetro. Si ha configurado ADFS 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.
Puedes ver una lista completa de los parámetros de configuración de GKE Identity Service en Configurar clústeres.
Siguientes pasos
El administrador de tu clúster puede configurar GKE Identity Service para clústeres individuales o para una flota.