En este documento, se describe cómo autenticarte en Google Cloud mediante tokens a través de la federación de identidades para cargas de trabajo. Con la federación de Workload Identity, puedes otorgar a las cargas de trabajo de SAP locales o de múltiples nubes acceso a los recursos de Google Cloud sin usar una clave de cuenta de servicio. Puedes usar la federación de Workload Identity con Amazon Web Services (AWS) o con cualquier proveedor de identidad (IdP) que admita OpenID Connect (OIDC), como Microsoft Azure o SAML 2.0.
La federación Workload Identity sigue la especificación del intercambio de tokens de OAuth 2.0. Proporciona una credencial desde tu IdP al servicio de tokens de seguridad, que verifica la identidad en la credencial y, luego, muestra un token federado a cambio. Puedes usar este token para actuar como una cuenta de servicio y obtener un token de acceso de OAuth 2.0 de corta duración. El token de acceso de corta duración te permite llamar a cualquier API de Google Cloud a la que tenga acceso la cuenta de servicio.
Para la autenticación mediante tokens a través de la federación de Workload Identity, los pasos de configuración de alto nivel son los siguientes:
- Prepara el IdP externo
- En Google Cloud, configura la federación de Workload Identity.
- En Google Cloud, crea una cuenta de servicio.
- En Google Cloud, permite que la carga de trabajo externa actúe en nombre de la cuenta de servicio.
- En el SDK de ABAP para Google Cloud, implementa el código ABAP para recuperar tokens de seguridad de tu IdP.
- En el SDK de ABAP para Google Cloud, configura la clave del cliente.
No todos los productos de Google Cloud admiten la federación de Workload Identity. Antes de configurar la autenticación mediante la federación de Workload Identity, revisa la lista de productos compatibles y las limitaciones. Para obtener más información, consulta Federación de Workload Identity: productos admitidos y limitaciones.
Prepara el IdP externo
Debes preparar tu IdP para que tu carga de trabajo de SAP pueda obtener credenciales que se puedan intercambiar por un token de seguridad de Google OAuth 2.0.
Para preparar tu IdP externo, sigue los pasos según tu IdP:
- Si usas AWS o Azure como tu IdP, sigue las instrucciones para preparar tu IdP externo.
- Si usas otros IdP, sigue las instrucciones para preparar tu IdP externo.
Configura la federación de Workload Identity
En Google Cloud, configura el grupo y los proveedores de Workload Identity.
Configura un grupo de identidades, que es una entidad que te permite administrar identidades externas. También debes configurar un proveedor de grupo de Workload Identity, que es una entidad que describe una relación entre Google Cloud y tu IdP.
Para configurar la federación de Workload Identity, sigue los pasos según tu IdP externo:
- Si usas AWS o Azure como IdP, sigue las instrucciones para crear el grupo y el proveedor de Workload Identity.
- Si usas otros IdP, sigue las instrucciones para crear el grupo y el proveedor de Workload Identity.
Toma nota de lo siguiente:
- Número de proyecto: el número de proyecto del proyecto de Google Cloud en el que creaste el grupo de Workload Identity.
- ID del grupo: Un ID único que identifica el grupo de identidades para cargas de trabajo.
- ID de proveedor: Un ID que identifica al proveedor de grupos de identidades para cargas de trabajo.
Los necesitarás para la configuración de la clave del cliente del SDK de ABAP.
Crear una cuenta de servicio
En la consola de Google Cloud, crea una cuenta de servicio de IAM dedicada para acceder a las APIs de Google Cloud. Esta cuenta de servicio debe ser una principal en el proyecto de Google Cloud que contiene las APIs de Google Cloud que planeas consumir mediante el SDK.
En la consola de Google Cloud, habilita la API de credenciales de la cuenta de servicio de IAM, la API del servicio de tokens de seguridad y cualquier otra API compatible que planeas acceder mediante el SDK.
Para obtener información sobre cómo habilitar las APIs de Google Cloud, consulta Habilita las API.
Crea una cuenta de servicio que represente la carga de trabajo.
Otorga a la cuenta de servicio los roles de IAM necesarios para acceder a la funcionalidad de la API. Para comprender el requisito de rol para las APIs de Google Cloud, consulta la documentación de la API individual y sigue el principio de privilegio mínimo. Si deseas obtener más información sobre los roles predefinidos específicos de la API, consulta Encuentra funciones de IAM para las APIs de Google Cloud.
Permite que la carga de trabajo externa actúe en nombre de la cuenta de servicio
Para permitir que la carga de trabajo externa actúe en nombre de la cuenta de servicio, sigue estos pasos según tu IdP externo:
- Si usas AWS o Azure como IdP, sigue las instrucciones para permitir que la carga de trabajo externa actúe en nombre de la cuenta de servicio.
- Si usas otros IdP, sigue las instrucciones para permitir que la carga de trabajo externa actúe en nombre de la cuenta de servicio.
Implementa el código ABAP para recuperar tokens de seguridad de tu IdP
El SDK de ABAP para Google Cloud proporciona una clase abstracta /GOOG/CL_AUTH_WIF_BASE
, que tiene la lógica para recuperar los tokens de seguridad de OAuth 2.0 del servicio de tokens de seguridad y los tokens de acceso de OAuth 2.0 desde la API de credenciales de la cuenta de servicio de IAM. Como desarrollador, debes crear una clase secundaria en tu espacio de nombres que se herede de la clase abstracta /GOOG/CL_AUTH_WIF_BASE
.
Para invocar Cloud Functions desde el SDK de ABAP para Google Cloud mediante la federación de identidades para cargas de trabajo, el SDK proporciona otra clase abstracta /GOOG/CL_AUTH_WIF_ID_TOKEN
. Si configuras la autenticación mediante la federación de identidades para cargas de trabajo, debes crear una clase secundaria más en tu espacio de nombres que se hereda de la clase abstracta /GOOG/CL_AUTH_WIF_ID_TOKEN
. Debes especificar esta clase secundaria en el campo Clase de autorización mientras configuras la clave del cliente para invocar Cloud Functions.
Asegúrate de implementar el método GET_EXT_IDP_TOKEN
en la clase secundaria y escribir la lógica para obtener el token de seguridad de tu IdP. Propaga los siguientes campos:
CV_TOKEN
: el token recuperado de tu IdP en el formatostring
.CV_TOKEN_TYPE
: el tipo de token de seguridad recuperado de tu IdP. Los tipos de tokens compatibles son los siguientes:urn:ietf:params:oauth:token-type:jwt
urn:ietf:params:oauth:token-type:id_token
urn:ietf:params:aws:token-type:aws4_request
urn:ietf:params:oauth:token-type:access_token
urn:ietf:params:oauth:token-type:saml2
Luego, los valores propagados en CV_TOKEN
y CV_TOKEN_TYPE
se usan mediante métodos de la clase abstracta /GOOG/CL_AUTH_WIF_BASE
para intercambiar y recuperar el token final de OAuth 2.0, que se usa en las llamadas a la API.
En el siguiente ejemplo, se muestran las implementaciones de muestra del método GET_EXT_IDP_TOKEN
para otros proveedores de servicios en la nube, como AWS y Azure.
AWS
Azure
Configura la clave de cliente
-
En la GUI de SAP, ejecuta el código de transacción
/GOOG/SDK_IMG
.Como alternativa, ejecuta el código de transacción
SPRO
y, luego, haz clic en IMG de referencia de SAP. - Haz clic en el SDK de ABAP para Google Cloud > Configuración básica > Configurar clave de cliente.
- Haz clic en Entradas nuevas.
Ingresa los valores para los siguientes campos:
Campo Descripción Nombre de la clave de Google Cloud Especifica un nombre de la configuración de la clave de cliente. Nombre de la cuenta de servicio de Google Cloud Especifica el nombre de la cuenta de servicio, en formato de dirección de correo electrónico, que se creó para acceder a las APIs de Google Cloud en el paso Crea una cuenta de servicio. Por ejemplo: sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com
.Permiso de Google Cloud Deja este campo en blanco. Identificador de proyecto de Google Cloud Especifica el ID del proyecto de Google Cloud en el que creaste el grupo de Workload Identity. Nombre del comando Deja este campo en blanco. Clase de autorización Especifica la clase secundaria, que contiene la implementación de la clase /GOOG/CL_AUTH_WIF_BASE
. Si deseas obtener más información, consulta Implementa el código ABAP para recuperar tokens de seguridad de tu IdP.Almacenamiento en caché de tokens Deja este campo en blanco. Segundos de actualización de los tokens Deja este campo en blanco. Parámetro de autorización 1 Especifica el ID del grupo de identidades de la carga de trabajo. Parámetro de autorización 2 Especifica el ID del proveedor de Workload Identity. Guarda la entrada.
Obtenga asistencia
Si necesitas ayuda para resolver problemas con el SDK de ABAP para Google Cloud, haz lo siguiente:
Consulta la guía de solución de problemas del SDK de ABAP para Google Cloud.
Haz tus preguntas y analiza el SDK de ABAP para Google Cloud con la comunidad en Cloud Forums.
Recopila toda la información de diagnóstico disponible y comunícate con el servicio de Atención al cliente de Cloud. Si deseas obtener más información para comunicarte con el equipo de Atención al cliente de Cloud, consulta Obtén asistencia para SAP en Google Cloud.