Configuración Objeto de Autorización ABAP SAP. OAuth 2.0
Esta entrada del blog dará la visión básica sobre la configuración de OAuth2.0 y el caso de uso del programa SAP ABAP.
Introducción:
El servidor OAuth 2.0 (AS ABAP) protege los recursos que se quieren utilizar, y el cliente OAuth 2.0 permite acceder a los servicios y recursos que ofrece un proveedor de servicios.
La autenticación con protección OAuth 2.0 entre un servidor de aplicaciones SAP NetWeaver para ABAP y un proveedor de servicios externo como, por ejemplo, SAP HANA Cloud Platform, Google Cloud Platform o Microsoft Azure, requiere un cliente OAuth 2.0 dedicado. Puede configurar y registrar este cliente OAuth 2.0 en el servidor OAuth 2.0 (AS ABAP).
El cliente OAuth 2.0 permite a los usuarios finales acceder fácilmente a un proveedor de servicios con las mismas credenciales que ya están utilizando en el proveedor de servicios. La comunicación entre el cliente OAuth 2.0 y el servidor está protegida por una conexión HTTPS. Los usuarios finales pueden entonces utilizar los servicios y recursos ofrecidos por un proveedor de servicios, por ejemplo, SAP HANA Cloud Platform o Microsoft Azure, para editar o procesar sus datos que se encuentran como recursos en el AS ABAP. Durante la autenticación, el cliente OAuth 2.0 pasa los ámbitos OAuth 2.0 al proveedor de servicios. Los ámbitos de OAuth 2.0 contienen referencias a los recursos permitidos.
Así que primero, vamos a tratar de entender de POSTMAN. Cómo llamar al endpoint OAuth2.0 habilitado.
POSTMAN:
Utiliza la llamada GET con el endpoint principal de la API. En la autenticación, seleccione el tipo como ‘OAuth2.0’.
Basado en el proveedor de servicios, seleccione el tipo de concesión en el lado derecho. Yo he seleccionado como Credenciales de cliente. Proporcione la URL del token de acceso, el ID del cliente y el secreto del cliente. También proporcione el alcance configurado en el proveedor de servicios. Seleccione Client Authentication como ‘Send as Basic Auth header’ y haga clic en Get New Access Token.
Ahora realizamos la llamada GET y establecemos cualquier parámetro de cabecera si es necesario.
Obtenemos el estado 200 y la respuesta del proveedor de servicios.
Ahora llamaremos al endpoint habilitado para OAuth2.0 desde el programa ABAP utilizando la configuración de OAuth2.0.
Creación del perfil de cliente OAuth2.0:
- Cree el perfil de cliente OAuth2.0 desde SE80 como se indica a continuación.
◉ Inicie el navegador de objetos (transacción SE80).
◉ Elegir Objeto de Desarrollo en la lista desplegable.
◉ Para crear un objeto de desarrollo en el espacio de nombres SAP, seleccione Crear perfil de cliente OAuth 2.0 en el menú contextual del nombre del objeto.
◉ Introduzca el nombre del objeto en el campo Perfil de cliente de la ventana emergente como ‘ZOAUTH_CLIENT_PROFILE’.
◉ Elija el tipo de proveedor de servicios como ‘DEFAULT’.
◉ Proporcione también el ámbito de aplicación tal y como se ha configurado en la configuración del proveedor de servicios y active el perfil de cliente.
Configurar el cliente OAuth2.0
- Vaya a la transacción OA2C_CONFIG para configurar el OAuth2.0
- Haga clic en «Crear».
- Seleccione el perfil de cliente OAuth2.0 como ‘ZOAUTH_CLIENT_PROFILE’ y proporcione el ID de cliente.
- Mantenga el secreto del cliente
- Proporcione también el punto final del token.
- Introduzca la Autenticación de Cliente como ‘Básica’, la Autenticación de Acceso a Recursos como ‘Campo de
Ahora la configuración de OAuth2.0 está completa.
Crear un programa ABAP que utilice la API del cliente OAuth 2.0:
El cliente OAuth 2.0 se utiliza junto con el cliente HTTP/REST en nuestro programa ABAP. Establece un token OAuth 2.0 y hace que el cliente HTTP o REST envíe el token al programa y lo reciba de nuevo.
La siguiente imagen muestra el proceso.
Proceso:
- Crear una instancia del cliente OAuth 2.0 de tipo IF_OAUTH2_CLIENT.
- Cree una instancia del cliente HTTP de tipo IF_HTTP_CLIENT.
Ahora, la instancia del cliente OAuth 2.0 se utiliza para establecer el token de acceso en el cliente HTTP. - Para activar el token de acceso, el programa de aplicación llama al método SET_TOKEN en la instancia de cliente OAuth 2.0 y envía la instancia de cliente HTTP como parámetro.
- (a y b) Después de entregar el token de acceso al cliente HTTP como se describe en el paso 3, utiliza el cliente HTTP para acceder a los recursos protegidos por OAuth 2.0.
A continuación se muestra el ejemplo de código:
Aquí rellene el LV_URL con el punto final principal de la API. También rellene el valor del método como ‘GET’.
También podemos crear el destino RFC para mantener el punto final de la API principal.
Aquí usaremos el nombre del perfil y el nombre de la configuración como ‘ZOAUTH_CLIENT_PROFILE’ para establecer el token OAuth2.0.
Data: param_kind TYPE string VALUE ‘H’.
Get the HTTP status by calling the GET_STATUS method.
Mas info en: https://setevalapinsap.com
Saludos.