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

Prueba de las API de SuccessFactors: cómo usar Insomnia para automatizar la generación de aserciones SAML

By s4pcademy 


Hola comunidad SAP,

Si llama regularmente a las API de OData de SuccessFactors con fines de prueba utilizando la herramienta de prueba de API de su elección, es probable que ya sepa que la La autenticación básica está en desuso y no debe utilizarse; en cambio, la autenticación usando OAuth 2.0 es el método preferido para acceder a las API de SFSF. Se describen los pasos necesarios para habilitar un cliente OAuth2 en la Documentación SFSF y este blog esta enfocado en el paso 2 – Solicitar aserción SAML del diagrama de flujo que se muestra allí:

Suponiendo que utiliza un proveedor de identidad de terceros (abreviatura proveedor de identidad) para emitir aserciones SAML, es posible que ya haya ajustado sus casos de prueba SFSF y flujos de autenticación de acuerdo con sus expectativas de solicitud/respuesta de IdP. Sin embargo, si está utilizando SAP SuccessFactors Offline SAML Generator, entonces probablemente esté confiando en la herramienta Java externa disponible en la Nota de SAP. 3031657: demostración del formato de aserción SAML de SAP SuccessFactors con la herramienta fuera de línea provista por SAP: SAP ONE Support Launchpad, que podría no estar bien integrado en su herramienta de prueba de API, ya que tiene que copiar/pegar manualmente la aserción SAML generada externamente en sus casos de prueba. O peor aún: es posible que esté utilizando el /autorización/idp API de SuccessFactors para generar sus afirmaciones SAML, que también será en desuso debido a riesgos de seguridad! Consulte esta documentación de SAP para obtener más información al respecto: Obsolescencia de la API de IdP de OAuth /oauth/idp | Portal de ayuda de SAP.

Entonces se establece el desafío: ¿Cómo integrar este proceso de generación de aserciones SAML a los clientes de prueba de la API?

Cartero es la herramienta de prueba omnipresente para las API hoy en día y se decidió incrustar las rutinas de afirmación SAML en sus scripts de solicitud previa. Desafortunadamente, era más fácil decirlo que hacerlo… 🙁 El sandbox de Node.js de Postman es bastante restrictivo y no permite el uso de npm bibliotecas para aserción SAML / firma XML. Incluso cuando de alguna manera logré solucionarlo, la caja de arena Node.js de Postman tiene capacidades criptográficas limitadas, lo que imposibilitó la firma de las Aserciones SAML. ¿Sería eso entonces una razón para perder el sueño? 😀

En este punto, decidí dar otra herramienta de prueba de API llamada Insomnio un intento. ¡Y qué agradable sorpresa! Su enchufar El concepto es bastante poderoso y me permitió el uso de bibliotecas npm externas para desarrollar un Etiqueta de plantilla para generar la aserción SAML justo antes de enviar la solicitud al punto final, ¡exactamente lo que quería! Además, el motor Chrome V8 JS perfectamente integrado facilitó mucho la depuración, lo cual fue clave durante el proceso de desarrollo del complemento. Además, permite importar Postman’s Recopilación archivos, lo que acelera la incorporación de la herramienta. Las desventajas que he reconocido hasta ahora son que el Insomnia Gratis La versión no permite la colaboración en equipo y las colecciones de pruebas no se guardan en la nube.

Aquí están los enlaces de Insomnia/npm del complemento de afirmación SAML de SuccessFactors:

https://insomnia.rest/plugins/insomnia-plugin-sfsf-samlassertion

https://www.npmjs.com/package/insomnia-plugin-sfsf-samlassertion

