Ejemplos de federación de identidad de carga de trabajo
La federación de identidad de carga de trabajo para las conexiones Google BigQuery y Google Cloud Storage está soportada por cualquier proveedor de identidad que admita OpenID Connect (OIDC) o SAML 2.0.
Estos ejemplos son para AWS con Amazon Cognito y para Microsoft Azure.
AWS
Configurar federación de identidad de carga de trabajo en Amazon Cognito
Cree un proveedor de identidad OIDC (IdP) con Cognito siguiendo las instrucciones de la documentación de Amazon:
- Paso 1. Crear una agrupación de usuarios
- Paso 2. Añadir un cliente de app y configurar la interfaz de usuario alojada
Para obtener más información, consulte Primeros pasos con Amazon Cognito .
Cree un grupo y un usuario en el IdP con la consola de AWS . O bien, puede utilizar la CLI de AWS :
CLIENT_ID=YourClientId ISSUER_URL=https://cognito-idp.YourRegion.amazonaws.com/YourPoolId POOL_ID=YourPoolId USERNAME=YourUsername PASSWORD=YourPassword GROUPNAME=YourGroupName aws cognito-idp admin-create-user --user-pool-id $POOL_ID --username $USERNAME --temporary-password Temp-Pass1 aws cognito-idp admin-set-user-password --user-pool-id $POOL_ID --username $USERNAME --password $PASSWORD --permanent aws cognito-idp create-group --group-name $GROUPNAME --user-pool-id $POOL_ID aws cognito-idp admin-add-user-to-group --user-pool-id $POOL_ID --username $USERNAME --group-name $GROUPNAME
En la consola de AWS , pulse Ver IU alojada e inicie sesión en la IU de IDP en un navegador para asegurarse de que se resuelve cualquier nuevo desafío de contraseña.
Obtenga un IdToken con la CLI de AWS :
aws cognito-idp admin-initiate-auth --auth-flow ADMIN_USER_PASSWORD_AUTH --client-id $CLIENT_ID --auth-parameters USERNAME=$USERNAME,PASSWORD=$PASSWORD --user-pool-id $POOL_ID
Para obtener más información sobre el flujo de autenticación de los grupos de usuarios de Amazon Cognito, consulte AdminInitiateAuth .
Configurar Google Cloud para Amazon Cognito
Cuando cree el proveedor en Google Cloud, utilice estos valores:
- Establezca Emisor (URL) en
https://cognito-idp.YourRegion.amazonaws.com/YourPoolId
. - Establezca Audiencia permitida en el ID de cliente.
- En Correlación de atributos, correlacione
google.subject
conassertion.sub
.
Crear la conexión con la federación de identidad de carga de trabajo de Amazon Cognito
Elija el método de autenticación Workload Identity Federation with access token .
Para el campo Audiencia del servicio de señales de seguridad , utilice este formato:
//iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
Para el Correo electrónico de cuenta de servicio, especifique la dirección de correo electrónico de la cuenta de servicio de Google que se va a suplantar. Para obtener más información, consulte Crear una cuenta de servicio para la carga de trabajo externa .
(Opcional) Especifique un valor para el Tiempo de vida de señal de cuenta de servicio en segundos. El tiempo de vida predeterminado de una señal de acceso de cuenta de servicio es de una hora. Para obtener más información, consulte Credenciales de origen URL .
Establezca Formato de señal en
Text
Establezca Tipo de señal en
ID token
Azure
Configurar federación de identidad de carga de trabajo en Azure
Establezca un URI de ID de aplicación para la aplicación. Puede utilizar el URI de ID de aplicación predeterminado (
api://APPID
) o especificar un URI personalizado.
Puede omitir las instrucciones sobre la creación de una identidad gestionada.Siga las instrucciones para crear un nuevo secreto de aplicación para obtener un token de acceso con la API REST.
Para obtener más información, consulte Configurar la federación de identidades de carga de trabajo con Azure .
Configure Google Cloud para Azure
- Siga las instrucciones: Configurar la federación de identidad de carga de trabajo .
- Siga las instrucciones: Cree el grupo de identidades de carga de trabajo y el proveedor . Cuando configure el proveedor, utilice estos valores:
- Establezca Emisor (URL) en
https://sts.windows.net/TENANTID/
, dondeTENANTID
es el ID de arrendatario que ha recibido al configurar Azure Active Directory. - Establezca la Audiencia permitida en el ID de cliente que ha recibido al configurar el registro de la aplicación. O bien, especifique otro URI de ID de aplicación que haya utilizado al configurar la identidad de aplicación en Azure.
- En Correlación de atributos, correlacione
google.subject
conassertion.sub
.
- Establezca Emisor (URL) en
Crear la conexión con la federación de identidad de carga de trabajo de Azure
Elija uno de estos métodos de autenticación:
- Federación de identidades de carga de trabajo con señal de acceso
- Federación de identidad de carga de trabajo con URL de señal
Para el campo de audiencia del Servicio de token de seguridad , utilice el formato que se describe en Autenticar una carga de trabajo que utiliza la API REST . Por ejemplo:
//iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
Para el Correo electrónico de cuenta de servicio, especifique la dirección de correo electrónico de la cuenta de servicio de Google que se va a suplantar. Para obtener más información, consulte Crear una cuenta de servicio para la carga de trabajo externa .
(Opcional) Especifique un valor para el Tiempo de vida de señal de cuenta de servicio en segundos. El tiempo de vida predeterminado de una señal de acceso de cuenta de servicio es de una hora. Para obtener más información, consulte Credenciales de origen URL .
Si ha especificado Workload Identity Federation con URL de señal, utilice estos valores:
- URL de señal:
https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token
. Este URL captará una señal de Azure. - Método HTTP:
POST
- Cabeceras HTTP:
"Content-Type"="application/x-www-form-urlencoded;charset=UTF-8","Accept"="application/json"
- Cuerpo de solicitud:
grant_type=client_credentials&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&scope=APPLICATION_ID_URI/.default
- URL de señal:
Para Tipo de señal, seleccione Señal de ID para un proveedor de identidad que cumpla con la especificación de OpenID Connect (OIDC). Para obtener más información, consulte Tipos de token .
La opción Formato de señal depende de la selección de autenticación:
- Federación de identidades de carga de trabajo con señal de acceso: seleccione Texto si ha proporcionado el valor de señal sin formato en el campo Señal de acceso .
- Federación de identidades de carga de trabajo con URL de señal: para obtener una respuesta del URL de señal en formato JSON con la señal de acceso que se devuelve en un campo denominado
access_token
, utilice estos valores:- Formato de señal:
JSON
- Nombre de campo de señal:
access_token
- Formato de señal: