Autentica mediante tokens web JSON

En este documento, se muestra cómo configurar la autenticación para acceder a las APIs de Google Cloud cuando tu sistema SAP se ejecuta en un host local, en otro proveedor de servicios en la nube o en otro entorno fuera de Google Cloud administrados por SAP a través del programa SAP RISE. Para la autenticación en Google Cloud, usa tokens web JSON (JWT) firmados por Google Cloud para obtener tokens de acceso de Google Cloud.

Los pasos de la configuración de alto nivel son los siguientes:

Crea una cuenta de servicio para la recuperación de tokens basados en JWT

En la autenticación basada en JWT en Google Cloud, el SDK de ABAP para Google Cloud necesita una cuenta de servicio de IAM.

Crear una cuenta de servicio

Crea una cuenta de servicio y otórgale el rol de IAM Service Account Token Creator.

Para crear una cuenta de servicio, ejecuta los siguientes pasos:

  1. En la consola de Google Cloud, crea una cuenta de servicio de IAM para la recuperación de tokens basada en JWT.

    Ir a Cuentas de servicio

    Para obtener información sobre cómo crear una cuenta de servicio, consulta Crea una cuenta de servicio.

  2. Otorga el rol Service Account Token Creator a la cuenta de servicio. Para obtener instrucciones, consulta Otorga un solo rol.

Crea una clave de cuenta de servicio

Debes crear una clave de cuenta de servicio P12 para la cuenta de servicio que se usa en la recuperación de tokens basados en JWT.

Para crear una clave cuenta de servicio, completa los siguientes pasos:

  1. En la consola de Google Cloud, ve a la página Cuentas de servicio de IAM y administración.

    Ir a Cuentas de servicio

  2. Selecciona tu proyecto de Google Cloud.

  3. Haz clic en la dirección de correo electrónico de la cuenta de servicio que creaste para la recuperación de tokens basados en JWT en la sección anterior, Crea una cuenta de servicio.

  4. En el nombre de la cuenta de servicio, haz clic en la pestaña Claves.

  5. Haz clic en el menú desplegable Agregar clave y, luego, selecciona Crear clave nueva para crear una clave de cuenta de servicio.

  6. Acepta P12 como el tipo de clave y haz clic en Crear.

    Se descarga una clave privada en la computadora.

  7. Toma nota de la contraseña del archivo de claves privadas, notasecret.

    Proporciona la clave privada y la contraseña a tu administrador de SAP para importar la clave privada a STRUST, como se describe en Importa la clave de la cuenta de servicio a STRUST.

Especifica la cuenta de servicio para la firma de JWT

Si creaste la cuenta de servicio para la firma de JWT en un proyecto diferente del que contiene las APIs de Google Cloud, debes especificar la cuenta de servicio en el sistema host de SAP.

Si creaste la cuenta de servicio en el mismo proyecto que contiene las APIs de Google Cloud, puedes omitir este paso.

Para especificar la cuenta de servicio de la firma de JWT, sigue estos pasos:

  1. 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.

  2. Haz clic en SDK de ABAP para Google Cloud > Configuración básica > Configurar parámetros.

  3. Haz clic en Entradas nuevas.

  4. En el campo Nombre del parámetro, ingresa JWT_SERVC_ACCT. La descripción del parámetro se propaga automáticamente.

  5. En el campo Valor del parámetro, ingresa el nombre de la cuenta de servicio.

  6. Guarda la entrada nueva.

Establece la configuración de seguridad para Google Cloud en el sistema de host de SAP

Para habilitar la firma de JWT para la cuenta de servicio que creaste para la recuperación de tokens basados en JWT, debes establecer la configuración de seguridad para Google Cloud en el sistema host de SAP.

Crea una nueva aplicación de almacenamiento y reenvío seguro (SSF)

Cada entrada de SSFAPPLIC te permite guardar una sola clave de cuenta de servicio. Para guardar claves de cuenta de servicio de varios proyectos, debes crear varias entradas SSFAPPLIC siguiendo los mismos pasos.

