Esta es una demostración de cómo construir una aplicación multiinquilino utilizando el SDK de Java del Modelo de Programación de Aplicaciones en la Nube y el módulo de nodo mtx-sidecar.
Resumen:
Esta aplicación de muestra contiene
-
Módulo de interfaz de usuario que contiene una página de bienvenida pública que contiene un enlace para obtener datos de su propia base de datos de inquilinos.
-
Módulo de backend que contiene el servicio CDS que expone API CRUD de OData en la entidad Libros.
-
Módulo de base de datos (db) que contiene schema.cds para crear la tabla de libros.
-
Módulo mtx-sidecar basado en Node.js utilizado para manejar la provisión de inquilinos.
¿Qué es la Multinquilinidad?
SAP BTP proporciona una funcionalidad multiinquilino que permite a los proveedores de aplicaciones ser propietarios, implementar y operar aplicaciones conscientes de los inquilinos para múltiples consumidores, con costos reducidos.
Con aplicaciones conscientes de los inquilinos, puedes:
-
Separar datos de forma segura para cada inquilino.
-
Ahorrar recursos al compartirlos entre inquilinos.
-
Actualizar aplicaciones de manera eficiente en un solo paso.
Configuración del Approuter, servicios requeridos y módulo mtx-sidecar:
Para habilitar la multiinquilinidad en SAP BTP, necesitamos implementar un approuter consciente de los inquilinos, el módulo mtx-sidecar y configurar los siguientes tres servicios.
Solo cuando estos servicios estén vinculados a tu aplicación, se activa la función de multiinquilinidad.
-
XSUAA
-
Service Manager
-
Servicio de Provisión SaaS (saas-registry)
Módulo Approuter:
Implementas la aplicación approuter como una aplicación de Cloud Foundry y como una parte lógica de la aplicación multiinquilino. Luego configuras la aplicación approuter como un punto de acceso externo de la aplicación.
Cada aplicación multiinquilino debe implementar su propio enrutador de aplicaciones y el enrutador de aplicaciones maneja las solicitudes de todos los inquilinos a la aplicación.
El enrutador de aplicaciones debe determinar el subdominio específico del inquilino. Esta determinación se realiza utilizando una expresión regular definida en la variable de entorno TENANT_HOST_PATTERN. Luego, el enrutador de aplicaciones reenvía la solicitud de autenticación al servicio de Cuentas de Usuario y Autenticación (UAA) del inquilino y la zona de identidad relacionada.
Si tienes varias rutas a la misma aplicación, por ejemplo:
tenant1.<dominio de la aplicación> y tenant2.<dominio de la aplicación>
El TENANT_HOST_PATTERN podría ser:
TENANT_HOST_PATTERN: "^(.*)-<dominio de la aplicación>"
XS UAA:
Vincula tu aplicación multiinquilino y la aplicación approuter a la instancia del servicio de Gestión de Autorización y Confianza de SAP (nombre técnico: xsuaa), que actúa como un cliente OAuth 2.0 para tu aplicación.
En entornos multiinquilino, los inquilinos se suscriben y consumen aplicaciones, que están registradas como clientes en el XS UAA. XS UAA crea un nuevo cliente OAuth2 por aplicación para cada inquilino. El modo de inquilino compartido es obligatorio para un enrutador de aplicaciones configurado para aplicaciones multiinquilino. Además, se requiere una configuración especial de una instancia de servicio XS UAA para habilitar la autorización entre el servicio de Provisión SaaS, la aplicación Java del Modelo de Programación de Aplicaciones en la Nube y el mtx-sidecar.
El servicio se puede configurar en el mta.yaml agregando un recurso xsuaa de la siguiente manera:
- name: <nombre de la instancia xsuaa>
type
Pedro Pascal
Se unió el 07/03/2018