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 (Encryptor) proporcionando información sobre el alias de la clave pública, el algoritmo de contenido y la longitud de la clave privada. El elemento utiliza uno o más alias de clave pública del receptor para encontrar la clave pública en el almacén de claves. El proceso de cifrado utiliza una clave simétrica de longitud especificada para el cifrado de contenido.
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 desde POSTMAN usando el adaptador de HTTPS y lo encriptaremos usando el elemento PKCS7, enviando el mensaje cifrado 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 un par de llaves 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 la siguiente URL haciendo 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 Encryptor”, 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á “/encryptor”.
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 Encryptor seleccionamos PKCS7 Encryptor
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:
Block Size (in bytes): Define el tamaño de los datos que se van a cifrar, si introducimos un valor igual o inferior a 0, se codificaran todos los datos
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 cifrará el mensaje, mientras que con Signed and Enveloped Data el mensaje será cifrado y firmado.
Luego tenemos los parámetros para el proceso de cifrado
Content Encryption Algorithm: En este atributo se especifica el algoritmo de encriptación que se aplicará a la carga útil.
Secret Key Length: Seleccionamos la longitud de la clave, estas opciones dependerán del algoritmo de encriptación seleccionado.
Receiver Public Key Alias: Definimos el nombre de la clave pública del almacén de claves. Se puede leer el nombre dinámicamente desde la cabecera o una propiedad con las expresiones usando ${header.headername} o ${property.propertyname}. Con el botón “add” podemos agregar uno más nombres.
Para este ejercicio activaremos la opción de codificar el cuerpo del mensaje con base64 y agregaremos el nombre de la clave “test_key”.
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. Configuramos el adaptador de Mail, 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 escribimos un mensaje de prueba. 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 asignamos al cuerpo del adaptador de Mail.
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 encriptar 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.