Configurar aplicaciones en Oracle Identity Cloud Service
Para que la autenticación funcione correctamente, debe utilizar la misma instancia de Oracle Identity Cloud Service que protege la aplicación Oracle Fusion Applications Cloud Service y Oracle PaaS ( Oracle Visual Builder ) o HTML5 personalizada. En Oracle Identity Cloud Service, debe crear una aplicación para utilizarla con la autenticación de cliente.
En este escenario, separamos los temas de Oracle Functions más Oracle API Gateway de la interacción entre las entidades de Oracle Functions y Oracle Fusion Applications Cloud Service, mediante la protección de ambas mediante Oracle Identity Cloud Service como entidades separadas en lugar de utilizar la misma aplicación Oracle Identity Cloud Service para ambas.
Normalmente, las aplicaciones de extensión Oracle SaaS escritas por los clientes de Oracle realizan una lógica compleja. Por ejemplo, un escenario común es obtener datos de Oracle Fusion Applications Cloud Service, procesarlos de alguna forma y devolver datos a Oracle Fusion Applications Cloud Service a otro destino como una base de datos.
Por lo tanto, tenemos una arquitectura con dos aplicaciones de Oracle Identity Cloud Service:
- Una aplicación que protege su Oracle Functions como recurso y como cliente de confianza de Oracle Fusion Applications Cloud Service.
- Una aplicación que protege su instancia de Oracle Fusion Applications Cloud Service como recurso.
Las instrucciones de este artículo le guiarán por el proceso de creación y configuración de las primeras aplicaciones para proteger Oracle Functions. Ya debería existir la segunda de estas dos aplicaciones: se le necesitaba crear y configurar una aplicación para activar la federación entre Oracle Fusion Applications Cloud Service y Oracle PaaS.
Esta configuración permite configurar diferentes reglas o políticas para acceder a las funciones que no son las reglas o políticas de un cliente de confianza a fin de acceder a Oracle Fusion Applications Cloud Service. En esta configuración, el token de acceso entrante al gateway de API solo requiere acceso autorizado a Oracle Functions para llamar a la capacidad de la función, pero no tiene por qué tener también los mismos permisos que son necesarios para acceder a la instancia de Oracle Fusion Applications Cloud Service. La aplicación Oracle Visual Builder requiere una aplicación Oracle Identity Cloud Service asociada que generará el token de acceso para acceder al gateway de API. Esta aplicación Oracle Identity Cloud Service será el cliente del recurso de funciones/gateway de API.
Los intercambios de tokens que se muestran en el diagrama de arquitectura proporcionan una capa de protección adicional para propagar la identidad del caso de que una función sea un cliente de un recurso de Oracle Fusion Applications Cloud Service, que es similar al proceso de afirmación de Oracle WebLogic OAuth con Oracle Identity Cloud Service utilizado en extensiones SaaS soportadas anteriores, como las que utilizan Oracle Java Cloud Service.
Esto puede significar que, en determinados casos de uso, la aplicación Oracle Identity Cloud Service utilizada para generar el token para Oracle Functions solo puede tener ámbitos de recursos para las funciones, pero no para Oracle Fusion Applications Cloud Service. En este caso, Oracle Functions no tendrá la capacidad de volver a utilizar el token para llamar a Oracle Fusion Applications Cloud Service, pero es válido para acceder a Oracle Functions. Por tanto, puede implantar flujos lógicos a los que algunos usuarios o excepciones de funciones no tienen acceso, mientras que otros sí, según la lógica de negocio, los roles y privilegios de usuario u otros criterios.
En otros casos de uso, Oracle Functions puede incluir código para solicitar un token de acceso para Oracle Fusion Applications Cloud Service mediante los certificados y el usuario que ha pasado a la solicitud desde el gateway de API.
Creación de una aplicación para Oracle Functions en Oracle Identity Cloud Service
En Oracle Identity Cloud Service, debe crear una aplicación confidencial para utilizarla con la autenticación de cliente de Oracle Functions.
Dentro de la misma instancia de Oracle Identity Cloud Service que ha federado con la instancia de Oracle Fusion Applications Cloud Service, cree una aplicación confidencial y asegúrese de que la configuración del cliente se ha configurado de forma que active las credenciales del cliente, la afirmación de JWT y los permisos de propietario del recurso.
Preparación y Prueba de la Aplicación Oracle Identity Cloud Service
Configure la aplicación Confidential de Oracle Identity Cloud Service para conectarse a la aplicación correspondiente a su instancia de Oracle Fusion Applications Cloud Service y, a continuación, pruebe la aplicación.
curl --location --request GET 'https://<your fusion instance>.<domain>.com/fscmRestApi/resources/11.13.18.05/expenses' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <JWT_TOKEN>'
Esta consulta de curl debería devolver datos de Expenses.Configuración de la aplicación Oracle Functions Oracle Identity Cloud Service como cliente de confianza
Necesita utilizar un certificado para la aplicación Oracle Identity Cloud Service como cliente de confianza para realizar solicitudes de OAuth a Oracle Functions. Puede generar un certificado autofirmado para su uso durante el desarrollo, si aún no tiene un certificado disponible.
El script proporcionado genSelfSignedKeypair.sh
se puede utilizar para generar una clave si aún no tiene una. Ejecute el script especificando los valores de inquilino y de alias de clave. En este ejemplo, hemos proporcionado el mytenant como nombre del inquilino y fnassertionkey como alias de clave.
Importar Información de Almacén de Claves a Oracle Cloud Infrastructure Vault
El proceso de afirmación con Oracle Functions necesitará el uso del almacén de claves y las contraseñas importados. Para mayor seguridad y evitar el uso de contraseñas y secretos codificados, puede aprovechar Oracle Cloud Infrastructure Vault.
El servicio Oracle Cloud Infrastructure Vault permite cifrar y almacenar de forma segura los datos confidenciales. Puede almacenar el almacén de claves y las contraseñas de clave pública en un almacén y, a continuación, hacer referencia a él mediante el SDK de Oracle Cloud Infrastructure en su backend de Oracle Functions para realizar la ensación. También puede cifrar y almacenar de forma segura el archivo JKS.
En la sección Antes de Empezar de esta solución, se le necesitaba configurar su entorno de Oracle Functions, como mediante el uso de las guías de inicio rápido. La configuración de la guía de inicio rápido le pide que cree una política para las funciones en el nivel de compartimento raíz. En el siguiente ejemplo, dicha política se denomina FnTenancyPolicy
. Debe agregar sentencias adicionales a la política para permitir a Oracle Functions acceder a los almacenes asociados a esa política. El nombre del grupo para Oracle Functions que se va a utilizar debe ser el creado al configurar el arrendamiento en la Guía de inicio rápido. En este ejemplo, fnGroup1
es el grupo de usuarios que pueden utilizar Oracle Functions.
Configuración de la aplicación Oracle Visual Builder en Oracle Identity Cloud Service
Las aplicaciones de Oracle Visual Builder tienen una aplicación Oracle Identity Cloud Service asociada que se configura automáticamente como cliente de confianza. Debe configurar la aplicación para que se pueda utilizar como cliente del recurso Oracle Functions.
Como parte de la interacción que se muestra en la arquitectura propuesta, una aplicación de Oracle Visual Builder asociada a una instancia de Oracle Identity Cloud Service, federada con Oracle Fusion Applications Cloud Service y conectada a Oracle Functions, debe poder generar un token de acceso que pueda acceder al gateway de API y a los recursos de Oracle Functions (según lo definido por el ámbito). Debe configurar su aplicación Oracle Visual Builder en Oracle Identity Cloud Service para definirla como cliente del recurso que amplía la funcionalidad de SaaS agregando el ámbito de la nueva aplicación Oracle Functions que ha creado.
Al crear una nueva aplicación en Oracle Visual Builder, se crea automáticamente una aplicación de Oracle Identity Cloud Service. Por ejemplo, si crea una aplicación denominada TestSaaSExtensionFN
, puede navegar a la consola de Oracle Identity Cloud Service y mostrar aplicaciones, y debe buscar una aplicación denominada TestSaaSExtensionFN
.