Configura proveedores de OIDC para GKE Identity Service

En este documento, se explica cómo configurar el proveedor de identidad OpenID Connect (OIDC) elegido para GKE Identity Service. Para obtener más información sobre GKE Identity Service, consulta la descripción general.

Este documento está dirigido a los administradores de plataformas o a quienes administran la configuración de identidad en tu organización. Si eres administrador de clústeres o eres operador de aplicaciones, pídele al administrador de la plataforma que siga esta sección antes de comenzar a configurar los clústeres para GKE Service Identity a nivel de flota o configurar los clústeres para GKE Identity Service con OIDC.

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 1024.

Registra tu proveedor a través de un proceso de autenticación alternativo

Un proceso alternativo para registrar a tu proveedor es autenticarte directamente a través del servidor de GKE Identity Service. Si usas un proveedor de OIDC o Azur AD, debes actualizar tu redirect_uri según el formato de la URL del clúster. redirect_uri tiene el siguiente formato:

      https://CLUSTER-SERVER-FQDN.com:8443/finish-login

Reemplaza CLUSTER-SERVER-FQDN por el nombre del servidro del clúster

Por ejemplo, si la URL del clúster es https://cluster.company.com, el redirect_uri debe ser https://cluster.company.com:8443/finish-login.

Guarda el ID de cliente y el secreto que obtendrás del paso de registro. Comparte estos detalles con los administradores de clústeres que necesiten configurar GKE Identity Service. Debes asegurarte de haber hecho lo siguiente:

  • Configura tu servicio de nombre de dominio (DNS) para resolver CLUSTER-SERVER-FQDN en las VIP del plano de control (direcciones IP virtuales). Los usuarios pueden acceder al clúster con este nombre de dominio.
  • Usa un certificado de indicación del nombre del servidor (SNI) emitido por tu autoridad certificada (CA) empresarial de confianza. Este certificado menciona específicamente CLUSTER-SERVER-FQDN como dominio válido, lo que elimina las posibles advertencias de certificados para los usuarios. Puedes proporcionar el certificado SNI durante la creación del clúster. Para obtener más información sobre la autenticación mediante certificados SNI, consulta Autenticación de certificados SNI.
  • Si no es posible usar certificados de SNI, configura todos los dispositivos de usuario para que confíen en el certificado de CA del clúster. Esto evita las advertencias de certificados, pero requiere la distribución del certificado de CA del clúster a todos los usuarios.

Para obtener más información sobre el acceso de los usuarios mediante estos certificados, consulta Configura el acceso de los usuarios a través de un proceso de autenticación alternativo.

Información de configuración del proveedor

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. y, luego, 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 alojados 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 detalles del proveedor

Asegúrate de que el administrador del clúster tenga la siguiente información obligatoria 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).
  • Si tu proveedor no usa un certificado firmado por una autoridad certificada pública (por ejemplo, si usas certificados autofirmados), necesitarás un certificado (o cadena de certificados) del proveedor de identidad (opcional). El certificado (o cadena de certificados) debe contener el certificado raíz como mínimo (se aceptan cadenas parciales, siempre que la cadena sea contigua al certificado raíz). Cuando proporcionas este valor en ClientConfig, debe tener el formato de una string codificada en base64. Para crear la string, concatena los certificados completos con codificación PEM en una sola string y, luego, codifica en base64.

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