Para crear una nueva entrada en la tabla SSFAPPLIC, sigue estos pasos:

  1. En la GUI de SAP, ingresa el código de transacción SE16.
  2. En el campo Nombre de la tabla, ingresa SSFAPPLIC y crea una entrada nueva.
  3. En el campo APPLIC, ingresa un nombre para tu aplicación de SSF, como ZG_JWT.
  4. Selecciona todos los demás campos, excepto B_INCCERTS, B_DETACHED, B_ASKPWD y B_DISTRIB.
  5. En el campo DESCRIBIR, ingresa JWT Signature for GCP.
  6. Guarda la entrada nueva.

    Esta entrada se convierte en un nodo nuevo en la transacción STRUST, en la que importas la clave de la cuenta de servicio.

Habilita el nodo STRUST

Usa la transacción SSFA para habilitar el nodo STRUST para JWT Signature for GCP.

Para habilitar el nodo STRUST, realiza los siguientes pasos:

  1. En la GUI de SAP, ingresa el código de transacción SSFA.
  2. Haz clic en Entradas nuevas.
  3. En la lista desplegable Aplicación de SSF, selecciona JWT Signature for GCP. Esta es la entrada nueva que creaste en la tabla SSFAPPLIC.

    Los parámetros de SSF específicos de la aplicación se propagan de forma automática.

  4. Guarda la entrada nueva.

    Se habilita un nodo nuevo SSF JWT Signature for GCP en la transacción STRUST.

Importa la clave de la cuenta de servicio a STRUST

Para importar la clave de la cuenta de servicio a STRUST, realiza los siguientes pasos:

  1. En la GUI de SAP, ingresa el código de transacción STRUST.

    Verifica que el nodo nuevo en la transacción STRUST sea SSF JWT Signature for GCP.

  2. Importa el archivo de claves privadas:

    1. Selecciona PSE > Importar en la barra de menú.
    2. Según el sistema SAP, selecciona la clave privada adecuada:
      • SAP S/4HANA
        1. Selecciona la clave privada P12.
        2. Ingresa la contraseña del archivo notasecret y, luego, haz clic en Aceptar.
      • SAP ECC
        1. Selecciona la clave privada PSE. Debes convertir la clave privada P12 que descargaste antes en una clave privada PSE. Para obtener más información sobre cómo convertir una clave P12 en una clave PSE, consulta Convierte una clave P12 en clave PSE.
        2. Ingresa el PIN del archivo que creaste durante la conversión de clave privada de la clave P12 a la clave PSE y, luego, haz clic en Aceptar.
  3. Selecciona PSE > Guardar como.

  4. Selecciona Aplicación de SSF y, en el campo de entrada correspondiente, selecciona el nodo de aplicación de SSF nuevo que creaste en Crea una aplicación nueva de almacenamiento y reenvío de seguridad (SSF).

  5. Guarda la entrada nueva.

    La clave del servicio se adjunta al nodo de aplicación SSF JWT Signature for GCP de SSF.

Convierte la clave privada P12 en clave PSE

Si tu sistema SAP es SAP NetWeaver 7.0x (SAP ECC), entonces debes convertir la clave P12 en una clave PSE.

Para convertir la clave P12 en una clave PSE, sigue estos pasos:

  1. Ve a la ruta:

    /usr/sap/SID/SYS/exe/run/

    Reemplaza SID por el ID del sistema SAP.

  2. Ejecuta el siguiente comando después de reemplazar los marcadores de posición:

    sapgenpse import_p12 -p PSE_PATH_AND_FILE_NAME P12_PATH_AND_FILE_NAME.p12

    Reemplaza lo siguiente:

    • PSE_PATH_AND_FILE_NAME: especifica la ruta y el nombre del archivo PSE.
    • P12_PATH_AND_FILE_NAME: especifica la ruta y el nombre para el archivo de claves P12.
  3. Ingresa la contraseña del archivo de claves privadas P12, notasecret.

  4. Crea un PIN nuevo para la clave privada PSE y vuelve a ingresarlo.

  5. Toma nota del PIN, ya que debes proporcionarlo cuando importes el archivo de claves privadas de PSE a STRUST.

