En este documento, se muestra cómo configurar la federación de identidades de personal con PingOne Advanced Identity Cloud (AIC) como proveedor de identidad (IdP) y administrar el acceso aCloud de Confiance. Después de configurar el IdP de AIC de PingOne, los usuarios federados pueden acceder a los servicios de Cloud de Confiance que admiten la federación de identidades de personalcon el protocolo SAML 2.0.
Antes de comenzar
- Asegúrate de configurar una organización de Cloud de Confiance .
- Establecer la variable de entorno
GOOGLE_CLOUD_UNIVERSE_DOMAINcomos3nsapis.fr. -
Instala Google Cloud CLI y, luego, accede a gcloud CLI con tu identidad federada. Después de acceder, inicializa Google Cloud CLI con el siguiente comando:
gcloud init - En Native Consoles > Access Management, ve a Realms > REALM_NAME > Dashboard y haz clic en SAML Applications.
- Haz clic en Add Entity Provider > Hosted.
Ingresa un ID de entidad. Registra este valor para usarlo más adelante.
- Verifica que el valor de la URL base del proveedor de entidades sea correcto. Advanced Identity Cloud usa este valor para todos los extremos relacionados con SAML 2.0.
- En la sección Meta Aliases, proporciona un valor compatible con URLs en la propiedad Identity Provider Meta Alias. Este alias debe ser único en el círculo de confianza.
- Haz clic en Crear.
- En la pestaña Procesamiento de aserciones, en la sección Asignador de atributos, asigna nombres de atributos de SAML a nombres de atributos locales. Los nombres de los atributos de SAML son los que se usan en una aserción.
- Haz clic en Agregar o Actualizar para cada asignación.
- Haz clic en Guardar cambios.
A través de REST
Ejecuta el comando siguiente:
curl --output METADATA_XML \ "https://TENANT_ENV_FQDN/am/ExportSamlMetadata?entityid=ENTITY_ID&realm=/REALM"En un navegador
Abre la URL de metadatos de tu entorno de arrendatario en un navegador para descargar el archivo en formato XML:
https://TENANT_ENV_FQDN/am/ExportSamlMetadata?entityid=ENTITY_ID&realm=/REALM- Guarda el archivo XML en tu máquina local.
Prepara el XML de metadatos del SP de Cloud de Confiance . Usa la siguiente plantilla y reemplaza los valores de marcador de posición:
<?xml version="1.0" encoding="UTF-8"?> <md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID"> <md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat> <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID" index="0" isDefault="true"/> </md:SPSSODescriptor> </md:EntityDescriptor>Importa los metadatos de una de las siguientes maneras:
En la consola
- En la consola del administrador de PingOne AIC, navega a SAML Applications.
- Haz clic en Add Entity Provider > Remote.
- Sube el archivo XML de metadatos de Cloud de Confiance SP que acabas de crear.
- Haz clic en Crear.
A través de REST
- Convierte los metadatos XML en una cadena codificada en base64url.
- Obtén un token de acceso.
Ejecuta el comando siguiente:
curl --request POST \ --header 'authorization: Bearer ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --header 'Accept-API-Version: resource=1.0' \ --data-raw '{"standardMetadata": "BASE64URL_ENCODED_METADATA"}' \ 'https://TENANT_ENV_FQDN/am/json/realms/root/realms/alpha/realm-config/saml2/remote?_action=importEntity'
- Navega a Realms > REALM_NAME > Applications > Federation > Circles of Trust.
- Haz clic en Agregar círculo de confianza.
- Ingresa un nombre y haz clic en Crear.
- En la página Circle of Trust, en la propiedad Entity Providers, selecciona tu IdP alojado y el SP remoto Cloud de Confiance .
- Haz clic en Guardar cambios.
Para crear un proveedor de grupo de identidades para trabajadores de SAML, debes asegurarte de que los metadatos de tu proveedor de identidad incluyan al menos el ID de entidad de SAML, la URL de inicio de sesión único y una clave pública de firma. Para ello, sigue estos pasos:
gcloud
Guarda los metadatos de SAML de tu app de PingOne AIC.
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=globalReemplaza lo siguiente:
WORKFORCE_PROVIDER_ID: Es un ID de proveedor.WORKFORCE_POOL_ID: El ID del grupo de Workforce Identity.DISPLAY_NAME: Es un nombre visible.DESCRIPTION: Una descripción.XML_METADATA_PATH: Es la ruta de acceso al archivo de metadatos con formato XML que exportaste desde PingOne AIC.ATTRIBUTE_MAPPING: la asignación de atributos; por ejemplo,google.subject=assertion.subject,google.groups=assertion.attributes.groups,attribute.department=assertion.attributes.department[0]ATTRIBUTE_CONDITION: una condición de atributo opcional; por ejemplo, para limitar el atributoipaddra un rango de IP determinado, puedes establecer la condiciónassertion.ipaddr.startsWith('98.11.12.').
Para obtener más información, consulta Asignación de atributos.
Con este comando, se asigna
subject,groupsydepartmenten la aserción de SAML a los atributosgoogle.subject,google.groupsyattribute.department, respectivamente. La condición del atributo también garantiza que solo los usuarios dentro de un rango de IP determinado puedan acceder mediante este proveedor de personal.
Console
Para configurar el proveedor de SAML con la consola de Cloud de Confiance , haz lo siguiente:
- En la consola de Cloud de Confiance , ve a la página Grupos de identidades de personal: Ir a Grupos de identidades de personal
- En la tabla Workforce Identity Pools, selecciona el grupo para el que deseas crear el proveedor.
- En la sección Proveedores, haz clic en Agregar proveedor.
- En la lista Selecciona un proveedor de identidad, elige Proveedor de identidad genérico.
- En Selecciona un protocolo de autenticación, selecciona SAML.
- En la sección Crear un proveedor, 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 exportaste desde PingOne AIC.
- Asegúrate de que la opción Proveedor habilitado esté habilitada.
- Haz clic en Continuar.
- En la sección Comparte la información de tu proveedor, haz clic en Continuar.
En la sección Configurar proveedor, haz lo siguiente:
- En Asignación de atributos, ingresa una expresión CEL para
google.subject(por ejemplo,assertion.subject). 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]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
ipaddra 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.
- En Asignación de atributos, ingresa una expresión CEL para
Para activar el registro de auditoría detallado, en Registro detallado, haz clic en el botón de activación Habilitar el registro de auditoría del valor de atributos.
Para crear el proveedor, haz clic en Enviar.
TEST_PROJECT_ID: Es el ID del proyecto.WORKFORCE_POOL_ID: El ID del grupo de Workforce Identity.DEPARTMENT_VALUE: Es el valorattribute.departmentasignado.TEST_PROJECT_ID: Es el ID del proyecto.WORKFORCE_POOL_ID: El ID del grupo de Workforce Identity.GROUP_ID: Un grupo en la reclamacióngoogle.groupsasignada.-
Ve a la página de acceso de la consola (federada).
-
Ingresa el nombre del proveedor, que tiene el siguiente formato:
locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Cuando se te solicite, ingresa tus credenciales de AIC de PingOne. WORKFORCE_POOL_ID: Es el ID del grupo de federación de identidades de personal.WORKFORCE_PROVIDER_ID: Es el ID del proveedor de la federación de identidades de personal.-
LOGIN_CONFIG_PATH: Es la ruta de acceso en la que se escribirá el archivo de configuración de acceso. Por ejemplo,login-config.json -
Establece la variable de entorno
CLOUDSDK_AUTH_LOGIN_CONFIG_FILEen la ruta de acceso del archivo de configuración de acceso. -
Ejecuta el comando siguiente:
gcloud auth login
- Gcloud CLI hace referencia a la variable de entorno para encontrar el archivo de configuración de acceso y, luego, inicia el proceso de autenticación. Sigue el flujo basado en el navegador para autenticar y autorizar gcloud CLI a acceder a los recursos en tu nombre para futuros comandos.
-
Establece la propiedad
auth/login_config_filede la configuración activa de la gcloud CLI en la ruta de acceso del archivo de configuración de acceso con el siguiente comando:gcloud config set auth/login_config_file LOGIN_CONFIG_PATH
-
Ejecuta el comando siguiente:
gcloud auth login
- Gcloud CLI hace referencia a la propiedad de configuración para encontrar el archivo de configuración de acceso y, luego, inicia el proceso de autenticación. Sigue el flujo basado en el navegador para autenticar y autorizar gcloud CLI a acceder a los recursos en tu nombre para futuros comandos.
-
Si usaste la marca
--activatecuando creaste el archivo de configuración de acceso, ejecuta el siguiente comando:gcloud auth login
-
Si no usaste la marca
--activatecuando creaste el archivo de configuración de acceso, ejecuta el siguiente comando:Linux y macOS
gcloud auth login \ --login-config=LOGIN_CONFIG_PATH
Windows (PowerShell)
gcloud auth login ` --login-config=LOGIN_CONFIG_PATH
Reemplaza LOGIN_CONFIG_PATH por la ruta de acceso del archivo de configuración de acceso.
- Haz que un usuario acceda a tu aplicación de PingOne AIC y obtén la respuesta de SAML.
- Guarda la respuesta SAML que muestra PingOne AIC en una ubicación segura de tu máquina local. Almacena la ruta de acceso en una variable de entorno, por ejemplo,
SAML_ASSERTION_PATH=/tmp/saml_assertion.xml. Genera un archivo de configuración:
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.jsonReemplaza lo siguiente:
SAML_ASSERTION_PATH: la ruta de acceso del archivo de aserción de SAML.PROJECT_ID: Es 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" }Para acceder a gcloud CLI con el intercambio de tokens, ejecuta el siguiente comando:
gcloud auth login --cred-file=config.jsonLuego,
gcloudintercambia de manera transparente tus credenciales de PingOne AIC por tokens de acceso temporales de Cloud de Confiance , lo que te permite realizar otras llamadas degclouda Cloud de Confiance. El resultado es similar a lo siguiente:Authenticated with external account user credentials for: [principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/USER_ID].Para enumerar las cuentas con credenciales y la cuenta activa, ejecuta el siguiente comando:
gcloud auth list- Ve a la página Cloud Storage.
- Verifica que puedas ver la lista de buckets existentes para el proyecto
TEST_PROJECT_ID. - Borra los usuarios de la federación de identidades de personal y sus datos.
- Obtén información sobre qué Cloud de Confiance productos admiten la federación de identidades de personal.
- Configura el acceso de usuario a la consola (federada).
Crea un IdP alojado
Usa atributos
En esta sección, se describe cómo usar los atributos de la aserción SAML.
En los siguientes ejemplos, los atributos de la aserción de SAML se asignan a atributos locales:
| Atributo de SAML | Atributo local |
|---|---|
IDPEmail |
mail |
FirstName |
givenName |
groups |
groups |
Configura los atributos obligatorios en la sección de asignación de atributos. Asignarás estos atributos cuando crees el proveedor de grupos de identidades de personal más adelante en esta guía.
Exporta metadatos del proveedor
Puedes acceder a los metadatos de SAML 2.0 de tu proveedor alojado de una de las siguientes maneras:
Importa Google como un SP remoto
Crea un círculo de confianza (CoT)
Crea el proveedor de grupos de identidades de personal de PingOne AIC
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 Cloud de Confiance. Puedes configurar el proveedor para que use el protocolo SAML.
Crea un proveedor de grupos de identidades de personal de SAML
Administra el acceso a los recursos de Cloud de Confiance
En esta sección, se muestra cómo administrar el acceso a los recursos de Cloud de Confiance para los usuarios de PingOne AIC.
El proyecto de muestra que se usa en esta guía puede ser diferente del proyecto que usaste para configurar la federación de identidades de personal.
Puedes administrar roles para identidades individuales, un grupo de identidades o un grupo completo. Para obtener más información, consulta Identificadores principales de personal para políticas de permiso.
Usa atributos de departamento asignados
Para otorgar el rol de administrador de almacenamiento (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:
Usa grupos asignados
Para otorgar el rol de administrador de almacenamiento (roles/storage.admin) a todas las identidades dentro del grupo GROUP_ID 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/group/GROUP_ID"
Reemplaza lo siguiente:
Accede y prueba el acceso
En esta sección, accederás como usuario del grupo de identidades de personal y probarás tu acceso.
Acceder
acceso a la consola (federada)
Para acceder a la consola de Cloud de Confiance by S3NS Workforce Identity Federation, también conocida como consola (federada), haz lo siguiente:
Acceso con el navegador de la Google Cloud CLI
Para acceder a la gcloud CLI con un flujo de acceso basado en el navegador, haz lo siguiente:
Ejecuta el siguiente comando para crear un archivo de configuración de acceso:
Linux y macOS
gcloud iam workforce-pools create-login-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --output-file=LOGIN_CONFIG_PATH
Windows (PowerShell)
gcloud iam workforce-pools create-login-config ` locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID ` --output-file=LOGIN_CONFIG_PATH
Reemplaza lo siguiente:
El archivo de configuración de acceso contiene los extremos que usa 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 identidades de personal. El archivo no contiene información confidencial.
El contenido del archivo de configuración de acceso se ve de la siguiente manera:
{ "universe_domain": "s3nsapis.fr", "universe_cloud_web_domain": "cloud.s3nscloud.fr", "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.s3nscloud.fr/authorize", "token_url": "https://sts.s3nsapis.fr/v1/oauthtoken", "token_info_url": "https://sts.s3nsapis.fr/v1/introspect" }
Apunta al archivo de configuración de acceso con una variable de entorno, una propiedad en la configuración activa de la gcloud CLI o úsalo directamente con el comando gcloud auth login:
Variable de entorno
Para usar el archivo de configuración de acceso con una variable de entorno, completa las siguientes instrucciones:
Para dejar de usar el archivo de configuración de acceso para los comandos gcloud auth login, borra la variable de entorno CLOUDSDK_AUTH_LOGIN_CONFIG_FILE.
Configuración de gcloud CLI
Para usar el archivo de configuración de acceso con una propiedad de configuración de gcloud CLI, completa las siguientes instrucciones:
Para dejar de usar el archivo de configuración de acceso para los comandos de gcloud auth login, anula la configuración de la propiedad con el siguiente comando:
gcloud config unset auth/login_config_file
gcloud auth login
Para usar el archivo de configuración de acceso directamente con el comando gcloud auth login, sigue estas instrucciones:
El comando gcloud auth login almacena las credenciales de acceso en tu directorio principal. La principal autenticada se convierte en la principal activa en tu configuración activa de gcloud CLI. A menos que se anulen, la gcloud CLI usa estas credenciales almacenadas para acceder a Cloud de Confiance by S3NS.
Acceso sin interfaz gráfica de la gcloud CLI
Para acceder a PingOne AIC con la gcloud CLI a través del protocolo SAML, haz lo siguiente:
Prueba el acceso
Puedes acceder a los servicios de Cloud de Confiance que admiten la federación de identidades de personal a los que se te otorgó 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 o grupo específico para el proyecto TEST_PROJECT_ID. Para probar que tienes acceso, enumera los buckets de Cloud Storage.
acceso a la consola (federada)
Para verificar tu acceso en la consola (federada), haz lo siguiente:
gcloud CLI
Para enumerar los buckets y los objetos de Cloud Storage para el proyecto al que tienes acceso, ejecuta el siguiente comando:
gcloud alpha storage ls --project="TEST_PROJECT_ID"
La principal debe tener el permiso serviceusage.services.use en el proyecto establecido en la sesión de la gcloud CLI: PROJECT_ID.