Contenido
Contenido
1. Cloud Integration
SAP Cloud Integration favorece la integración de procesos comerciales que comprende diferentes empresas, organizaciones o departamentos dentro de una organización.
SAP Cloud Integration le facilita al usuario la conexión de aplicación locales y en la nube con otras aplicaciones existentes locales y en la nube de SAP ya que este tipo de servicio procesa los mensajes en escenarios en tiempo real que abarcan diferentes empresas, organizaciones o departamentos dentro de una organización.
2. Flujo de Integración
Un flujo de integración es la base de cualquier proyecto de integración de datos ya que contiene funciones de automatización integradas que hacen que este proceso sea tan fácil que los usuarios comerciales no técnicos puedan crear flujos con el soporte de TI mínimo o nulo.
3. Security
En SAP Cloud Integration encontramos diferentes elementos de seguridad, tanto a nivel de transporte como a nivel de mensaje. A nivel de transporte encontramos HTTPS, SFTP, entre otros, pero a nivel de mensaje podemos añadir otra capa aumento la seguridad de nuestras integraciones, los mensajes pueden ser encriptados y/o firmados utilizando PGP, certificados X.509, firmas digitales XML u otras técnicas. Cada uno de estos elementos requiere el intercambio de un conjunto especifico de claves.
En este artículo utilizaremos el elemento de seguridad llamado PKCS7
- PKCS7/CMS: Más conocido como CMS (sintaxis de mensajes criptográficos) es un elemento de seguridad y se usa para proteger el contenido de los mensajes para que no se altere mientras se envían a otros usuarios en la nube, cifrando el contenido del mismo.
En el modelo de flujo de integración, configuramos este elemento (Decryptor), para este no es necesario proporcionar información sobre el alias de la clave pública cuanto esta se encuentre en el almacén de llaves.
Este elemento de seguridad nos permite diferentes posibilidades dependiendo la dirección en la que dirijamos el mensaje podremos cifrar, descifrar, firmar, verificar.
4. Desarrollo
En este articulo plantearemos un escenario en el que enviaremos un mensaje encriptado desde POSTMAN usando el adaptador de HTTPS y lo desencriptaremos usando el elemento PKCS7 Decryptor, enviando el mensaje descifrado mediante correo electrónico usando un adaptador de Mail.
De esa manera usaremos elementos de seguridad tanto a nivel de transporte como a nivel de mensaje.
Requisitos
Hay que tener en cuenta que para poder realizar este ejercicio se debe contar con una cuenta en SAP BTP Cockpit y con la suscripción de Integration Suite, tener un paquete de integración creado en la plataforma de Cloud Integration, contar con el par de llaves con el que se encripto el mensaje en el almacén de llaves y contar con credenciales de usuario para conexión a correo electrónico.
Primero se debe acceder a un navegador e ingresar al siguiente enlace dando clic aquí para ingresar a nuestra cuenta de SAP BTP Cockpit.
Accedemos a nuestra subcuenta llamada “LOGALI” y luego debemos ingresar a Integration Suite.
Después debemos ingresar a “Cloud Integration”.
Luego debemos ingresar al apartado de “Design” para poder seleccionar un paquete de integración.
Damos en el botón de edición e ingresamos en la pestaña de “Artifacts” para poder añadir un flujo de integración luego debemos ingresar los datos necesarios para crear el flujo de integración para este caso lo llamaremos “Security – PKCS7 Decryptor”, agregamos una descripción y por último dar clic en el botón “Ok”.
Luego de crear el flujo de integración vamos a diseñar la estructura que tendrá el mismo.
Luego de ingresar a nuestro flujo de integración vamos procedemos a editarlo, el mensaje lo enviaremos desde un cliente externo y para ello usaremos el adaptador HTTPS el cual vamos a conectar al evento de inicio de mensaje, luego vamos a las propiedades y en la pestaña de “Connection” agregamos la dirección con la que se creará nuestro endpoint. Para este caso será “/decryptor”.
Luego vamos a agregar el elemento que usaremos para agregar seguridad a nuestro flujo a nivel de mensaje. En la barra de herramientas en Security Y en Decryptor seleccionamos PKCS7 Decryptor
Si vamos a las propiedades de este elemento encontraremos 2, la pestaña “General” que nos va a permitir cambiar el nombre del elemento y la pestaña “Processing” en donde encontraremos los siguientes atributos:
Encode Body with Base64: Al seleccionar esta opción estaremos indicando que el cuerpo de nuestro mensaje será codificado en base64.
Signature: En este atributo encontramos dos opciones, por defecto nos aparece Enveloped Data Only con esta opción solo se descifrará el mensaje, mientras que con Signed and Enveloped Data el mensaje y la firma serán descifrados. Para este ejercicio no digitamos el alias del par de claves porque ya se encuentra en el almacén y el flujo de integración simplemente lo verifica desde allí, seleccionamos la opción de codificar el cuerpo del mensaje con base64 y en la firma seleccionamos Enveloped Data Only.
Nota: En caso de no contar con la llave, la puede crear en el monitor – Manage Keystore – Create – Key Par.
Saldrá una ventana, diligenciamos los datos se nos creará el par de claves, en nuestro caso se llama “test_key”.
Ahora agregamos un adaptador de Mail para enviar el mensaje vía correo. Lo seleccionamosy entramos a la pestaña de Connection e ingresamos los datos necesarios para la conexión en nuestro caso usaremos los siguientes datos:
Address: smtp.gmail.com:465
Proxy Type: Internet
Timeout: 30000
Protection: SMTPS
Authentication: Encrypted User/Password
Credential Name: CredencialesCorreo
Nota: para generar las credenciales de acceso a correo te invitamos a ver el curso de SAP Cloud Integration.
En la pestaña de Processing vamos a diligenciar los atributos de correo como: From, To, Subject y Mail Body.
Ahora vamos a los archivos adjuntos de correo “MAIL ATTACHMENTS” y le damos al botón añadir, ingresamos los datos de:
Name: Message-Encryptor.txt
Mime-Type: Text/Plain
Source: Body
Además, para que el mensaje sea enviado mediante un archivo adjunto al correo habilitamos la opción Add Message Attachments.
Guardamos nuestro flujo de integración y lo implementamos.
Luego de implementarlo vamos al monitor y entramos a “Manage Integration Content”, seleccionamos nuestro flujo de integración y en la pestaña de Endpoints copiamos la url que nos ha generado.
Vamos a POSTMAN quien hará las veces de cliente y crearemos una nueva solicitud con la petición GET y pegamos el EndPoint generado en nuestro flujo de integración.
Vamos a la pestaña de “Authorization”, en el tipo le indicamos Basic Auth e ingresamos el usuario y contraseña.
Nota: El usuario y contraseña de conexión lo encontramos en nuestra subcuenta, instancias y suscripciones, buscamos la instancia de Servicio de Integración y abrimos la Key, allí vamos a encontrar el clientId que será nuestro usuario y el clientsecret que será la contraseña.
Luego en la pestaña “Body”, seleccionamos “raw” y vamos a copiar el mensaje encriptado.
Para este ejercicio copiaremos el mensaje que encriptamos en el articulo Flujo de Integración Security – Encryptor. Encuentra el link dando clic aquí.
Copiamos el mensaje y damos al botón enviar “Send”. Y vemos que obtenemos como estado “200 Ok” lo que nos indica que se ha enviado correctamente, además vemos en el body de la respuesta el mensaje que desencriptado.
Verificamos en nuestro correo, podemos ver que mensaje ha sido enviado el mensaje con el documento adjunto de manera satisfactoria.
En este artículo proporcionamos una explicación general de cómo usar el elemento de seguridad PKCS7 para desencriptar un mensaje y enviarlo mediante correo electrónico. Dirigido a todas las personas que quieran aprender más sobre las herramientas SAP Cloud Integration y como se integran las diferentes herramientas de SAP. Podrás encontrar más datos como estos en los cursos y blogs desarrollados por Logali Group.