Configura proveedores de OIDC para GKE Identity Service

Este documento está dirigido a los administradores de plataformas o a quienes administran la configuración de identidad en tu organización. En este documento, se explica cómo configurar el proveedor de identidad OpenID Connect (OIDC) que elegiste para GKE Identity Service.

Registra GKE Identity Service con tu proveedor

La configuración de GKE Identity Service requiere un solo ID de cliente y secreto de tu proveedor de identidad. GKE Identity Service usa este ID y secreto cuando se conecta al proveedor como parte del flujo de autenticación para los usuarios. Para obtenerlos, debes registrar GKE Identity Service con tu proveedor como una aplicación cliente mediante el procedimiento estándar para el proveedor que elegiste. Encontrarás algunos detalles de registro específicos para los proveedores populares en la siguiente sección.

Para las URLs de redireccionamiento, especifica los siguientes valores:

  • https://console.cloud.google.com/kubernetes/oidc es la URL de redireccionamiento de la consola de Google Cloud.
  • http://localhost:PORT/callback es la URL de redireccionamiento de la CLI de gcloud. Puedes especificar cualquier número de puerto superior a 1,024.
  • APISERVER-URL:11001/finish-login es la URL de redireccionamiento si eliges autenticarte con el acceso de FQDN. Reemplaza APISERVER-URL por el FQDN del servidor de la API de Kubernetes del clúster. Por ejemplo, si la APISERVER-URL es https://apiserver.company.com, entonces el redirect_uri debe ser https://apiserver.company.com:11001/finish-login.

Guarda el ID de cliente y el Secret que obtendrás del paso de registro. Comparte estos detalles con los administradores de clústeres que necesitan configurar GKE Identity Service.

Información de configuración del proveedor de identidad

En esta sección, se proporciona información adicional específica del proveedor para registrar GKE Identity Service. Si tu proveedor aparece en la siguiente lista, registra GKE Identity Service como tu aplicación cliente mediante las siguientes instrucciones.

Microsoft AD FS

Usa un conjunto de asistentes de administración de AD FS para configurar el servidor de AD FS y la base de datos de usuarios de AD.

  1. Abre el panel de administración de AD FS.

  2. Selecciona Application Groups > Acciones > Add an Application Group.

  3. Selecciona Server Application. Ingresa el nombre y la descripción que prefieras. Haz clic en Siguiente.

  4. Ingresa las dos URL de redireccionamiento, como se especificó antes. Se te proporcionará un ID de cliente. Así es como el servidor de AD FS identifica GKE Identity Service. Guarda el ID de cliente para usarlo más adelante.

  5. Selecciona Generate a shared secret. GKE Identity Service usa este secreto para autenticarse en el servidor de AD FS. Guarda el secreto para usarlo más adelante.

Configura grupos de seguridad (opcional)

  1. En la administración de AD FS, selecciona Confianza con la parte autenticada > Agrega una nueva relación de confianza con la parte autenticada.

  2. Selecciona Claims aware y haz clic en Iniciar.

  3. Selecciona Enter data about relying party manually.

  4. Ingresa un nombre visible.

  5. Omite los siguientes dos pasos.

  6. Ingresa el identificador de una relación de confianza con la parte autenticada. Sugerencia: token-groups-claim.

  7. En Access control policy, selecciona Permit everyone. Esto significa que todos los usuarios comparten la información de su grupo de seguridad con la CLI de gcloud y la consola de Google Cloud.

  8. Haz clic en Finalizar.

Asigna atributos LDAP a los nombres de reclamaciones

  1. En la administración de AD FS, selecciona Confianza de la parte autenticada > Editar política de emisión de reclamos.

  2. Selecciona Send LDAP Attributes as Claims y haz clic en Siguiente.

  3. En Claim rule name, ingresa groups.

  4. En Attribute store, selecciona Active Directory.

  5. En la tabla, en LDAP Attribute, selecciona lo siguiente:

    • Para la versión 5.0 y posteriores de AD FS: Token-Groups Qualified by Domain name
    • Para versiones de AD FS anteriores a 5.0: Token Groups - Qualified Names
  6. En Outgoing Claim Type, selecciona lo siguiente:

    • Para la versión 5.0 y posteriores de AD FS: Group
    • Para versiones de AD FS anteriores a 5.0: groups
  7. Haz clic en Finalizar y, luego, en Aplicar.

Registra GKE Identity Service en AD FS

Abre una ventana de PowerShell en modo de administrador e ingresa este comando:

