En esta guía, se describe cómo configurar la federación de identidades de personal con un proveedor de identidad (IdP) compatible con OIDC o SAML 2.0.
Para obtener instrucciones específicas del IdP, consulta lo siguiente:
- Configura la federación de identidades de personal basada en Microsoft Entra ID
- Configura la federación de identidades de personal basada en Okta
Antes de comenzar
- Asegúrate de tener configurada una organización de Google Cloud.
-
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
-
Enable the Identity and Access Management (IAM) and Resource Manager APIs.
- 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.
- 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 Workforce Identity Pool Admin (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.
Como alternativa, el rol básico Owner (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.
Configura la federación de identidades de personal
Para configurar la federación de identidades de personal, crea un Grupo de identidad del personal y un proveedor de Grupo de identidad del personal.
Crea un grupo de Workforce Identity
Para crear el grupo, ejecuta el siguiente comando:
Console
Para crear el grupo de identidades de personal, haz lo siguiente:
En la consola de Google Cloud, ve a la página Grupos de identidades de personal:
Haz clic en Crear grupo y haz lo siguiente:
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.
Opcional: En Descripción, ingresa una descripción del grupo.
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).
Para crear el grupo en el estado habilitado, asegúrate de que la opción Grupo habilitado esté activada.
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 un proveedor de grupos de Workforce Identity
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 trabajadores de OIDC
Para crear un proveedor de grupos de identidades de personal con el protocolo OIDC, haz lo siguiente:
En tu IdP de OIDC, registra una aplicación nueva para la federación de identidades de personal de Google Cloud. Toma nota del ID de cliente y el URI del emisor que proporcionó el IdP. Los usarás en este documento.
Si planeas configurar el acceso de usuario a la consola, agrega la siguiente URL de redireccionamiento a tu IdP de OIDC:
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Para obtener información sobre cómo configurar el acceso de la consola (federada), consulta Configura el acceso del usuario a la consola (federada).
En Google Cloud, para crear el proveedor, haz lo siguiente:
Console
Flujo de código
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:
En la consola de Google Cloud, ve a la página Grupos de identidades de personal:
En la tabla grupos de identidad del personal, selecciona el grupo para el que deseas crear el proveedor.
En la tabla Proveedores, haz clic en Agregar proveedor.
En Seleccionar un protocolo, selecciona Open ID Connect (OIDC).
En Crear un proveedor de grupos, haz lo siguiente:
- En Nombre del proveedor, ingresa un nombre para el proveedor.
- 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
. - 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. - Para crear un proveedor habilitado, asegúrate de que la opción Enabled Provider esté activada.
- Haz clic en Continuar.
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.
- En Tipo de respuesta, selecciona Código.
- En Secreto de cliente, ingresa el secreto de cliente de tu IdP.
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
Haz clic en Continuar.
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.
Obligatorio: En OIDC 1, ingresa el asunto del IdP, por ejemplo,
assertion.sub
.Opcional: Para agregar asignaciones de atributos adicionales, haz lo siguiente:
- Haz clic en Agregar asignación.
- En Google n, donde n es un número, ingresa una de las claves compatibles con Google Cloud.
- En el campo OIDC n correspondiente, ingresa el nombre del campo específico de la IdP que deseas asignar, en formato CEL.
Para crear una condición de atributo, haz lo siguiente:
- Haz clic en Agregar condición:
- En Condiciones del atributo, ingresa una condición en formato CEL,
por ejemplo,
assertion.role == 'gcp-users'
. Esta condición de ejemplo garantiza que solo los usuarios con el rolgcp-users
puedan acceder mediante este proveedor.
Para crear el proveedor, haz clic en Enviar.
Flujo implícito
En la consola de Google Cloud, para crear un proveedor de OIDC que use el flujo implícito, haz lo siguiente:
En la consola de Google Cloud, ve a la página Grupos de identidades de personal:
En la tabla grupos de identidad del personal, selecciona el grupo para el que deseas crear el proveedor.
En la tabla Proveedores, haz clic en Agregar proveedor.
En Seleccionar un protocolo, selecciona Open ID Connect (OIDC).
En Crear un proveedor de grupos, haz lo siguiente:
- En Nombre del proveedor, ingresa un nombre para el proveedor.
- 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
. - 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. - Para crear un proveedor habilitado, asegúrate de que la opción Enabled Provider esté activada.
- Haz clic en Continuar.
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.
- En Tipo de respuesta, selecciona Token de ID.
- Haz clic en Continuar.
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.
Obligatorio: En OIDC 1, ingresa el asunto del IdP, por ejemplo,
assertion.sub
.Opcional: Para agregar asignaciones de atributos adicionales, haz lo siguiente:
- Haz clic en Agregar asignación.
- En Google n, donde n es un número, ingresa una de las claves compatibles con Google Cloud.
- En el campo OIDC n correspondiente, ingresa el nombre del campo específico de la IdP que deseas asignar, en formato CEL.
Para crear una condición de atributo, haz lo siguiente:
- Haz clic en Agregar condición:
En Condiciones del atributo, ingresa una condición en formato CEL, por ejemplo,
assertion.role == 'gcp-users'
. Esta condición de ejemplo garantiza que solo los usuarios con el rolgcp-users
puedan acceder mediante este proveedor.
Para crear el proveedor, haz clic en Enviar.
gcloud
Flujo de código
A fin de crear un proveedor de OIDC que use el flujo de código de autorización para el acceso web, 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" \
--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=globalReemplaza lo siguiente:
WORKFORCE_PROVIDER_ID
: Un ID de proveedor de grupos de identidades de personal único. El prefijogcp-
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 conhttps
; 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ónaud
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. A continuación, se muestra un ejemplo de una asignación de atributos: En este ejemplo, se asignan los atributos de IdPgoogle.subject=assertion.sub, google.groups=assertion.group1, attribute.costcenter=assertion.costcenter
subject
,group1
ycostcenter
en la aserción de OIDC a los atributosgoogle.subject
,google.groups
yattribute.costcenter
, respectivamente.ATTRIBUTE_CONDITION
: una condición de atributo; por ejemplo,assertion.role == 'gcp-users'
. Esta condición de ejemplo garantiza que solo los usuarios con el rolgcp-users
puedan acceder mediante este proveedor.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.
locations/global/workforcePools/enterprise-example-organization-employees
.Flujo implícito
Para crear un proveedor de OIDC que use el flujo implícito para el acceso web, 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 prefijogcp-
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 conhttps
; 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ónaud
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. A continuación, se muestra un ejemplo de una asignación de atributos: En este ejemplo, se asignan los atributos de IdPgoogle.subject=assertion.sub, google.groups=assertion.group1, attribute.costcenter=assertion.costcenter
subject
,group1
ycostcenter
en la aserción de OIDC a los atributosgoogle.subject
,google.groups
yattribute.costcenter
, respectivamente.ATTRIBUTE_CONDITION
: una condición de atributo; por ejemplo,assertion.role == 'gcp-users'
. Esta condición de ejemplo garantiza que solo los usuarios con el rolgcp-users
puedan acceder mediante este proveedor.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.
locations/global/workforcePools/enterprise-example-organization-employees
.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.Para la federación de OIDC, puedes usar
assertion.NAME
: una string igual al valor de la reclamación con nombre similar en la carga útil del token de ID.
Crea un proveedor de grupos de personal de SAML
En tu IdP de SAML, registra una aplicación nueva para la federación de identidades de personal de Google Cloud.
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
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.
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:
En la consola de Google Cloud, ve a la página Grupos de identidades de personal:
En la tabla grupos de identidad del personal, selecciona el grupo para el que deseas crear el proveedor.
En la tabla Proveedores, haz clic en Agregar proveedor.
En Selecciona un protocolo, selecciona SAML.
En Crea un proveedor de grupos, haz lo siguiente:
En Nombre del proveedor, ingresa un nombre para el proveedor.
Opcional: En Descripción, ingresa una descripción para el proveedor.
En Archivo de metadatos de IdP (XML), selecciona el archivo XML de metadatos que generaste antes en esta guía.
Asegúrate de que la opción Proveedor habilitado esté habilitada.
Haz clic en Continuar.
En Configurar proveedor, haz lo siguiente:
En Asignación de atributos, ingresa una expresión CEL para
google.subject
.Opcional: Para ingresar otras asignaciones, haz clic en Agregar asignación y, luego, ingresa otras asignaciones:
En este ejemplo, se asignan los atributos de IdPgoogle.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]
assertion.subject
,assertion.attributes['https://example.com/aliases']
yassertion.attributes.costcenter[0]
a los atributos de Google Cloudgoogle.subject
,google.groups
ygoogle.costcenter
, respectivamente.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ónassertion.attributes.ipaddr.startsWith('98.11.12.')
. Esta condición de ejemplo garantiza que solo los usuarios con una dirección IP que comienza con98.11.12.
puedan acceder mediante este proveedor de personal.Haga clic en Continuar.
Para crear el proveedor, haz clic en Enviar.
gcloud
Para configurar el proveedor de SAML a través de gcloud CLI, haz lo siguiente:
gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--display-name="DISPLAY_NAME" \
--description="DESCRIPTION" \
--idp-metadata-path=METADATA_FILE_PATH \
--attribute-mapping="ATTRIBUTE_MAPPING" \
--attribute-condition="ATTRIBUTE_CONDITION" \
--location=global
Reemplaza lo siguiente:
WORKFORCE_PROVIDER_ID
: El ID del proveedor del grupo de identidades de personal.WORKFORCE_POOL_ID
: El ID del grupo de identidades de personal.DISPLAY_NAME
: El nombre visible del proveedor; por ejemplo,idp-eu-employees
.DESCRIPTION
: La descripción del proveedor de grupos de Workforce Identity; por ejemplo,IdP for Partner Example Organization EU employees
.METADATA_FILE_PATH
: La ruta de acceso del archivo de metadatos de SAML.ATTRIBUTE_MAPPING
: Es la asignación de atributos; por ejemplo: En este ejemplo, se asignan los atributos de IdPgoogle.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]
assertion.subject
,assertion.attributes['https://example.com/aliases']
yassertion.attributes.costcenter[0]
a los atributos de Google Cloudgoogle.subject
,google.groups
ygoogle.costcenter
, respectivamente.ATTRIBUTE_CONDITION
: Una condición de atributo. Por ejemplo, para limitar el atributoipaddr
a un rango de IP determinado, puedes establecer la condiciónassertion.attributes.ipaddr.startsWith('98.11.12.')
. Esta condición de ejemplo garantiza que solo los usuarios con una dirección IP que comienza con98.11.12.
puedan acceder mediante este proveedor de personal.
El proveedor puede tardar unos minutos en comenzar a aceptar solicitudes.
Para la federación de SAML, puedes usar las siguientes palabras clave en las condiciones y la asignación de atributos:
assertion.subject
: una string igual al atributoNameID
en la aserción de SAML.assertion.attributes.NAME
: una lista de strings igual a los valores de los atributos con nombre similar en la aserción de SAML.
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.
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 elijasWORKFORCE_POOL_ID
: el ID del grupoWORKFORCE_PROVIDER_ID
: El ID del proveedor del grupo de identidades de personal-
KEY_SPECIFICATION
: la especificación de clave, que puede serrsa-2048
,rsa-3072
yrsa-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 claveWORKFORCE_POOL_ID
: el ID del grupoWORKFORCE_PROVIDER_ID
: El ID del proveedor del grupo de identidades de personalCERTIFICATE_PATH
: la ruta en la que se escribe el certificado, por ejemplo,saml-certificate.cer
osaml-certificate.pem
Configura tu IdP compatible con SAML 2.0 para emitir aserciones de SAML encriptadas
Configura tu IdP de SAML para usar el certificado público descargado del último paso a fin de encriptar las aserciones de SAML que emite. Consulta al equipo de IdP para obtener instrucciones específicas.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 claveWORKFORCE_POOL_ID
: el ID del grupoWORKFORCE_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:
- http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
- http://www.w3.org/2009/xmlenc11#rsa-oaep"
- http://www.w3.org/2001/04/xmlenc#rsa-1_5"
La federación de identidades de personal admite los siguientes algoritmos de encriptación de bloques:
- http://www.w3.org/2001/04/xmlenc#aes128-cbc
- http://www.w3.org/2001/04/xmlenc#aes192-cbc
- http://www.w3.org/2001/04/xmlenc#aes256-cbc
- http://www.w3.org/2009/xmlenc11#aes128-gcm
- http://www.w3.org/2009/xmlenc11#aes256-gcm
Requisitos de la clave de firma de SAML X.509
Las siguientes especificaciones de claves se aplican a las claves de firma de SAML X.509:
Una clave pública RSA que está unida en un certificado X.509 v3.
A continuación, se detallan los requisitos de validez del certificado:
notBefore
: una marca de tiempo que no sea superior a 7 días en el futuronotAfter
: una marca de tiempo que no sea más de 20 años en el futuro
Algoritmos recomendados:
- RSAwithSHA256 (tamaños de clave admitidos en bits: 2048, 3072, 4096)
- ECDSAwithSHA256
Un proveedor de grupos de Workforce Identity se puede configurar con un máximo de tres claves de firma en un momento determinado. Cuando existen varias claves, Google Cloud las itera y trata de usar cada clave no vencida para entregar una solicitud de intercambio de tokens.
Como práctica recomendada de seguridad, te recomendamos que no vuelvas a usar el mismo par de claves con otros servicios.
Administración de claves
Para actualizar las claves de firma del IdP, haz lo siguiente:
Crea un nuevo par de claves asimétricas y configura el proveedor de identidad SAML con el par de claves. En un principio, debes marcarlo como inactivo antes de activarlo en un paso posterior.
Descarga un documento XML de metadatos de SAML de tu IdP.
Actualiza el recurso del proveedor de grupos de Workforce Identity con el documento de metadatos de SAML. Cuando hay varias claves, Google Cloud itera a través de cada clave no vencida e intenta entregar una solicitud de intercambio de tokens.
Para actualizar el proveedor de grupos de Workforce Identity con los metadatos de SAML, ejecuta el siguiente comando.
gcloud iam workforce-pools providers update-saml WORKFORCE_PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --idp-metadata-path=SAML_METADATA_FILE_PATH \ --location=global
Reemplaza lo siguiente:
WORKFORCE_PROVIDER_ID
: El ID del proveedor del grupo de identidades de personalWORKFORCE_POOL_ID
: el ID del grupo de Workforce IdentitySAML_METADATA_FILE_PATH
: la ruta de acceso al archivo de metadatos de SAML
Espera a que se complete la operación del paso anterior (la operación se marca como completada) y, luego, en el IdP de SAML, activa la clave de firma nueva. La clave de firma anterior se marca como inactiva. Las aserciones emitidas por el IdP se firman con la clave nueva.
Los siguientes pasos son opcionales, pero recomendamos realizarlos como práctica recomendada:
- Borra la clave de firma antigua, ahora inactiva, de tu IdP.
- Descarga el documento XML de metadatos de SAML de tu IdP.
Actualiza el recurso del proveedor de grupos de Workforce Identity con el documento de metadatos de SAML. Google Cloud rechaza las aserciones que estén firmadas con la clave de firma vencida. Para actualizar el documento, ejecuta el siguiente comando:
gcloud iam workforce-pools providers update-saml WORKFORCE_PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --idp-metadata-path=SAML_METADATA_FILE_PATH \ --location=global
Reemplaza lo siguiente:
WORKFORCE_PROVIDER_ID
: El ID del proveedor del grupo de identidades de personalWORKFORCE_POOL_ID
: el ID del grupo de Workforce IdentitySAML_METADATA_FILE_PATH
: la ruta de acceso de los metadatos de SAML
Restricción de eliminación de claves
Google Cloud rechaza las aserciones firmadas con una clave borrada.
Representa a los usuarios del grupo de personal en las políticas de IAM
En la tabla siguiente, se muestran los identificadores principales que usas para otorgar roles a un solo usuario, a un grupo de usuarios, a los usuarios que realizan una reclamación particular o a todos los usuarios de un grupo de personal.
Identidades | Formato del identificador |
---|---|
Identidad única en un grupo de identidad de personal |
principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE
|
Todas las identidades del personal de un grupo |
principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/group/GROUP_ID
|
Todas las identidades del personal con un valor de atributo específico |
principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
|
Todas las identidades en un grupo de identidad de personal |
principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/*
|
Otorga roles de IAM a las principales
Puedes otorgar roles a las principales, como identidades individuales, grupos de identidades o un grupo completo.
Para otorgar un rol en un proyecto a una principal, ejecuta el siguiente comando:
gcloud projects add-iam-policy-binding PROJECT_ID \
--role="ROLE" \
--member="PRINCIPAL"
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyectoROLE
: el rol que se otorgaráPRINCIPAL
: el principal. Consulta Identificadores principales para la federación de identidades de personal.
En el siguiente ejemplo, el comando otorga Storage Admin (roles/storage.admin
) a todas las identidades dentro del grupo GROUP_ID
:
gcloud projects add-iam-policy-binding my-project \
--role="roles/storage.admin" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
Para obtener más información sobre el formato principal, consulta Identificadores principales de la federación de identidades de personal.
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?
- Obtén credenciales de corta duración para la federación de identidades de personal
- Administra proveedores de grupos de Workforce Identity
- Borra los usuarios de la federación de identidades de personal y sus datos
- Obtén información sobre qué productos de Google Cloud admiten la federación de identidades de personal.
- Configura el acceso de usuario a la consola (federada)