Para obtener información de SAP sobre cómo convertir una clave P12 en una clave PSE, consulta estos vínculos:

Habilita las APIs de Google Cloud

En la consola de Google Cloud, habilita la API de Service Account Credentials de IAM para tu proyecto de Google Cloud que requiere autenticación. Junto con la API de credenciales de la cuenta de servicio de IAM, debes habilitar cualquier otras APIs compatibles a la que planeas acceder mediante el SDK.

Ir a la biblioteca de API

Para obtener información sobre cómo habilitar las APIs de Google Cloud, consulta Habilita las API.

Crea una cuenta de servicio para obtener autorización a fin de acceder a las APIs de Google Cloud

Para la autenticación y autorización a fin de acceder a las APIs de Google Cloud, el SDK de ABAP para Google Cloud necesita una cuenta de servicio de IAM.

Crea una cuenta de servicio

En la consola de Google Cloud, crea una cuenta de servicio de IAM. 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. Si creas la cuenta de servicio en el mismo proyecto que contiene las APIs de Google Cloud, la cuenta de servicio se agrega como principal al proyecto de forma automática.

Si creas la cuenta de servicio en un proyecto que no sea el en el que están habilitadas las APIs de Google Cloud, debes agregar la cuenta de servicio a ese proyecto en un paso adicional.

  1. En la consola de Google Cloud, crea una cuenta de servicio de IAM para la autenticación y autorización a fin de acceder a las APIs de Google Cloud.

    Ir a Cuentas de servicio

    Para obtener información sobre cómo crear una cuenta de servicio, consulta Crea una cuenta de servicio.

  2. En la consola de Google Cloud, 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.

  3. Si creaste la cuenta de servicio en un proyecto diferente al del proyecto que contiene las APIs de Google Cloud que planeas consumir con el SDK, anota el nombre de la cuenta de servicio. Debes especificar el nombre cuando agregas la cuenta de servicio a ese proyecto. Para obtener más información, consulta Agrega la cuenta de servicio al proyecto de Google Cloud.

Agrega la cuenta de servicio al proyecto de Google Cloud

Si creaste la cuenta de servicio del SDK de ABAP para Google Cloud en un proyecto que no es el que contiene las APIs de Google Cloud que planeas consumir con el SDK, debes agregar el servicio al proyecto de Google Cloud que contiene las APIs de Google Cloud.

Si creaste la cuenta de servicio en el mismo proyecto que contiene las APIs de Google Cloud, puedes omitir este paso.

Para agregar una cuenta de servicio existente al proyecto de Google Cloud que contiene las APIs de Google Cloud, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página de permisos de IAM.

    Ir a Permisos de IAM

  2. Confirma que el nombre del proyecto que contiene las APIs de Google Cloud de destino se muestra cerca de la parte superior de la página. Por ejemplo:

    Permisos del proyecto "PROJECT_NAME"

    Si no es así, cambia de proyecto.

  3. En la página de IAM, haz clic en Otorgar acceso. Se abre el cuadro de diálogo Otorgar acceso a “PROJECT_NAME.

  4. En el diálogo Otorga acceso a “PROJECT_NAME, sigue estos pasos:

    1. En el campo Principales nuevas, especifica el nombre de la cuenta de servicio.
    2. En el campo Seleccionar un rol, especifica un rol relevante. Por ejemplo, en Pub/Sub, para modificar temas y suscripciones y acceso a fin de publicar y consumir mensajes, puedes especificar el rol de editor de Pub/Sub (roles/pubsub.editor).

      Para obtener más detalles sobre los roles predefinidos específicos de la API, consulta Referencia de los roles básicos y predefinidos de IAM.

    3. Agrega roles adicionales según sea necesario para el uso de la API. Implementa las prácticas recomendadas de Google mediante la aplicación del principio de privilegio mínimo.

    4. Haz clic en Guardar. La cuenta de servicio aparece en la lista de principales del proyecto en la página IAM.

