• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
FORMACIÓN SAP

Autenticación OAuth 2.0 para SAP PI/PO REST Sender Channel

By s4pcademy 


Con NetWeaver 7.50 SP25, el adaptador SAP PO/PI REST brinda soporte para la autenticación OAuth 2.0 en el lado del remitente según RFC 6749 «El marco de autorización de OAuth 2.0» (https://www.rfc-editor.org/rfc/rfc6749 ). Esto permite que los clientes REST que admiten el flujo de otorgamiento de Credenciales de cliente OAuth 2.0 autentiquen y accedan a los recursos REST proporcionados por el adaptador SAP PO/PI REST.

Esta publicación de blog proporciona una descripción detallada y un escenario de muestra de OAuth 2.0 para el canal REST Sender en SAP Process Integration/Process Orchestration.

requisitos previos

Esta función se introdujo con SAP NetWeaver 7.50 SP25. El sistema debe estar en SP25 o superior. Los detalles se pueden encontrar en la nota SAP 3140397 y la nota SAP 3163712

Flujo de autenticación del adaptador SAP PO/PI REST para OAuth 2.0

El siguiente diagrama proporciona información sobre el flujo exacto de OAuth 2.0 en PO/PI REST Sender:

Diagrama%20de%20la%20OAuth%202.0%20funcionalidad%20en%20el%20PO/PI%20REST%20Sender%20Channel

Diagrama de la funcionalidad OAuth 2.0 en el canal emisor PO/PI REST

0. Registrar usuario: un cliente debe registrarse mediante la interfaz de usuario del servidor REST OAuth. Se puede acceder a él en el Administrador de SAP NetWeaver -> SOA -> Supervisión -> Servidor REST OAuth. En esta etapa se registran los parámetros Client ID, Client Secret y Scope.

  1. En su cliente REST, puede configurar la obtención del token de acceso OAuth llamando a la URL del servidor de autorización: http://:/RESTAdapter/OAuthServer

con los siguientes parámetros:

subvención_tipo – credenciales_cliente

Identificación del cliente – el registrado en el paso 0.

cliente_secreto – generado desde el paso 0.

alcance (opcional): el nombre del canal, para el cual se solicitará el token de acceso. Si se omite, se aplica a todos los canales para los que se asignó este cliente durante el paso 0.

  1. Ahora puede realizar una solicitud POST HTTP al canal REST Sender utilizando el token de acceso adquirido en el paso anterior; el token debe enviarse como un encabezado HTTP:

Autorización: Portador

  1. El módulo REST OAuth Login se configura automáticamente para los canales del remitente con la autenticación OAuth 2.0 habilitada. Este módulo de inicio de sesión solicita la validación del token de acceso y recibe el usuario de NetWeaver asignado del servidor de autorización REST OAuth.
  2. El módulo REST OAuth Login realiza la autenticación con el usuario de NetWeaver recibido.
  3. La solicitud se pasa al adaptador SAP PI REST.

Ejemplo de escenario y configuración paso a paso

En esta sección, repasaremos la configuración requerida de principio a fin y crearemos juntos un escenario de muestra.

  1. Cree un canal de remitente REST con OAuth 2.0 habilitado.

Los canales PO/PI REST Sender deben crearse, activarse e iniciarse en PO Channel Monitoring con OAuth 2.0 habilitado en el canal REST Sender.

El primer paso es crear un canal REST Sender y habilitar OAuth 2.0 seleccionando la casilla de verificación Habilitar autenticación OAuth 2.0 para solicitudes entrantes. Luego, debemos seleccionar el tipo de concesión OAuth 2.0; actualmente solo se admite la concesión de credenciales de cliente, por lo que esto es lo que seleccionamos. Guardar y activar el canal.

Descargo de responsabilidad: tenga en cuenta que el canal y su punto final se crean solo con fines de prueba y son valores de muestra. El punto final real debe ser el que requiera el escenario del cliente.

Instantánea del sistema de prueba de PO: configuración del canal REST Sender

  1. Registrar un cliente en la interfaz de usuario del servidor REST OAuth

Para este paso tenemos que ir a http://[host]:[port]/nwa para abrir el Administrador de SAP NetWeaver

Desde allí, debemos navegar a SOA -> Monitoreo -> Servidor REST OAuth -> Clientes y hacer clic en Crear cliente.

Instantánea del sistema de prueba de PO: administrador de SAP NetWeaver -> SOA -> Monitoreo -> Servidor REST OAuth

En este punto necesitamos completar los siguientes parámetros:

  • ID de cliente es el Identificación del cliente usaremos más adelante en la llamada al servidor de autorización.
  • El usuario de SAP NetWeaver debe seleccionarse haciendo clic en el botón Seleccionar usuario. Usando el botón Buscar, puede navegar a través de los usuarios de NetWeaver disponibles y elegir el apropiado. Este módulo de inicio de sesión de REST OAuth utilizará más tarde al usuario seleccionado para realizar la autenticación.
  • secreto es el cliente_secreto utilizado posteriormente en la llamada al servidor de autorizaciones. Se genera automáticamente haciendo clic en el botón Generar secreto.

¡Importante! El secreto del cliente solo se mostrará una vez; asegúrese de registrarlo. De lo contrario, deberá generar un nuevo secreto de cliente mediante la opción Editar cliente.

  • La caducidad del token es el tiempo en que caduca el token (en segundos). El valor predeterminado es 3600, pero puede personalizarlo.
  • La casilla de verificación Restringir a canales específicos corresponde al parámetro de alcance en la llamada al servidor de autorización, que es opcional. Esta funcionalidad le permite limitar a qué canales REST Sender es válido un token OAuth 2.0 generado con este cliente específico. Si deja esta casilla sin marcar, de forma predeterminada se puede usar con todos los canales de REST Sender con OAuth 2.0 habilitado.

¡Tenga en cuenta! Solo canales REST Sender con seleccionó Habilitar la casilla de verificación «Autenticación OAuth 2.0 para solicitudes entrantes» que se guardaron, activaron e iniciaron será visible en «Restringir a canales específicos».

¿Qué sucede si olvida su secreto de cliente?

Necesitas generar uno nuevo. Seleccione el cliente, haga clic en el botón Editar Cliente y luego en Generar Nuevo Secreto. Asegúrese de registrar el secreto de cliente actualizado y haga clic en el botón Guardar.

Instantánea del sistema de prueba de PO: edición de un cliente para generar un nuevo secreto de cliente

  1. Llame al servidor de autorización y obtenga un token

En este paso, llamamos al servidor de autorización en la URL: http://:/RESTAdapter/OAuthServer

Instantánea%20de%20Cartero%20-%20obteniendo%20un%20token%20con%20ámbito

Instantánea de Postman: obtener un token con alcance

O

Instantánea%20de%20Cartero%20-%20Obtención%20a%20token%20sin%20ámbito

Instantánea de Postman – Obtención de un token sin alcance

Usando el siguiente formato de consulta:

grant_type=client_credentials&client_id=&client_secret=&scope=<ÁMBITO>

o

grant_type=client_credentials&client_id=&client_secret=

Donde los valores para client_id y client_secret son los que seleccionó anteriormente al crear el cliente en la interfaz de usuario del servidor REST OAuth.

El parámetro de alcance es opcional. El token de portador generado con esta llamada solo será válido para la autenticación cuando se intente llamar al canal especificado.

Si no se usa el parámetro de alcance, entonces, de forma predeterminada, el token generado se puede usar con todos los canales seleccionados en el paso Restringir a canales específicos al crear el cliente. Si el cliente no está restringido a ningún canal específico (la casilla de verificación se deja en blanco) y el parámetro de alcance no se usa, el token generado será válido para todos los canales de REST Sender con OAuth 2.0 habilitado.

  1. Usar el token adquirido para la autenticación

Ahora podemos hacer una llamada al canal REST Sender y autenticarnos usando el token que acabamos de generar.

Instantánea%20de%20Postman%20-%20usando%20el%20adquirido%20token%20para%20autenticación%20cuando%20llama%20al%20REST%20Remitente%20canal

Instantánea de Postman: uso del token adquirido para la autenticación al llamar al canal REST Sender

El token debe pasarse como un encabezado HTTP con el formato Autorización: Portador

Incluimos el encabezado de Autorización en la solicitud HTTP y hacemos una llamada POST exitosa al canal REST Sender que creamos anteriormente.

  1. Comprobar y eliminar tokens caducados

Es posible verificar qué token ha caducado y eliminarlo yendo a

Administrador de SAP NetWeaver -> SOA -> Supervisión -> Servidor REST OAuth -> Tokens

El botón Eliminar seleccionado le permite eliminar tokens específicos, mientras que el botón Eliminar todos los caducados elimina automáticamente todos los tokens caducados.

Referencias:

Espero que este blog haya sido útil para comprender cómo se puede usar OAuth 2.0 en el canal REST Sender. Por favor, no dude en compartir sus comentarios o pensamientos en un comentario.

Documentación SAP:
https://help.sap.com/docs/SAP_NETWEAVER_750/5cf7d2de571a45cc81f91261668b7361/c60e02fc5abb47e6867ba5dab14af487.html

RFC 6749 «El marco de autorización de OAuth 2.0»:

https://www.rfc-editor.org/rfc/rfc6749

Para preguntas y respuestas relacionadas con SAP NetWeaver, consulte: https://answers.sap.com/tags/01200314690800000134

Para otras publicaciones de blog sobre SAP NetWeaver, consulte:

https://blogs.sap.com/tags/01200314690800000134/




Productos SAP: estado de monitoreo en la nube las 24 horas del día, los 7 días de la semana, ¡durante todo el año!
Previo
Cambiar a elementos de línea en documento de activos fijos
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.

x