En esta guía, se describe cómo configurar la federación de Workforce Identity 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 Workforce Identity basada en Azure AD
- Configura la federación de Workforce Identity basada en Okta
Antes de comenzar
Debes tener configurada una organización de Google Cloud.
Enable the Identity and Access Management (IAM) and Resource Manager APIs.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
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.
Funciones obligatorias
A fin de obtener los permisos que necesitas para configurar la federación de Workforce Identity, 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.
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 Workforce Identity.
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 Workforce Identity
Para configurar la federación de Workforce Identity, crea un grupo de Workforce Identity y un proveedor de grupo de Workforce Identity.
Crea un grupo de Workforce Identity
Para crear el grupo, ejecuta el siguiente comando:
Consola
Para crear el grupo de Workforce Identity, 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 Nombre, ingresa el nombre del grupo. El ID de grupo se deriva de forma automática del nombre a medida que escribes.
Opcional: Para actualizar el ID, haz clic en Editar.
En Descripción, ingresa una descripción del grupo (opcional).
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 el Grupo habilitado esté activado.
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 \
--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.DESCRIPTION
: una descripción del grupo de Workforce Identity.SESSION_DURATION
: 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 Workforce Identity para permitir que tus usuarios de IdP accedan a Google Cloud. Puedes configurar el proveedor para usar el protocolo OIDC o SAML.
Crea un proveedor de grupos de personal de OIDC
Para crear un proveedor de grupos de Workforce Identity con el protocolo de 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:
Consola
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 Workforce Identity:
En la tabla Grupos de Workforce Identity, selecciona el grupo para el que deseas crear el proveedor.
En la tabla Proveedores, haz clic en Agregar proveedor.
En Selecciona un protocolo, selecciona Open ID Connect (OIDC).
En Crear un proveedor de grupos, haz lo siguiente:
- En Nombre, 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 que esté habilitado, asegúrate de que Proveedor habilitado esté activado.
- 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 del cliente de tu IdP.
En Comportamiento de las 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 atributo 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 muestre una string.
- 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 del IdP para 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.
- Obligatorio: En OIDC 1, ingresa el asunto del IdP; por ejemplo,
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 Workforce Identity:
En la tabla Grupos de Workforce Identity, selecciona el grupo para el que deseas crear el proveedor.
En la tabla Proveedores, haz clic en Agregar proveedor.
En Selecciona un protocolo, selecciona Open ID Connect (OIDC).
En Crear un proveedor de grupos, haz lo siguiente:
- En Nombre, 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 que esté habilitado, asegúrate de que Proveedor habilitado esté activado.
- 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 atributo 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 muestre una string.
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 del IdP para 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 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:
PROVIDER_ID
: un ID de proveedor único. El prefijogcp-
está reservado y no se puede usar en un ID de grupo ni de proveedor.WORKFORCE_POOL_ID
: el ID del grupo de Workforce Identity 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 atributo; por ejemplo:
En este ejemplo, se asignan los atributos de IdPgoogle.subject=assertion.sub, google.groups=assertion.group1, attribute.costcenter=assertion.costcenter
subject
,assertion.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” del 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 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:
PROVIDER_ID
: un ID de proveedor único. El prefijogcp-
está reservado y no se puede usar en un ID de grupo ni de proveedor.WORKFORCE_POOL_ID
: el ID del grupo de Workforce Identity 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 atributo; por ejemplo:
En este ejemplo, se asignan los atributos de IdPgoogle.subject=assertion.sub, google.groups=assertion.group1, attribute.costcenter=assertion.costcenter
subject
,assertion.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” del 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 ID de grupo ni de proveedor.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/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 Workforce Identity 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.
Consola
Para configurar el proveedor de SAML mediante la consola de Google Cloud, haz lo siguiente:
En la consola de Google Cloud, ve a la página Grupos de Workforce Identity:
En la tabla Grupos de Workforce Identity, 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, ingresa un nombre para el proveedor.
En Descripción, ingresa una descripción para el proveedor (opcional).
En Archivo de metadatos IDP (XML), selecciona el archivo XML de metadatos que generaste antes en esta guía.
Asegúrate de que el Proveedor habilitado esté habilitado.
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 Cloud,google.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 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.Haz 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 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:
PROVIDER_ID
: El ID del proveedor.WORKFORCE_POOL_ID
: El ID del grupo.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 los 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 Cloud,google.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 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 grupoPROVIDER_ID
: el ID del proveedor-
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 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 grupoPROVIDER_ID
: el ID del proveedorCERTIFICATE_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 PROVIDER_ID \ --location global
Reemplaza lo siguiente:
KEY_ID
: el nombre de la claveWORKFORCE_POOL_ID
: el ID del grupoPROVIDER_ID
: el ID del proveedor
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 no más de 7 días en el futuronotAfter
: Una marca de tiempo que no será más de 15 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 PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --idp-metadata-path=SAML_METADATA_FILE_PATH \ --location=global
Reemplaza lo siguiente:
PROVIDER_ID
: el ID del proveedorWORKFORCE_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 PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --idp-metadata-path=SAML_METADATA_FILE_PATH \ --location=global
Reemplaza lo siguiente:
PROVIDER_ID
: el ID del proveedorWORKFORCE_POOL_ID
: el ID del grupo de Workforce IdentitySAML_METADATA_FILE_PATH
: la ruta del archivo de metadatos 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
: la principal; consulta Representa usuarios de grupos de Workforce Identity en políticas de IAM.
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 de la principal, consulta Representa usuarios de grupos de Workforce Identity en las políticas de IAM.
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 Workforce Identity
- Administra proveedores de grupos de Workforce Identity
- Borra los usuarios de la federación de Workforce Identity y sus datos
- Obtén información sobre qué productos de Google Cloud admiten la federación de Workforce Identity.
- Configura el acceso de usuario a la consola (federada)