SAP Cloud Platform
SAP Cloud Platform es una plataforma como servicio desarrollada por SAP SE en línea con las tendencias actuales de cloud computing.
Permite extender las capacidades de aplicaciones, procesos de negocio, integraciones, etc para un sinfín de escenarios, tanto cloud como on-premise. Y todo ello con estándares abiertos.
SAP Cloud Connector
SAP Cloud Connector es un agente que sirve de unión entre aplicaciones en la plataforma cloud y aplicaciones on-premise con capacidades de alta disponibilidad y seguridad. Debe instalarse on-premise haciendo las veces de saprouter (y mucho más) y evitando proxies inversos, DMZs, o reglas complejas en firewalls.
Consume muy pocos recursos y puede conectar múltiples entornos a la vez, incluidos entornos no SAP. Existe versión para Microsoft Windows, GNU/Linux, Mac OS e incluso también una versión portable.
SCC permite varias configuraciones relacionadas con la seguridad según sean las necesidades del entorno que conviene conocer y ajustar.
La primera de ellas y muy recomendable es modificar antes que cualquier otra cosa es la contraseña de acceso al servicio.
Por defecto, la contraseña de SCC viene hardcodeada en local en el fichero config\users.xml
No estará presente en texto plano sino su hash mediante sha1 o sha-256. En este último caso tendrá el valor password=”181229424893BB65D94A74C2132B8B9E5ADFE851464FDB5CB9F49E8A8204BE7B” que se corresponde con la contraseña manage. Y que puede ser utilizado para resetear la contraseña al valor por defecto.
Por lo que una de las primeras cosas que debemos hacer es cambiar dicha contraseña y restringir el acceso al fichero. Aunque una función hash no es reversible, no hay que olvidar que puede ser comparada contra un diccionario. SCC nos permite también habilitar el acceso al servicio mediante el LDAP de nuestra organización, agregando una capa más de seguridad.
Como con cualquier servicio web, es recomendable (más bien necesario) configurar certificados SSL/TLS para evitar que la información viaje en texto plano y pueda ser interceptada mediante un sniffer o en un ataque mitm.
En este punto podemos hacer uso de una entidad autofirmada que gestionemos nosotros mismos para aprobar el request certificate generado en el servicio.
Éste certificado (User Interface), una vez firmado, puede ser reutilizado por el propio sistema para otros propósitos. O viceversa, el certificado de sistema puede ser reutilizado para el interfaz.
Certificados entre Cloud y onPremise
Además de estos certificados, que son los más evidentes, hay otro que pasa desapercibido y es el que desencadena esta entrada, son los certificados entre SCC y SAP Cloud Platform
Con la versión SCC 2.12.2 ha llegado una pequeña característica que echábamos en falta. Y es que, a partir de esta versión se muestra la caducidad del certificado que cifra la conexión entre el entorno cloud y on-premise. Así que, si tu versión es anterior, te recomendamos que la actualices.
Si no es así y todavía continúas con una versión antigua es probable que ya te hayas encontrado con el inconveniente de tener que renovarlo cuando te enterabas de que fallaban las aplicaciones o veías que se había perdido la conectividad en las subcuentas de SAP Cloud Platform Cockpit.
El error puede verse tanto en el apartado Alerting del SCC como en SAP Cloud Cockpit, ya que se muestran como desconectados o con un error 401 Unauthorized.
O en los traces del servicio:
La solución es sencilla, basta con actualizar el certificado y habremos resuelto el problema durante un año:
Nos pedirá que introduzcamos la contraseña del usuario con el que se establece la comunicación. Volveremos a ver como se restablece la comunicación entre ambas partes y se muestra correctamente:
Podemos enviar las alertas por correo para prevenir futuros problemas.
En esta pantalla, en las nuevas versiones, se muestra además la validez del certificado. Pero para las versiones antiguas también es posible conocerlo. Si analizamos la estructura de carpetas podemos ver que las subcuentas conectadas almacenan diversos ficheros de configuración (xml, ini) en scc20\scc_config\hana.ondemand.com\<subaccount>\ que identifican el frontend y el backend y sus puertos expuestos.
Vemos además un fichero un repositorio de certificados de seguridad llamado scc.jks.
SCC tiene como prerrequisito JDK, por lo que podremos utilizar la herramienta keytool incluida en ella para explorar el contenido y con ello averiguar la caducidad del certificado con el que se cifrará la comunicación entre SCC y Cloud.
Para ello ejecutamos: keytool -list -v -keystore scc.jks. Por defecto no hay que proporcionar ninguna contraseña:
En las imágenes superiores podemos ver que en el almacén se guardan el certificado de la entidad con la que SAP firma sus certificados y el certificado que acabamos de renovar, habiendo desaparecido la versión anterior.