Una vez que el complemento esté correctamente instalado, el Etiqueta de plantilla Aserción SAML – SFSF estará disponible para su uso. Estos son algunos pasos para instalar el complemento de afirmación SAML de SuccessFactors:

    1. Una vez que haya descargado e instalado Insomnia (https://insomnia.rest/download), encontrará bajo el enlace https://insomnia.rest/plugins/insomnia-plugin-sfsf-samlassertion la Instalar complemento botón que iniciará la aplicación Insomnia y el proceso de instalación del complemento. Una vez que se abre Insomnia, debe confirmar la instalación haciendo clic en el Instalar botón:
      Alternativamente, también puede abrir la aplicación Insomnia en el menú Aplicación -> Preferencias, pestaña Complementos e instale el complemento ingresando su nombre de paquete npm correspondiente insomnia-plugin-sfsf-samlassertion bajo la npm-paquete-nombre campo y presionando el Instalar complemento botón:
    2. En este ejemplo, voy a importar la colección exportada de Postman a Insomnia para agregar el Etiqueta de plantilla Aserción SAML – SFSF a los casos de prueba existentes (consulte la documentación https://learning.postman.com/docs/getting-started/importing-and-exporting-data/#exporting-collections para obtener más detalles sobre cómo hacerlo en Postman). Ir a Mi colección -> Importar/Exportar:Selecciona el Importar datos -> Desde archivo opción. Se mostrará una pantalla modal para que pueda seleccionar la colección exportada de Postman: haga clic en Importar y debe recibir una confirmación de que la colección se importó con éxito:
    3. Añade el Aserción SAML – SFSF Etiqueta de plantilla donde sea requerido. En este ejemplo, lo vamos a agregar al afirmación parámetro de formulario de la solicitud POST https://apisalesdemo2.successfactors.eu/oauth/token. Etiquetas de plantilla se puede agregar a un campo de destino presionando el botón Ctrl + Espacio teclas, y su configuración se muestra una vez que haga clic en ellos. Una vez que esté correctamente configurado, generará aserciones SAML codificadas en Base64 y las asignará al afirmación campo de formulario:
      Como nota al margen, tuve que cambiar el Tipo de contenido encabezado para esta operación manualmente para application/x-www-form-urlencoded, cosa que no era necesaria en Postman.
    4. En este ejemplo, vamos a utilizar la aserción SAML para obtener un token de OAuth desde el extremo de la API de SuccessFactors https://apisalesdemo2.successfactors.eu/oauth/token. Una vez que golpeas el Enviar debe poder recuperar el token de OAuth con la aserción SAML generada.
      Para usar este token de acceso en otras solicitudes, el integrado Etiqueta de plantilla Respuesta => Atributo del cuerpo from Insomnia se puede usar para que extraiga automáticamente una información de un cuerpo de respuesta para su uso en otras solicitudes. En este ejemplo, uso este Etiqueta de plantilla para extraer el $.token_de_acceso atributo de la respuesta anterior para que pueda usarse para la autenticación en otra solicitud GET:

La lista de parámetros de la Aserción SAML – SFSF Etiqueta de plantilla se puede encontrar a continuación:

  • Certificado X.509: Certificado público correspondiente al par de claves utilizado para la configuración del cliente en SFSF.
  • Llave privada: Clave privada del par de claves que se utilizará para firmar la aserción SAML.
  • Emisor SAML: Nombre del IdP que emite la Aserción SAML. El valor propuesto local.insomnia.com debe ser un buen punto de partida.
  • Vida útil en segundos: Vida útil de la aserción SAML en segundos.
  • Identificación del cliente: ID de cliente registrado en SFSF, también llamado como Clave API en la Documentación SFSF.
  • Identificador de nombre: ID de usuario que se utilizará para acceder a las API de SFSF.
  • Extremo del token de OAuth: la URL del servidor API desde el que solicita el token de OAuth.
  • Audiencia: Valor utilizado para etiquetar la aserción SAML. El valor propuesto www.successfactors.com debe ser un buen punto de partida.

Para obtener más información sobre los parámetros anteriores, consulte la documentación de SuccessFactors Generación de una aserción SAML | Portal de ayuda de SAP.

Espero que este complemento de Insomnia pueda ser una alternativa válida para los probadores de API de SFSF que estén dispuestos a automatizar sus escenarios de prueba. No dude en consultar el repositorio de GitHub https://github.com/edersouza38/insomnia-plugin-sfsf-samlassertion del complemento: siempre que sea posible, verificaré los problemas y las sugerencias para incorporar. Como último comentario, gracias a mis colegas del CoE. helder rodrigues (Factores de Éxito) y sarah homero (Integración) por trabajar juntos en este tema que dio origen a este complemento. ❤️




Cómo utilizar Postman para llamar a la API de SuccessFactors mediante el método de autenticación OAuth y el generador de aserciones SAML sin conexión de SAP.
Previo
Parte 3: SAP S/4HANA Cloud, edición pública: Extracción de datos flexible a través de la aplicación Custom CDS View
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.