Grant-AD FSApplicationPermission `
  -ClientRoleIdentifier "[CLIENT_ID]" `
 -ServerRoleIdentifier [SERVER_ROLE_IDENTIFIER] `
  -ScopeName "allatclaims", "openid"

Reemplaza lo siguiente:

  • [CLIENT_ID] es el ID de cliente que obtuviste antes.

  • [SERVER_ROLE_IDENTIFIER] es el identificador de la reclamación que ingresaste antes. Recuerda que el identificador sugerido era token-groups-claim.

Azure AD

Registra un cliente de OAuth con Azure

Para registrar un cliente de OAuth con Azure, completa los pasos que se indican en los siguientes vínculos:

  1. Si aún no lo hiciste, configura un usuario en Azure Active Directory.

  2. Registra una aplicación con la plataforma de identidad de Microsoft

  3. Abre la página Registros de apps en el Portal de Azure y selecciona el nombre de tu aplicación.

  4. Crea un secreto del cliente.

    1. Haz clic en Agregar un certificado o secreto en Funciones básicas. Aparecerá una lista de certificados y una lista de Secrets.

    2. Haz clic en Nuevo secreto de cliente. Asígnale un nombre al secreto y haz clic en Agregar.

    3. Guarda el valor* del secreto en una ubicación segura. No podrás recuperarla después de cerrar o actualizar la página.

  5. Agrega los URI de redireccionamiento.

    1. Regresa a la página de la aplicación.

    2. Selecciona Agregar un URI de redireccionamiento en Funciones básicas. Aparecerá la página Autenticación.

    3. Elige Agregar una plataforma y aparecerá el panel Configurar plataformas a la derecha.

    4. Elige Web. En URI de redireccionamiento, ingresa http://localhost:PORT/callback para el flujo de acceso de la CLI de gcloud. Elige un PORT mayor que 1024. Haz clic en el botón Configurar.

    5. Haz clic en el botón Agregar URI a fin de agregar otro URI, https://console.cloud.google.com/kubernetes/oidc, para el acceso de la consola de Google Cloud.

    6. Haz clic en el botón Guardar en la parte superior.

Ahora se completó el registro de cliente. Debes tener la siguiente información para compartir con el administrador de tu clúster:

  • URI de la entidad emisora: https://login.microsoftonline.com/TENANT_ID/v2.0. El ID de usuario se muestra como Directory (tenant) ID en la página Aplicación en el portal de Azure.

  • ID de cliente: se muestra como el Application (client) ID en la página Aplicación del portal de Azure.

  • Secreto del cliente: Se te proporcionó esto en el último paso. No podrás recuperarlo si cierras la página durante la creación del secreto. Asegúrate de guardar el valor en una ubicación segura (o genera un secreto nuevo si pierdes el seguimiento del anterior).

Configuración avanzada para Azure AD

Considera usar esta configuración avanzada solo cuando quieras configurar clústeres con políticas de autorización basadas en grupos de Azure AD, en las que los usuarios de los clústeres pertenecen 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 locales (tanto VMware como equipos físicos): a partir de 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): a partir de GKE Enterprise 1.14

Antes de comenzar, asegúrate de que cada usuario tenga una dirección de correo electrónico asociada configurada como su identificador en Azure AD. GKE Identity Service usa el correo electrónico del usuario para confirmar su identidad y autenticar la solicitud.

Debes asegurarte de que el cliente que registraste en la sección anterior tenga permisos delegados para obtener información de usuarios y grupos de la API de Microsoft Graph. Estos permisos permiten que el complemento de GKE Identity Service acceda a los extremos de la API de Microsoft Graph desde los que se recupera la información del grupo. Sin este paso, GKE Identity Service no puede enumerar los grupos del usuario y las políticas de autorización de RBAC basadas en grupos no funcionarán como se espera.

Debes tener permisos de administrador de la organización o del administrador global para realizar este paso de configuración.

  1. Accede al portal de Azure.
  2. Si tienes acceso a grupos de usuarios múltiples, usa el filtro Directorio + suscripción en el menú superior para seleccionar el grupo de usuarios que contiene el registro de tu aplicación cliente.
  3. Selecciona Azure Active Directory - Registros App y, luego, selecciona tu aplicación cliente.
  4. Selecciona Permisos de API - Agregar un permiso - Microsoft Graph - Permisos delegados.
  5. En la pestaña Grupo, marca Group.Read.All. En la pestaña Usuario, marca User.Read.All.
  6. Haz clic en Agregar permisos para completar el proceso.
  7. Para otorgar consentimiento en nombre de todos los usuarios, haz clic en el botón Otorgar consentimiento de administrador para…. Puedes obtener más información para otorgar consentimiento de administrador en Más información sobre los permisos de API y el consentimiento de administrador.

Comparte los detalles del proveedor de identidad

Comparte la siguiente información del proveedor con el administrador de tu clúster para la configuración del clúster:

  • El URI de la entidad emisora del proveedor
  • El secreto del cliente
  • El ID de cliente
  • El puerto y el URI de redireccionamiento que especificaste para la CLI de gcloud
  • El campo de nombre de usuario (reclamación) que tu proveedor usa para identificar a los usuarios en sus tokens (el valor predeterminado previsto cuando se configuran clústeres es sub)
  • El campo de nombre de grupo (reclamación) que usa tu proveedor para mostrar grupos de seguridad, si corresponde.
  • Cualquier parámetro o permiso adicional que sea específico de tu proveedor, como se describió en la sección anterior Por ejemplo, si el 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 configuraste ADFS para que proporcione información de grupo de seguridad, el parámetro adicional relevante es resource=token-groups-claim (o lo que elijas como identificador de confianza de parte autenticada).
  • (Opcional) Si tu proveedor no usa un certificado firmado por una autoridad certificadora pública (por ejemplo, si usas certificados autofirmados), necesitarás un certificado (o cadena de certificados) del proveedor de identidad. El certificado (o cadena de certificados) debe contener el certificado raíz como mínimo (se aceptan cadenas parciales, siempre y cuando la cadena sea contigua al certificado raíz). Cuando se proporciona este valor en ClientConfig, se debe formatear como una cadena codificada en base64. Para crear la cadena, concatena los certificados completos codificados con PEM en una sola cadena y, luego, codifícalo en base64.

Puedes ver una lista completa de los parámetros de configuración de GKE Identity Service en Configura clústeres.

¿Qué sigue?

El administrador de tu clúster puede configurar GKE Identity Service para clústeres individuales o una flota.