Configura la federación de identidades de personal con Microsoft Entra ID y permite el acceso de usuarios

En esta guía, se muestra cómo configurar la federación de identidades de personal con Microsoft Entra ID y administrar el acceso a Google Cloud. Luego, los usuarios de la identidad de Microsoft Entra ID pueden acceder a los servicios de Google Cloud que admiten la federación de identidades de personal.

Antes de comenzar

  1. Asegúrate de tener configurada una organización de Google Cloud.
  2. After installing the Google Cloud CLI, configure the gcloud CLI to use your federated identity and then initialize it by running the following command:

    gcloud init
  3. En Microsoft Entra ID, asegúrate de que los tokens de ID estén habilitados para el flujo implícito. Para obtener más información, consulta [Habilita el flujo implícito](https://learn.microsoft.com/en-us/azure/active-directory-b2c/tutorial-register-applications#enable-id-token-implicit-grant).
  4. Para el acceso, tu IdP debe proporcionar información de autenticación firmada: los IdP de OIDC deben proporcionar un JWT y las respuestas del IdP de SAML deben estar firmadas.
  5. Para recibir información importante sobre los cambios en tu organización o productos de Google Cloud, debes proporcionar Essential Contacts. Para obtener más información, consulta la descripción general de la federación de identidades de personal.

Roles obligatorios

A fin de obtener los permisos que necesitas para configurar la federación de identidades de personal, pídele a tu administrador que te otorgue el rol de IAM Administrador de grupos de trabajadores de IAM (roles/iam.workforcePoolAdmin) en la organización. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

De manera alternativa, el rol básico de propietario de IAM (roles/owner) también incluye permisos para configurar la federación de identidades de personal. No deberías otorgar funciones básicas en un entorno de producción, pero puedes otorgarlas en un entorno de desarrollo o de prueba.

Crea un grupo de Workforce Identity

Console

Para crear el grupo de identidades de personal, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Grupos de identidades de personal:

    Ir a Grupos de identidades de personal

  2. Haz clic en Crear grupo y haz lo siguiente:

    1. En el campo Nombre, ingresa el nombre visible del grupo. El ID del grupo se deriva automáticamente del nombre a medida que escribes y se muestra en el campo Nombre. Para actualizar el ID del grupo, haz clic en Editar junto a él.

    2. Opcional: En Descripción, ingresa una descripción del grupo.

    3. La duración de la sesión se establece de forma predeterminada. Para ingresar una duración de la sesión personalizada, haz clic en Editar. La duración de la sesión, que determina el tiempo de acceso a los tokens de acceso de Google Cloud, las sesiones de acceso de la consola (federada) y las sesiones de acceso de la gcloud CLI de este grupo de personal son válidas. La duración debe ser superior a 15 minutos (900 s) y menor a 12 horas (43200 s). Si la duración de la sesión no se establece, el valor predeterminado es de una hora (3,600 s).

    4. Para crear el grupo en el estado habilitado, asegúrate de que la opción Grupo habilitado esté activada.

    5. Para crear el grupo de identidades de personal, haz clic en Siguiente.

gcloud

Para crear el grupo de identidades de personal, ejecuta el siguiente comando:

gcloud iam workforce-pools create WORKFORCE_POOL_ID \
    --organization=ORGANIZATION_ID \
    --display-name="DISPLAY_NAME" \
    --description="DESCRIPTION" \
    --session-duration=SESSION_DURATION \
    --location=global

Reemplaza lo siguiente:

  • WORKFORCE_POOL_ID: un ID que elijas para representar el grupo de personal de Google Cloud. Para obtener información sobre el formato del ID, consulta la sección Parámetros de consulta en la documentación de la API.
  • ORGANIZATION_ID: el ID numérico de la organización de Google Cloud.
  • DISPLAY_NAME: Opcional Un nombre visible para tu grupo de identidad del personal.
  • DESCRIPTION: Opcional Una descripción del grupo de identidad del personal.
  • SESSION_DURATION: Opcional La duración de la sesión, que determina el tiempo de acceso a los tokens de acceso de Google Cloud, las sesiones de acceso de la consola (federada) y las sesiones de acceso de la gcloud CLI de este grupo de personal son válidas. La duración debe ser superior a 15 minutos (900 s) y menor a 12 horas (43200 s). Si la duración de la sesión no se establece, el valor predeterminado es de una hora (3,600 s).

Crea una app de Microsoft Entra ID

En esta sección, se proporcionan los pasos para crear una app de Microsoft Entra ID con el Portal de administración de Microsoft Entra. Para obtener detalles adicionales, consulta Qué es la autenticación.

Los grupos de identidades de personal admiten la federación mediante el uso de protocolos OIDC y SAML.

OIDC

Para crear un registro de la app de Microsoft que use el protocolo OIDC, sigue estos pasos:

  1. Accede al portal de administración de Microsoft Entra.
  2. Ve a Identidad > Aplicaciones > Registros de apps.
  3. Para comenzar a configurar el registro de apps, haz lo siguiente:

    1. Haz clic en Registro nuevo.
    2. Ingresa un nombre para tu aplicación.
    3. En Tipos de cuentas compatibles, selecciona una opción.
    4. En la sección URI de redireccionamiento, en la lista desplegable Seleccionar una plataforma, selecciona Web. En el campo de texto, ingresa una URL de redireccionamiento. Se redirecciona a tus usuarios a esta URL después de que acceden de forma correcta. Si configuras el acceso a la consola (federada), usa el siguiente formato de URL:

      https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
      

      Reemplaza lo siguiente:

      • WORKFORCE_POOL_ID: el ID del grupo de personal que creaste antes en esta guía.
      • WORKFORCE_PROVIDER_ID: un ID de proveedor de Workforce Identity que elijas; por ejemplo: azure-ad-oidc-provider Para obtener información sobre el formato del ID, consulta la sección Parámetros de consulta en la documentación de la API.
    5. Para crear el registro de la app, haz clic en Registrar.

  4. Para configurar una reclamación de grupo, haz lo siguiente (opcional):

    1. Ve al registro de la app de Microsoft Entra ID.
    2. Haz clic en Configuración del token.
    3. Haz clic en Agregar reclamación de grupo. Para usar la asignación de atributos de ejemplo que se proporciona más adelante en esta guía, debes crear un atributo department personalizado.
    4. Selecciona los tipos de grupos que se mostrarán. Para obtener más detalles, consulta Configura reclamaciones opcionales de grupos.

SAML

Para crear una aplicación de Microsoft que use el protocolo SAML, sigue estos pasos:

  1. Accede al Portal de Microsoft Azure.
  2. Ve a Azure Active Directory > Aplicaciones empresariales.
  3. Para comenzar a configurar la aplicación empresarial, haz lo siguiente:

    1. Haz clic en Nueva aplicación > Crear tu nueva aplicación.
    2. Ingresa un nombre para tu aplicación.
    3. Haz clic en Crear.
    4. Ve a Inicio de sesión único > SAML.
    5. Actualiza la Configuración básica del SAML de la siguiente manera:

      1. En el campo Identificador (ID de entidad), ingresa el siguiente valor:

        https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
        
      2. En el campo URL de respuesta (URL del servicio de confirmación de consumidores), ingresa una URL de redireccionamiento. Se redirecciona a tus usuarios a esta URL después de que acceden de forma correcta. Si configuras el acceso a la consola (federada), usa el siguiente formato de URL:

        https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
        

        Reemplaza lo siguiente:

        • WORKFORCE_POOL_ID: el ID del grupo de identidad del personal que creaste antes en esta guía.
        • WORKFORCE_PROVIDER_ID: un ID de proveedor de identidades de personal que elijas; por ejemplo: azure-ad-oidc-provider. Para obtener información sobre el formato del ID, consulta la sección Parámetros de consulta en la documentación de la API.
      3. Si deseas habilitar el inicio de sesión iniciado por IdP, establece el campo Estado de retransmisión en el siguiente valor:

        https://console.cloud.google/
        
      4. Para guardar la configuración de la app de SAML, haz clic en Guardar.

  4. Para configurar una reclamación de grupo, haz lo siguiente: Para usar la asignación de atributos de ejemplo que se proporciona más adelante en esta guía, debes crear un atributo department personalizado.

    1. Ve a la app de Microsoft Entra ID.
    2. Haz clic en Inicio de sesión único.
    3. En la sección Atributos y reclamaciones, haz clic en Editar.
    4. Haz clic en Agregar una reclamación de grupo.
    5. Selecciona el tipo de grupo que se mostrará. Para obtener más detalles, consulta Agrega reclamaciones de grupos a tokens para aplicaciones de SAML mediante la configuración de SSO.

Crea el proveedor de grupos de identidades de personal de Microsoft Entra ID

En esta sección, se describe cómo crear un proveedor de grupos de identidades de personal para permitir que los usuarios de tu IdP accedan a Google Cloud. Puedes configurar el proveedor para que use el protocolo OIDC o SAML.

Crea un proveedor de grupos de identidad de trabajadores de OIDC

Para crear un proveedor de grupos de identidades de personal para tu integración de apps de Microsoft Entra ID mediante el protocolo OIDC, haz lo siguiente:

  1. Para obtener el URI de la entidad emisora de tu app de Microsoft Entra ID, haz lo siguiente:

    1. Ve al registro de la app de Microsoft Entra ID.
    2. Haz clic en Extremos.
    3. Abre el documento de metadatos de OpenID Connect en una pestaña nueva.
    4. En el archivo JSON, copia el valor de issuer.
  2. Para obtener el ID de cliente de tu app de Microsoft Entra ID, haz lo siguiente:

    1. Ve al registro de la app de Microsoft Entra ID.
    2. En ID de la aplicación (cliente), copia el valor.
  3. Para crear un proveedor de grupos de Workforce Identity de OIDC para el acceso basado en la Web, haz lo siguiente:

    Console

    Flujo de código

    Para crear un proveedor de OIDC que use el flujo de código de autorización para el acceso basado en la Web, haz lo siguiente:

    1. Para obtener el secreto del cliente de Microsoft Entra ID, haz lo siguiente:

      1. Ve al registro de la app de Microsoft Entra ID.

      2. En Certificados y secretos, haz clic en la pestaña Secretos del cliente.

      3. Para agregar un secreto del cliente, haz clic en + Nuevo secreto del cliente.

      4. En el cuadro de diálogo Agregar un secreto del cliente, ingresa la información, según sea necesario.

      5. Para crear el secreto del cliente, haz clic en Agregar.

      6. En la pestaña Secretos del cliente, busca el secreto del cliente nuevo.

      7. En la columna Valor de tu secreto de cliente nuevo, haz clic en Copiar.

    2. En la consola de Google Cloud, para crear un proveedor de OIDC que use el flujo de código de autorización, haz lo siguiente:

      1. En la consola de Google Cloud, ve a la página Grupos de identidades de personal:

        Ir a Grupos de identidades de personal

      2. En la tabla grupos de identidad del personal, selecciona el grupo para el que deseas crear el proveedor.

      3. En la tabla Proveedores, haz clic en Agregar proveedor.

      4. En Seleccionar un protocolo, selecciona Open ID Connect (OIDC).

      5. En Crear un proveedor de grupos, haz lo siguiente:

        1. En Nombre del proveedor, ingresa un nombre para el proveedor.
        2. En Emisor (URL), ingresa el URI de la entidad emisora. El URI de la entidad emisora de OIDC debe tener un formato de URI válido y comenzar con https; por ejemplo, https://example.com/oidc.
        3. Ingresa el ID de cliente, el ID de cliente de OIDC que está registrado con el IdP de OIDC; el ID debe coincidir con la reclamación aud del JWT que emite el IdP.
        4. Para crear un proveedor habilitado, asegúrate de que la opción Enabled Provider esté activada.
        5. Haz clic en Continuar.
      6. En Tipo de respuesta, haz lo siguiente: El tipo de respuesta solo se usa para un flujo de inicio de sesión único basado en la Web.

        1. En Tipo de respuesta, selecciona Código.
        2. En Secreto de cliente, ingresa el secreto de cliente de tu IdP.
        3. En Comportamiento de los reclamos de aserciones, selecciona una de las siguientes opciones:

          • Información del usuario y token de ID
          • Solo token de ID
        4. Haz clic en Continuar.

      7. En Configurar proveedor, puedes configurar una asignación de atributos y una condición de atributo. Para crear una asignación de atributos, haz lo siguiente: Puedes proporcionar el nombre del campo del IdP o una expresión con formato CEL que devuelva una cadena.

        1. Obligatorio: En OIDC 1, ingresa el asunto del IdP, por ejemplo, assertion.sub.

          Para Microsoft Entra ID con autenticación de OIDC, te recomendamos las siguientes asignaciones de atributos:

          google.subject=assertion.sub,
          google.groups=assertion.groups,
          google.display_name=assertion.preferred_username
          

          En este ejemplo, se asignan los atributos de IdP subject, groups y preferred_username a los atributos de Google Cloud google.subject, google.groups y google.display_name, respectivamente.

        2. Opcional: Para agregar asignaciones de atributos adicionales, haz lo siguiente:

          1. Haz clic en Agregar asignación.
          2. En Google n, donde n es un número, ingresa una de las claves compatibles con Google Cloud.
          3. En el campo OIDC n correspondiente, ingresa el nombre del campo específico de la IdP que deseas asignar, en formato CEL.
        3. Para crear una condición de atributo, haz lo siguiente:

          1. Haz clic en Agregar condición:
          2. En Condiciones del atributo, ingresa una condición en formato CEL. Por ejemplo, para limitar el atributo ipaddr a un rango de IP determinado que puedes establecer la condición assertion.ipaddr.startsWith('98.11.12.') .
      8. Para crear el proveedor, haz clic en Enviar.

    Flujo implícito

    Para crear un proveedor de OIDC que use el flujo implícito para el acceso basado en la Web, haz lo siguiente:

    1. En la consola de Google Cloud, ve a la página Grupos de identidades de personal:

      Ir a Grupos de identidades de personal

    2. En la tabla grupos de identidad del personal, selecciona el grupo para el que deseas crear el proveedor.

    3. En la tabla Proveedores, haz clic en Agregar proveedor.

    4. En Seleccionar un protocolo, selecciona Open ID Connect (OIDC).

    5. En Crear un proveedor de grupos, haz lo siguiente:

      1. En Nombre del proveedor, ingresa un nombre para el proveedor.
      2. En Emisor (URL), ingresa el URI de la entidad emisora. El URI de la entidad emisora de OIDC debe tener un formato de URI válido y comenzar con https; por ejemplo, https://example.com/oidc.
      3. Ingresa el ID de cliente, el ID de cliente de OIDC que está registrado con el IdP de OIDC; el ID debe coincidir con la reclamación aud del JWT que emite el IdP.
      4. Para crear un proveedor habilitado, asegúrate de que la opción Enabled Provider esté activada.
      5. Haz clic en Continuar.
    6. En Tipo de respuesta, haz lo siguiente: El tipo de respuesta solo se usa para un flujo de inicio de sesión único basado en la Web.

      1. En Tipo de respuesta, selecciona Token de ID.
      2. Haz clic en Continuar.
    7. En Configurar proveedor, puedes configurar una asignación de atributos y una condición de atributo. Para crear una asignación de atributos, haz lo siguiente: Puedes proporcionar el nombre del campo del IdP o una expresión con formato CEL que devuelva una cadena.

      1. Obligatorio: En OIDC 1, ingresa el asunto del IdP, por ejemplo, assertion.sub.

        Para Microsoft Entra ID con autenticación de OIDC, te recomendamos las siguientes asignaciones de atributos:

        google.subject=assertion.sub,
        google.groups=assertion.groups,
        google.display_name=assertion.preferred_username
        

        En este ejemplo, se asignan los atributos de IdP subject, groups y preferred_username a los atributos de Google Cloud google.subject, google.groups y google.display_name, respectivamente.

      2. Opcional: Para agregar asignaciones de atributos adicionales, haz lo siguiente:

        1. Haz clic en Agregar asignación.
        2. En Google n, donde n es un número, ingresa una de las claves compatibles con Google Cloud.
        3. En el campo OIDC n correspondiente, ingresa el nombre del campo específico de la IdP que deseas asignar, en formato CEL.
      3. Para crear una condición de atributo, haz lo siguiente:

        1. Haz clic en Agregar condición:
        2. En Condiciones del atributo, ingresa una condición en formato CEL. Por ejemplo, para limitar el atributo ipaddr a un rango de IP determinado que puedes establecer la condición assertion.ipaddr.startsWith('98.11.12.') .

    8. Para crear el proveedor, haz clic en Enviar.

    gcloud

    Para crear un proveedor que admita el protocolo OIDC, haz lo siguiente:

    Flujo de código

    Para crear un proveedor de OIDC que use el flujo de código de autorización para el acceso basado en la Web, haz lo siguiente:

    1. En tu app de Microsoft Entra ID, para obtener el secreto del cliente, haz lo siguiente:

      1. Ve al registro de la app de Microsoft Entra ID.

      2. En Certificados y secretos, haz clic en la pestaña Secretos del cliente.

      3. Para agregar un secreto del cliente, haz clic en + Nuevo secreto del cliente.

      4. En el cuadro de diálogo Agregar un secreto del cliente, ingresa la información, según sea necesario.

      5. Para crear el secreto del cliente, haz clic en Agregar.

      6. En la pestaña Secretos del cliente, busca el secreto del cliente nuevo.

      7. En la columna Valor de tu secreto de cliente nuevo, haz clic en Copiar.

    2. En la consola de Google Cloud, para crear un proveedor de OIDC que use el flujo de código, haz lo siguiente:

      gcloud iam workforce-pools providers create-oidc WORKFORCE_PROVIDER_ID \
          --workforce-pool=WORKFORCE_POOL_ID \
          --display-name="DISPLAY_NAME" \
          --description="DESCRIPTION" \
          --issuer-uri="ISSUER_URI" \
          --client-id="OIDC_CLIENT_ID" \
      --client-secret-value="OIDC_CLIENT_SECRET" \ --web-sso-response-type="code" \ --web-sso-assertion-claims-behavior="merge-user-info-over-id-token-claims" \ --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --jwk-json-path="JWK_JSON_PATH" \ --location=global

      Reemplaza lo siguiente:

      • WORKFORCE_PROVIDER_ID: Un ID de proveedor de grupos de identidades de personal único. El prefijo gcp- está reservado y no se puede usar en un grupo de identidad de personal ni en el ID de proveedor del grupo de identidad de personal.
      • WORKFORCE_POOL_ID: El ID del grupo de identidades de personal al que se conecta el IdP.
      • DISPLAY_NAME: un nombre visible opcional, fácil de usar para el proveedor, por ejemplo, idp-eu-employees.
      • DESCRIPTION: una descripción opcional del proveedor de personal, por ejemplo, IdP for Partner Example Organization employees.
      • ISSUER_URI: El URI de la entidad emisora de OIDC, en un formato de URI válido, que comienza con https; por ejemplo: https://example.com/oidc. Nota: Por motivos de seguridad, ISSUER_URI debe usar el esquema HTTPS.
      • OIDC_CLIENT_ID: El ID de cliente de OIDC que está registrado con el IdP de OIDC. El ID debe coincidir con la reclamación aud del JWT que emite el IdP.
      • OIDC_CLIENT_SECRET: El secreto del cliente de OIDC.
      • WEB_SSO_ADDITIONAL_SCOPES: Permisos adicionales opcionales así enviarle al IdP de OIDC para la consola (federada) o el acceso basado en el navegador de la gcloud CLI.
      • ATTRIBUTE_MAPPING: Una asignación de atributos. Para Microsoft Entra ID con autenticación de OIDC, te recomendamos las siguientes asignaciones de atributos:

        google.subject=assertion.sub,
        google.groups=assertion.groups,
        google.display_name=assertion.preferred_username
        

        En este ejemplo, se asignan los atributos de IdP subject, groups y preferred_username a los atributos de Google Cloud google.subject, google.groups y google.display_name, respectivamente.

      • ATTRIBUTE_CONDITION: Una condición de atributos, por ejemplo, para limitar el atributo ipaddr a un rango de IP determinado, puedes establecer la condición assertion.ipaddr.startsWith('98.11.12.').
      • JWK_JSON_PATH: Una ruta de acceso opcional a un JWK de OIDC subido de forma local. Si no se proporciona este parámetro, Google Cloud usa la ruta de acceso /.well-known/openid-configuration de tu IdP para obtener los JWK que contienen las claves públicas. Encuentra más información sobre los JWK de OIDC subidos de forma local en Administra los JWK de OIDC.
      En la respuesta del comando, POOL_RESOURCE_NAME es el nombre del grupo; por ejemplo, locations/global/workforcePools/enterprise-example-organization-employees.

    Flujo implícito

    A fin de crear un proveedor de OIDC que use el flujo implícito para el acceso web, haz lo siguiente:

    1. Para habilitar el token de ID en tu app de Microsoft Entra ID, haz lo siguiente:

      1. Ve al registro de la app de Microsoft Entra ID.
      2. En Autenticación, selecciona la casilla de verificación Token de ID.
      3. Haz clic en Guardar.
    2. Para crear la política, ejecuta el siguiente comando:

      gcloud iam workforce-pools providers create-oidc WORKFORCE_PROVIDER_ID \
          --workforce-pool=WORKFORCE_POOL_ID \
          --display-name="DISPLAY_NAME" \
          --description="DESCRIPTION" \
          --issuer-uri="ISSUER_URI" \
          --client-id="OIDC_CLIENT_ID" \
          --web-sso-response-type="id-token" \
          --web-sso-assertion-claims-behavior="only-id-token-claims" \
          --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \
          --attribute-mapping="ATTRIBUTE_MAPPING" \
          --attribute-condition="ATTRIBUTE_CONDITION" \
          --jwk-json-path="JWK_JSON_PATH" \
          --location=global
      

      Reemplaza lo siguiente:

      • WORKFORCE_PROVIDER_ID: Un ID de proveedor de grupos de identidades de personal único. El prefijo gcp- está reservado y no se puede usar en un grupo de identidad de personal ni en el ID de proveedor del grupo de identidad de personal.
      • WORKFORCE_POOL_ID: El ID del grupo de identidades de personal al que se conecta el IdP.
      • DISPLAY_NAME: un nombre visible opcional, fácil de usar para el proveedor, por ejemplo, idp-eu-employees.
      • DESCRIPTION: una descripción opcional del proveedor de personal, por ejemplo, IdP for Partner Example Organization employees.
      • ISSUER_URI: El URI de la entidad emisora de OIDC, en un formato de URI válido, que comienza con https; por ejemplo: https://example.com/oidc. Nota: Por motivos de seguridad, ISSUER_URI debe usar el esquema HTTPS.
      • OIDC_CLIENT_ID: El ID de cliente de OIDC que está registrado con el IdP de OIDC. El ID debe coincidir con la reclamación aud del JWT que emite el IdP.
      • WEB_SSO_ADDITIONAL_SCOPES: Permisos adicionales opcionales así enviarle al IdP de OIDC para la consola (federada) o el acceso basado en el navegador de la gcloud CLI.
      • ATTRIBUTE_MAPPING: Una asignación de atributos. Para Microsoft Entra ID con autenticación de OIDC, te recomendamos las siguientes asignaciones de atributos:

        google.subject=assertion.sub,
        google.groups=assertion.groups,
        google.display_name=assertion.preferred_username
        

        En este ejemplo, se asignan los atributos de IdP subject, groups y preferred_username a los atributos de Google Cloud google.subject, google.groups y google.display_name, respectivamente.

      • ATTRIBUTE_CONDITION: Una condición de atributos, por ejemplo, para limitar el atributo ipaddr a un rango de IP determinado, puedes establecer la condición assertion.ipaddr.startsWith('98.11.12.').
      • JWK_JSON_PATH: Una ruta de acceso opcional a un JWK de OIDC subido de forma local. Si no se proporciona este parámetro, Google Cloud usa la ruta de acceso /.well-known/openid-configuration de tu IdP para obtener los JWK que contienen las claves públicas. Encuentra más información sobre los JWK de OIDC subidos de forma local en Administra los JWK de OIDC.
      En la respuesta del comando, POOL_RESOURCE_NAME es el nombre del grupo; por ejemplo, locations/global/workforcePools/enterprise-example-organization-employees.

Crea un proveedor de grupos de identidades de personal de SAML

  1. En tu IdP de SAML, registra una aplicación nueva para la federación de identidades de personal de Google Cloud.

  2. Configura el público para las aserciones de SAML. Por lo general, es el campo SP Entity ID en la configuración de IdP. Debes configurarla en la siguiente URL:

    https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    
  3. Si planeas configurar el acceso de usuario a la consola, en tu IdP de SAML, configura la URL de redireccionamiento o el campo de URL del servicio de confirmación de consumidores (ACS) en la siguiente URL:

    https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    

    Consulta Configura el acceso de usuario a la consola para obtener más detalles sobre la configuración del acceso a la consola.

  4. En Google Cloud, crea un proveedor de grupos de identidad de trabajadores de SAML mediante el documento de metadatos de SAML de tu IdP. Puedes descargar el documento XML de metadatos de SAML desde tu IdP. El documento debe incluir al menos lo siguiente:

    • Un ID de entidad de SAML para tu IdP.
    • La URL de inicio de sesión único para tu IdP.
    • Al menos una clave pública de firma. Consulta los requisitos de las claves más adelante en esta guía para obtener información sobre las claves de firma.

Console

Para configurar el proveedor de SAML con la consola de Google Cloud, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Grupos de identidades de personal:

    Ir a Grupos de identidades de personal

  2. En la tabla grupos de identidad del personal, selecciona el grupo para el que deseas crear el proveedor.

  3. En la tabla Proveedores, haz clic en Agregar proveedor.

  4. En Selecciona un protocolo, selecciona SAML.

  5. En Crea un proveedor de grupos, haz lo siguiente:

    1. En Nombre del proveedor, ingresa un nombre para el proveedor.

    2. Opcional: En Descripción, ingresa una descripción para el proveedor.

    3. En Archivo de metadatos de IdP (XML), selecciona el archivo XML de metadatos que generaste antes en esta guía.

    4. Asegúrate de que la opción Proveedor habilitado esté habilitada.

    5. Haz clic en Continuar.

  6. En Configurar proveedor, haz lo siguiente:

    1. En Asignación de atributos, ingresa una expresión CEL para google.subject.

    2. Opcional: Para ingresar otras asignaciones, haz clic en Agregar asignación y, luego, ingresa otras asignaciones:

      google.subject=assertion.subject,
      google.groups=assertion.attributes['https://example.com/aliases'],
      attribute.costcenter=assertion.attributes.costcenter[0]
      En este ejemplo, se asignan los atributos de IdP assertion.subject, assertion.attributes['https://example.com/aliases'] y assertion.attributes.costcenter[0] a los atributos de Google Cloud google.subject, google.groups y google.costcenter, respectivamente.

    3. Opcional: Para agregar una condición de atributo, haz clic en Agregar condición y, luego, ingresa una expresión de CEL que represente una condición de atributo. Por ejemplo, para limitar el atributo ipaddr a un rango de IP determinado, puedes establecer la condición assertion.attributes.ipaddr.startsWith('98.11.12.'). Esta condición de ejemplo garantiza que solo los usuarios con una dirección IP que comienza con 98.11.12. puedan acceder mediante este proveedor de personal.

    4. Haga clic en Continuar.

  7. Para crear el proveedor, haz clic en Enviar.

gcloud

Para guardar los metadatos de SAML de tu app de Microsoft Entra ID, haz lo siguiente:

  1. Ve a la app de Microsoft Entra ID.
  2. Haz clic en Inicio de sesión único.
  3. En la sección Certificados SAML, descarga el XML de metadatos de la federación.
  4. Guarda los metadatos como un archivo XML local.

Para crear el proveedor de grupos de identidades de personal de SAML, ejecuta el siguiente comando:

gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \
    --workforce-pool="WORKFORCE_POOL_ID" \
    --display-name="DISPLAY_NAME" \
    --description="DESCRIPTION" \
    --idp-metadata-path="XML_METADATA_PATH" \
    --attribute-mapping="ATTRIBUTE_MAPPING" \
    --attribute-condition="ATTRIBUTE_CONDITION" \
    --location=global

Reemplaza lo siguiente:

  • WORKFORCE_PROVIDER_ID: El ID del proveedor.
  • WORKFORCE_POOL_ID: El ID del grupo de la identidad de personal.
  • DISPLAY_NAME: El nombre visible.
  • DESCRIPTION: Una descripción.
  • XML_METADATA_PATH: La ruta de acceso al archivo de metadatos con formato XML con metadatos de configuración para el proveedor de identidad SAML.
  • ATTRIBUTE_MAPPING: Es la asignación de atributos; por ejemplo:

    google.subject=assertion.subject,
    google.groups=assertion.attributes['https://example.com/aliases'],
    attribute.costcenter=assertion.attributes.costcenter[0]
    En este ejemplo, se asignan los atributos de IdP assertion.subject, assertion.attributes['https://example.com/aliases'] y assertion.attributes.costcenter[0] a los atributos de Google Cloud google.subject, google.groups y google.costcenter, respectivamente.

  • ATTRIBUTE_CONDITION: Es una condición de atributo opcional. Por ejemplo, para limitar el atributo ipaddr a un rango de IP determinado, puedes establecer la condición assertion.attributes.ipaddr.startsWith('98.11.12.'). Esta condición de ejemplo garantiza que solo los usuarios con una dirección IP que comienza con 98.11.12. puedan acceder mediante este proveedor de personal.

Opcional: Acepta las aserciones de SAML encriptadas de tu IdP

Para permitir que tu IdP de SAML 2.0 produzca aserciones de SAML encriptadas que la federación de identidades de personal pueda aceptar, haz lo siguiente:

  • En la federación de identidades de personal, haz lo siguiente:
    • Crea un par de claves asimétricas para tu proveedor de grupos de identidades de personal.
    • Descargar un archivo de certificado que contenga la clave pública
    • Configura tu IdP de SAML para usar la clave pública a fin de encriptar las aserciones de SAML que emite.
  • En el IdP, haz lo siguiente:
    • Habilita la encriptación de aserciones, también conocida como encriptación de tokens.
    • Sube la clave pública que creaste en la federación de identidades de personal.
    • Confirma que tu IdP produzca aserciones de SAML encriptadas.
Ten en cuenta que, incluso con las claves de proveedor de encriptación de SAML configuradas, la federación de identidades de personal aún puede procesar una aserción de texto simple.

Crea claves de encriptación de aserciones de SAML de la federación de identidades de personal

En esta sección, se explica cómo crear un par de claves asimétricas que permite que la federación de identidades de personal acepte aserciones de SAML encriptadas.

Google Cloud usa la clave privada para desencriptar las aserciones de SAML que emite tu IdP. Para crear un par de claves asimétricas que se usarán con la encriptación SAML, ejecuta el siguiente comando. Para obtener más información, consulta Algoritmos de encriptación de SAML compatibles.

gcloud iam workforce-pools providers keys create KEY_ID \
    --workforce-pool WORKFORCE_POOL_ID \
    --provider WORKFORCE_PROVIDER_ID \
    --location global \
    --use encryption \
    --spec KEY_SPECIFICATION

Reemplaza lo siguiente:

  • KEY_ID: un nombre de clave que elijas
  • WORKFORCE_POOL_ID: el ID del grupo
  • WORKFORCE_PROVIDER_ID: El ID del proveedor del grupo de identidades de personal
  • KEY_SPECIFICATION: la especificación de clave, que puede ser rsa-2048, rsa-3072 y rsa-4096.

Después de crear el par de claves, ejecuta el siguiente comando para descargar la clave pública en un archivo de certificado. Solo la federación de identidades de personal tiene acceso a la clave privada.

gcloud iam workforce-pools providers keys describe KEY_ID \
    --workforce-pool WORKFORCE_POOL_ID \
    --provider WORKFORCE_PROVIDER_ID \
    --location global \
    --format "value(keyData.key)" \
    > CERTIFICATE_PATH

Reemplaza lo siguiente:

  • KEY_ID: el nombre de la clave
  • WORKFORCE_POOL_ID: el ID del grupo
  • WORKFORCE_PROVIDER_ID: El ID del proveedor del grupo de identidades de personal
  • CERTIFICATE_PATH: la ruta en la que se escribe el certificado, por ejemplo, saml-certificate.cer o saml-certificate.pem

Configura tu IdP compatible con SAML 2.0 para emitir aserciones de SAML encriptadas

Si deseas configurar Microsoft Entra ID para encriptar tokens de SAML, consulta Configura la encriptación de tokens de SAML de Azure Active Directory.

Después de configurar tu IdP para encriptar las aserciones de SAML, te recomendamos que te asegures de que las aserciones que genera en realidad estén encriptadas. Incluso con la encriptación de aserciones de SAML configurada, la federación de identidades de personal puede procesar aserciones de texto simple.

Borra claves de encriptación de la federación de identidades de personal

Para borrar claves de encriptación de SAML, ejecuta el siguiente comando:
  gcloud iam workforce-pools providers keys delete KEY_ID \
      --workforce-pool WORKFORCE_POOL_ID \
      --provider WORKFORCE_PROVIDER_ID \
      --location global

Reemplaza lo siguiente:

  • KEY_ID: el nombre de la clave
  • WORKFORCE_POOL_ID: el ID del grupo
  • WORKFORCE_PROVIDER_ID: El ID del proveedor del grupo de identidades de personal

Algoritmos de encriptación SAML compatibles

La federación de identidades de personal admite los siguientes algoritmos de transporte de claves:

La federación de identidades de personal admite los siguientes algoritmos de encriptación de bloques:

Administra el acceso a los recursos de Google Cloud

En esta sección, se proporciona un ejemplo en el que se muestra cómo administrar el acceso a los recursos de Google Cloud mediante los usuarios de la federación de identidades de personal.

En este ejemplo, otorgas un rol de Identity and Access Management (IAM) en un proyecto de muestra. Luego, los usuarios pueden acceder y usar este proyecto para acceder a los productos de Google Cloud.

Puedes administrar los roles de IAM para identidades individuales, un grupo de identidades o un grupo completo. Para obtener más información, consulta Representa a los usuarios del grupo de la identidad de personal en políticas del IAM.

Para la identidad única

Para otorgar el rol Administrador de almacenamiento (roles/storage.admin) a una sola identidad para el proyecto TEST_PROJECT_ID, ejecuta el siguiente comando:

gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
    --role="roles/storage.admin" \
    --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"

Reemplaza lo siguiente:

  • TEST_PROJECT_ID: El ID del proyecto
  • WORKFORCE_POOL_ID: el ID del grupo de la identidad de personal
  • SUBJECT_VALUE: La identidad del usuario

Usa el atributo de departamento asignado

A fin de otorgar el rol Storage Admin (roles/storage.admin) a todas las identidades dentro de un departamento específico para el proyecto TEST_PROJECT_ID, ejecuta el siguiente comando:

gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
    --role="roles/storage.admin" \
    --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/attribute.department/DEPARTMENT_VALUE"

Reemplaza lo siguiente:

  • TEST_PROJECT_ID: El ID del proyecto
  • WORKFORCE_POOL_ID: El ID del grupo de Workforce Identity
  • DEPARTMENT_VALUE: el valor attribute.department asignado

Usa grupos asignados

Para otorgar el rol de administrador de almacenamiento (roles/storage.admin) a todas las identidades dentro del grupo GROUP_ID en el proyecto TEST_PROJECT_ID, ejecuta el siguiente comando:

gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
    --role="roles/storage.admin" \
    --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"

Reemplaza lo siguiente:

  • TEST_PROJECT_ID: El ID del proyecto
  • WORKFORCE_POOL_ID: El ID del grupo de Workforce Identity
  • GROUP_ID: un grupo en la reclamación google.groups asignada.

Accede y prueba el acceso

En esta sección, accederás como un usuario de grupo de Workforce Identity y probarás que tienes acceso a un producto de Google Cloud.

Acceso

En esta sección, se muestra cómo acceder como un usuario federado y acceder a los recursos de Google Cloud.

Acceso a la consola (federada)

Para acceder a la consola de la federación de identidades de personal de Google Cloud, también conocida como consola (federada), haz lo siguiente:

  1. Ve a la página de acceso de la consola (federada).

    Ir a la consola (federada)

  2. Ingresa el nombre del proveedor, que tiene el siguiente formato:
    locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    1. Ingresa las credenciales de usuario en Microsoft Entra ID, si se te solicita.

Acceso con el navegador de la gcloud CLI

Para acceder a la gcloud CLI con un flujo de acceso basado en el navegador, haz lo siguiente:

Crea un archivo de configuración

Para crear el archivo de configuración de acceso, ejecuta el siguiente comando. De manera opcional, puedes activar el archivo como predeterminado para gcloud CLI mediante la marca --activate.

gcloud iam workforce-pools create-login-config \
    locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
    --output-file=LOGIN_CONFIG_FILE

Reemplaza lo siguiente:

  • WORKFORCE_POOL_ID: el ID del grupo de la identidad de personal
  • WORKFORCE_PROVIDER_ID: El ID del proveedor del grupo de identidades de personal
  • LOGIN_CONFIG_FILE: Una ruta de acceso al archivo de configuración de acceso que especifiques, por ejemplo, login.json.

El archivo contiene los extremos que usa la gcloud CLI para habilitar el flujo de autenticación basado en el navegador y establecer el público en el IdP que se configuró en el proveedor del grupo de identidad de personal. El archivo no contiene información confidencial.

El resultado es similar al siguiente:

{
  "type": "external_account_authorized_user_login_config",
  "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
  "auth_url": "https://auth.cloud.google/authorize",
  "token_url": "https://sts.googleapis.com/v1/oauthtoken",
  "token_info_url": "https://sts.googleapis.com/v1/introspect",
}

Accede con autenticación basada en el navegador

Para autenticar con la autenticación de acceso basada en el navegador, puedes usar uno de los siguientes métodos:

  • Si usaste la marca --activate cuando creaste el archivo de configuración o si activaste el archivo de configuración con gcloud config set auth/login_config_file, gcloud CLI usa el archivo de configuración de forma automática:

    gcloud auth login
  • Para acceder mediante la especificación de la ubicación del archivo de configuración, ejecuta el siguiente comando:

    gcloud auth login --login-config=LOGIN_CONFIG_FILE
  • Para usar una variable de entorno a fin de especificar la ubicación del archivo de configuración, establece CLOUDSDK_AUTH_LOGIN_CONFIG_FILE en la ruta de configuración.

Inhabilita el acceso basado en el navegador

Para dejar de usar el archivo de configuración de acceso, haz lo siguiente:

  • Si usaste la marca --activate cuando creaste el archivo de configuración o si activaste el archivo de configuración con gcloud config set auth/login_config_file, debes ejecutar el siguiente comando para anularlo:

    gcloud config unset auth/login_config_file
  • Borra la variable de entorno CLOUDSDK_AUTH_LOGIN_CONFIG_FILE, si está configurada.

Acceso sin interfaz gráfica de la gcloud CLI

Para acceder a Microsoft Entra ID con la gcloud CLI, haz lo siguiente:

OIDC

  1. Sigue los pasos de la página Envía la solicitud de acceso. Permite que el usuario acceda a tu app con Microsoft Entra ID mediante OIDC.

  2. Copia el token de ID del parámetro id_token de la URL de redireccionamiento y guárdalo en un archivo en una ubicación segura de tu máquina local. En el paso posterior, debes configurar PATH_TO_OIDC_ID_TOKEN en la ruta de acceso a este archivo.

  3. Genera un archivo de configuración similar al ejemplo que se muestra más adelante en este paso mediante la ejecución del siguiente comando:

    gcloud iam workforce-pools create-cred-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
        --subject-token-type=urn:ietf:params:oauth:token-type:id_token \
        --credential-source-file=PATH_TO_OIDC_ID_TOKEN \
        --workforce-pool-user-project=WORKFORCE_POOL_USER_PROJECT \
        --output-file=config.json
    

    Reemplaza lo siguiente:

    • WORKFORCE_POOL_ID: El ID del grupo de la identidad de personal.
    • WORKFORCE_PROVIDER_ID: El ID del proveedor del grupo de identidades de personal.
    • PATH_TO_OIDC_ID_TOKEN: la ruta a la ubicación del archivo en la que se almacena el token de IdP.
    • WORKFORCE_POOL_USER_PROJECT: El número o ID del proyecto que se usa para la cuota y la facturación. La principal debe tener el permiso serviceusage.services.use en este proyecto.

    Cuando se completa el comando, Microsoft Entra ID crea el siguiente archivo de configuración:

    {
      "type": "external_account",
      "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
      "subject_token_type": "urn:ietf:params:oauth:token-type:id_token",
      "token_url": "https://sts.googleapis.com/v1/token",
      "workforce_pool_user_project": "WORKFORCE_POOL_USER_PROJECT",
      "credential_source": {
        "file": "PATH_TO_OIDC_CREDENTIALS"
      }
    }
    
  4. Abre la gcloud CLI y ejecuta el siguiente comando:

    gcloud auth login --cred-file=PATH_TO_OIDC_CREDENTIALS
    

    Reemplaza PATH_TO_OIDC_CREDENTIALS por la ruta de acceso al archivo de salida de un paso anterior.

    La gcloud CLI publica las credenciales con transparencia en el extremo del servicio de tokens de seguridad. En el extremo, se intercambia por tokens de acceso temporales de Google Cloud.

    Ahora puedes ejecutar comandos de la gcloud CLI en Google Cloud.

SAML

  1. Haz que un usuario acceda a tu app de Microsoft Entra ID y obtén la respuesta de SAML.

  2. Guarda la respuesta SAML que muestra Microsoft Entra ID en una ubicación segura de tu máquina local y, luego, almacena la ruta de acceso de la siguiente manera:

    SAML_ASSERTION_PATH=SAML_ASSERTION_PATH
    
  3. Para generar un archivo de configuración como el ejemplo que se muestra más adelante en este paso, ejecuta el siguiente comando:

    gcloud iam workforce-pools create-cred-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
        --subject-token-type=urn:ietf:params:oauth:token-type:saml2 \
        --credential-source-file=SAML_ASSERTION_PATH  \
        --workforce-pool-user-project=PROJECT_ID  \
        --output-file=config.json
    

    Reemplaza lo siguiente:

    • WORKFORCE_PROVIDER_ID: el ID del grupo de identidades de personal que creaste antes en esta guía.
    • WORKFORCE_POOL_ID: el ID del grupo de Workforce Identity que creaste antes en esta guía.
    • SAML_ASSERTION_PATH: la ruta de acceso del archivo de aserción de SAML
    • PROJECT_ID: El ID del proyecto

    El archivo de configuración que se genera es similar al siguiente:

    {
      "type": "external_account",
      "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
      "subject_token_type": "urn:ietf:params:oauth:token-type:saml2",
      "token_url": "https://sts.googleapis.com/v1/token",
      "credential_source": {
        "file": "SAML_ASSERTION_PATH"
      },
      "workforce_pool_user_project": "PROJECT_ID"
    }
    
  4. Para acceder a gcloud mediante el intercambio de tokens, ejecuta el siguiente comando:

    gcloud auth login --cred-file=config.json
    

    Luego, gcloud intercambia de manera transparente tus credenciales de Microsoft Entra ID por tokens de acceso temporales de Google Cloud, lo que te permite realizar otras llamadas de gcloud a Google Cloud.

    Verás un resultado similar al siguiente:

    Authenticated with external account user credentials for:
    [principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/USER_ID].
  5. Para enumerar las cuentas con credenciales y tu cuenta activa, ejecuta el siguiente comando:

    gcloud auth list
    

Pruebe el acceso

Ahora tienes acceso a los servicios de Google Cloud que admiten la federación de identidades de personal y a los que se te otorga acceso. En una sección anterior de esta guía, otorgaste el rol de administrador de almacenamiento a todas las identidades dentro de un departamento específico para el proyecto TEST_PROJECT_ID. Para probar que tienes acceso, enumera los buckets de Cloud Storage.

Consola (federada)

Ahora puedes ejecutar comandos de la gcloud CLI en Google Cloud.

  • Ir a la página de Cloud Storage.
  • Verifica que puedas ver la lista de depósitos existentes para TEST_PROJECT_ID.

gcloud CLI

Para enumerar los buckets y los objetos de Cloud Storage para el proyecto al que tienes acceso, ejecuta el siguiente comando:

gcloud storage ls --project="TEST_PROJECT_ID"

La principal debe tener el permiso serviceusage.services.use en el proyecto especificado.

Borrar usuarios

La federación de identidades de personal crea metadatos y recursos de usuario para identidades de usuario federadas. Por ejemplo, si eliges borrar usuarios, en tu IdP, también debes borrar de forma explícita estos recursos en Google Cloud. Para hacerlo, consulta Borra los usuarios de la federación de identidades de personal y sus datos.

Es posible que veas que los recursos siguen asociados con un usuario que se borró. Esto se debe a que para borrar metadatos y recursos del usuario se requiere una operación de larga duración. Después de iniciar la eliminación de la identidad de un usuario, los procesos que este inició antes de la eliminación pueden seguir ejecutándose hasta que se completen o se cancelen los procesos.

¿Qué sigue?