La cuenta de servicio ahora se puede usar para acceder a las APIs de Google Cloud en este proyecto.

Configura la conexión HTTPS

El servidor de aplicaciones SAP es necesario para conectarse a las APIs de Google Cloud a través de HTTPS.

En el host de SAP, confirma que las reglas o los proxies de firewall estén configurados para permitir el tráfico de salida del puerto HTTPS a las APIs de Google Cloud requeridas.

En particular, el sistema SAP debe poder acceder a los siguientes extremos de la API:

  • https://iamcredentials.googleapis.com
  • Extremos de API para las APIs que quieres consumir mediante el SDK.

Crea configuraciones de SAP

Para la autenticación basada en JWT, crea las opciones de configuración de SAP necesarias.

Especifica la configuración de acceso en la tabla de claves del cliente

Para especificar la configuración de acceso, sigue estos pasos:

  1. 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.

  2. Haz clic en el SDK de ABAP para Google Cloud > Configuración básica > Configurar clave de cliente.

  3. Haz clic en Entradas nuevas.

  4. 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 el SDK de ABAP para 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 Especifica el permiso de acceso, https://www.googleapis.com/auth/cloud-platform.
    ID del proyecto Especifica el ID del proyecto de Google Cloud que contiene las APIs de destino.
    Nombre del comando Deja este campo en blanco.
    Clase de autorización Especifica la clase de autorización, /GOOG/CL_AUTH_JWT.
    Campo de autorización 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 nombre de la aplicación SSF que creaste en la sección Crea una nueva aplicación de almacenamiento seguro y reenvío (SSF).
  5. Guarda la entrada nueva.

Crea nuevos destinos de RFC

Crea destinos de RFC para la API de IAM y otras APIs que planeas consumir con el SDK de ABAP para Google Cloud, por ejemplo, la API de Pub/Sub v1.

Nombre del destino de RFC Notas
ZGOOG_IAMCREDENTIALS Este destino de RFC se orienta a la API de IAM.
ZGOOG_OAUTH2_TOKEN Este destino de RFC se orienta al extremo de Google Cloud para la autenticación basada en tokens.
ZGOOG_PUBSUB_V1 Este destino de RFC se orienta a la API de Pub/Sub.

Para obtener información sobre cómo crear destinos de RFC, consulta Destinos de RFC.

Especifica destinos de RFC en la tabla de asignación de servicios

En la tabla de asignación de servicios, especifica los destinos de RFC para la API de IAM y otras APIs que planeas consumir con el SDK de ABAP para Google Cloud.

Para especificar los destinos de RFC, sigue estos pasos:

  1. 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.

  2. Haz clic en SDK de ABAP para Google Cloud > Configuración básica > Configurar asignación de servicios.

  3. Haz clic en Entradas nuevas.

  4. Especifica los destinos de RFC para la API de IAM y otras APIs, por ejemplo:

    Nombre Nombre del servicio Destino de RFC
    Nombre de la clave de Google Cloud iamcredentials:v1 ZGOOG_IAMCREDENTIALS
    Nombre de la clave de Google Cloud googleapis.com/oauth2 ZGOOG_OAUTH2_TOKEN
    Nombre de la clave de Google Cloud pubsub.googleapis.com ZGOOG_PUBSUB_V1
  5. Guarda la entrada nueva.

Valida la configuración de autenticación

Para validar la configuración de autenticación, sigue estos pasos:

  1. 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.

  2. Haz clic en SDK de ABAP para Google Cloud > Utilidades > Validar configuración de autenticación.

  3. Ingresa el nombre de la clave del cliente.

  4. Haz clic en Ejecutar para verificar si el flujo general se configuró correctamente.

    Una marca de verificación verde en la columna Estado indica que todos los pasos de configuración se completaron de forma correcta.

Obtenga asistencia

Si necesitas ayuda para resolver problemas con el SDK de ABAP para Google Cloud, haz lo siguiente: