
Hace algún tiempo tuve que construir un Iflow para guardar correos electrónicos en un servidor SFTP. En la fase de desarrollo no tenía acceso a un servidor SFTP del cliente. Quería tener un servidor SFTP con fines de prueba en mi PC de trabajo que pudiera reutilizar para varios proyectos. Revisé la sección de blogs y encontré una solución para un configuración de linux o Servicios en la nube de Google, pero nada con mi PC con Windows. Así que decidí construir uno yo mismo. Espero que pueda reutilizar esta solución si necesita probar IFlows con una conexión SFTP y no tiene acceso a un servidor SFTP dedicado.
En este blog, describiré la configuración de un servidor openSSH en una PC con Windows 10 y la configuración de una instancia de conector de nube portátil. Además, conectaré una subcuenta al servidor SFTP a través del conector de la nube y probaré la conectividad desde una instancia de SAP Integration Suite.
Para configurar un servidor SFTP, seguí la documentación en la página de ayuda de Microsoft para Comience con OpenSSH para Windows.
winver.exe
$PSVersionTable.PSVersion
(New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.S*'
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
# Start the sshd service
Start-Service sshd
# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'
# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}
New-LocalUser -Name 'cpisftp' -Description "Cloud Integration SFTP user" -PasswordNeverExpires
Con esto, hemos instalado y configurado con éxito nuestro servidor SFTP local.
Para configurar la instancia del conector en la nube, sigo las descripciones del Documentación de SAP.
La instalación en el sistema operativo Microsoft Windows describe los pasos necesarios.
Si desea utilizar SAP JVM en lugar de Oracle JDK, descárguelo también desde esta página. Uso un Oracle JDK ya instalado en mi máquina. Extraiga el archivo ZIP a una carpeta de su elección.
Las credenciales de usuario iniciales son administrador/administrador.
Después del primer inicio de sesión, debe cambiar la contraseña actual de la cuenta de administrador.
Con esta configuración, creé una instancia de conector de nube inicial para mis pruebas.
Después de la configuración del conector de la nube y el cambio de contraseña, el conector de la nube debe estar conectado a al menos una subcuenta como se describe en la Configuracion inicial. Para este propósito utilizo un Ensayo cuenta.
Puede utilizar cualquier otra subcuenta para su propósito. En esta subcuenta, necesito uno de los siguientes roles para poder conectarme a ella a través de un conector en la nube: administrador de la subcuenta, administrador del conector en la nube o administrador de conectividad y destino.
Ingrese la información de la Subcuenta en la configuración inicial:
Atención:Para las credenciales utilizo mi dirección de correo electrónico y la correspondiente contraseña de S-User. No me funcionó con la contraseña de mi cuenta Universal.
Después de confirmar el diálogo, la subcuenta está conectada:
Ahora que la configuración de los componentes está lista conecto SAP Integration Suite – Cloud Integration y nuestro servidor SFTP local
En el conector de la nube local, agrego el servidor SFTP local agregando un nuevo sistema no SAP a través de TCP e ingreso localhost con el puerto 22 como host interno y local-sftp.com con el puerto 22 como el host virtual que se usa en la nube. Integración para llamar al SFTP. Al final compruebo la accesibilidad del sistema:
Después de los diálogos, la conexión se establece y es accesible.
Después de la configuración en el conector de la nube, el servidor sftp es visible en la vista de conectividad de la subcuenta/conector de la nube:
Ahora también verifico la conectividad en SAP Integration Suite a través de Monitor/Integración/Probar conectividad. Después de seleccionar la página SSH, ingreso los detalles del servidor sftp. Como host, uso el host virtual que definí en el conector de la nube.
Ahora copio la clave de host en el portapapeles y creo un archivo conocido.hosts. En este archivo, agrego la clave de host y la guardo. Después de eso, subo el archivoknown.hosts a SAP Integration Suite en la vista Monitoreo/Integraciones/Material de seguridad.
En el siguiente paso, agrego las credenciales para el servidor sftp que definí para el usuario cpisftp.
Con estas credenciales y el archivo host, rehago la prueba de conexión al servidor y verifico el directorio de archivos para ver si funciona la autenticación y el acceso al servidor.
Con esta configuración, ahora puedo acceder a mi servidor SFTP local a través de la instancia del conector de nube portátil y usarlo en cualquier IFlow para conectarme a mi servidor SFTP y cargar o descargar archivos.
Como estamos utilizando un servidor SFTP al que se puede acceder potencialmente desde Internet, dependiendo de las configuraciones de la PC con Windows, recomiendo encarecidamente cambiar el método de autenticación en el servidor openSSH desde el nombre de usuario/contraseña básico a la autenticación basada en clave y deshabilitar el método básico. autenticación para mitigar posibles intentos de inicio de sesión de fuerza bruta en el servidor.
En la sección Supervisión/Integraciones/Almacén de claves, creo una nueva clave SSH que utilizo para autenticarme en varios servidores SFTP. Esto reduce la cantidad de credenciales/claves de usuario que tengo que administrar.
Después de crear la clave, descargo la clave pública.
Para usar esta clave para la autenticación, la edito para que solo tenga el algoritmo y la parte clave (por ejemplo: ssh-rsa AAAAB3NzaC1yc2EAAAADAQ…) y sin comentarios al final de la clave (SAP agrega un comentario como «clave pública para alias cpisftp ” al final eso no funciona con openSSH).
Este archivo de claves (nombre de archivo autorizado_claves) lo guardo en el directorio de usuario de mi usuario sftp (en mi caso, C:\Users\cpisftp\.ssh).
Después de eso, me aseguro de que el sistema solo pueda acceder al archivo y el usuario cpisftp, ya que, de lo contrario, openSSH no podrá acceder al archivo y la autenticación fallará.
El siguiente paso ahora es deshabilitar el inicio de sesión mediante contraseña o teclado interactivo editando el archivo sshd_cofig y reiniciando el servidor openSSH a través de PowerShell «Restart-Service sshd».
Para probar la nueva configuración, la pruebo a través de SAP Integration Suite / Test Connectivity.
La primera prueba es la falla de la autenticación de nombre de usuario/contraseña:
La segunda prueba es la autenticación basada en clave:
En esta entrada de blog, mostré cómo configurar openSSH / Portable Cloud Connector en una PC con Windows y usarlo para el acceso SFTP desde SAP Integration Suite. También le mostré cómo proteger el servidor openSSH para permitir solo la autenticación basada en claves.
Si tiene interés en este tema, envíeme sus comentarios y pensamientos como un comentario a continuación.
Si está interesado en el entorno de SAP Integration Suite. Echa un vistazo a la Tema de la suite de integración de SAP página, la respuesta/ pregunta sección o leer otras publicaciones en el tema.
Si te interesan temas similares o quieres intercambiar opiniones puedes seguirme o escribirme.
Atentamente
Roberto
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073