Configurer les applications dans Oracle Identity Cloud Service
Pour que l'authentification fonctionne correctement, vous devez utiliser la même instance Oracle Identity Cloud Service que celle qui sécurise votre application Oracle Fusion Applications Cloud Service et Oracle PaaS ( Oracle Visual Builder ) ou HTML5 personnalisée. Dans Oracle Identity Cloud Service, vous devez créer une application à utiliser pour l'authentification client.
Dans ce scénario, nous distinguons les événements d'Oracle Functions et d'Oracle API Gateway de l'interaction entre les entités Oracle Functions et Oracle Fusion Applications Cloud Service, en protégeant à la fois à l'aide d'Oracle Identity Cloud Service en tant qu'entités distinctes au lieu d'utiliser la même application Oracle Identity Cloud Service pour les deux.
En règle générale, les applications d'extension Oracle SaaS écrites par les clients Oracle exécutent une logique complexe. Par exemple, un scénario commun consiste à récupérer des données à partir d'Oracle Fusion Applications Cloud Service, à les traiter d'une certaine manière et à renvoyer des données à Oracle Fusion Applications Cloud Service vers une autre cible, comme une base de données.
Par conséquent, nous présentons une architecture avec deux applications Oracle Identity Cloud Service :
- Application qui protège votre système Oracle Functions en tant que ressource et en tant que client sécurisé d'Oracle Fusion Applications Cloud Service.
- Application qui protège votre instance Oracle Fusion Applications Cloud Service en tant que ressource.
Les instructions de cet article vous guideront tout au long du processus de création et de configuration de ces applications pour protéger Oracle Functions. Le deuxième de ces deux applications doit déjà exister : vous avez été invité à créer et à configurer une application afin d'activer la fédération entre Oracle Fusion Applications Cloud Service et Oracle PaaS.
Cette configuration vous permet de configurer différentes règles ou stratégies pour accéder à Fonctions par rapport à ces règles ou stratégies pour un client sécurisé afin d'atteindre Oracle Fusion Applications Cloud Service. Dans cette configuration, le jeton d'accès entrant de la passerelle d'API n'exige un accès autorisé à Oracle Functions que pour appeler la fonction, mais il n'a pas nécessairement besoin d'avoir les mêmes autorisations que celles nécessaires pour accéder à l'instance Oracle Fusion Applications Cloud Service. L'application Oracle Visual Builder requiert une application Oracle Identity Cloud Service associée qui générera le jeton d'accès pour atteindre la passerelle d'API. Cette application Oracle Identity Cloud Service sera le client de la ressource de fonctions/passerelle d'API.
Les échanges de jetons présentés dans le diagramme d'architecture fournissent une couche de protection supplémentaire pour propager l'identité si une fonction est un client d'une ressource Oracle Fusion Applications Cloud Service, semblable au processus d'assertion Oracle WebLogic OAuth avec Oracle Identity Cloud Service utilisé dans les anciennes extensions SaaS prises en charge, telles que celles utilisant Oracle Java Cloud Service.
Dans certains cas d'emploi, l'application Oracle Identity Cloud Service utilisée pour générer le jeton pour Oracle Functions peut uniquement avoir des portées de ressource pour les fonctions, mais pas pour Oracle Fusion Applications Cloud Service. Dans ce cas, Oracle Functions ne pourra pas réutiliser le jeton pour appeler Oracle Fusion Applications Cloud Service, mais il est valide pour atteindre Oracle Functions. Vous pouvez ainsi implémenter des flux logiques dans lesquels certains utilisateurs ou certaines modifications de fonction n'ont pas accès, tandis que d'autres le font, selon la logique métier, les rôles utilisateur et les privilèges, ou d'autres critères.
Dans d'autres cas d'utilisation, Oracle Functions peut inclure du code pour demander un jeton d'accès pour Oracle Fusion Applications Cloud Service en utilisant les certificats et l'utilisateur transmis dans la demande de la passerelle d'API.
Création d'une application pour Oracle Functions dans Oracle Identity Cloud Service
Dans Oracle Identity Cloud Service, vous devez créer une application confidentielle à utiliser pour l'authentification du client Oracle Functions.
Dans la même instance Oracle Identity Cloud Service que vous avez fédéré avec votre instance Oracle Fusion Applications Cloud Service, créez une application confidentielle et assurez-vous que la configuration client est configurée de sorte qu'elle active les autorisations d'informations d'identification client, d'assertion JWT et de propriétaire de ressource.
Préparation et test de l'application Oracle Identity Cloud Service
Configurez l'application confidentielle Oracle Identity Cloud Service pour vous connecter à l'application correspondant à votre instance Oracle Fusion Applications Cloud Service, puis testez-la.
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>'
Cette requête curl doit renvoyer des données Expenses.Configuration de l'application Oracle Identity Cloud Service Oracle Functions en tant que client sécurisé
L'application Oracle Identity Cloud Service doit utiliser un certificat en tant que client sécurisé pour que vous puissiez envoyer des demandes OAuth à Oracle Functions. Vous pouvez générer un certificat auto-signé à utiliser pendant le développement, si aucun certificat n'est disponible.
Le script fourni genSelfSignedKeypair.sh
peut être utilisé pour générer une clé si vous n'en avez pas déjà une. Exécutez le script en indiquant les valeurs d'alias de clé et de locataire. Dans cet exemple, nous avons fourni mytenant comme nom de locataire et fnassertionkey comme alias de clé.
Importer les informations de fichier de clés dans Oracle Cloud Infrastructure Vault
Le processus d'assertion avec Oracle Functions exige l'utilisation du fichier de clés et des mots de passe importés. Pour une sécurité optimale et éviter l'utilisation de mots de passe et de secrets codés en dur, vous pouvez utiliser Oracle Cloud Infrastructure Vault.
Le service Oracle Cloud Infrastructure Vault permet de crypter et de stocker les données sensibles en toute sécurité. Vous pouvez stocker les mots de passe de fichier de clés et de clé publique dans un coffre, puis les référencer à l'aide du kit SDK Oracle Cloud Infrastructure dans votre back-end Oracle Functions pour effectuer l'assistant. Vous pouvez également crypter et stocker le fichier JKS en toute sécurité.
Dans la section Avant de commencer de ce guide de lecture de solution, vous devez configurer votre environnement Oracle Functions, par exemple à l'aide des guides de démarrage rapide. La configuration du guide de démarrage rapide vous demande de créer une stratégie pour les fonctions au niveau du compartiment racine. Dans l'exemple suivant, cette stratégie est nommée FnTenancyPolicy
. Vous devez ajouter des instructions supplémentaires à la stratégie pour permettre à Oracle Functions d'accéder aux bases de données associées à cette stratégie. Le nom du groupe pour Oracle Functions à utiliser doit être celui que vous avez créé lors de la configuration de la location dans le guide de démarrage rapide. Dans cet exemple, fnGroup1
est le groupe d'utilisateurs qui peut utiliser Oracle Functions.
Configurer l'application Oracle Visual Builder dans Oracle Identity Cloud Service
Les applications Oracle Visual Builder sont associées à une application Oracle Identity Cloud Service qui est automatiquement configurée en tant que client sécurisé. Vous devez configurer cette application pour qu'elle puisse être utilisée en tant que client de la ressource Oracle Functions.
Dans le cadre de l'interaction présentée dans l'architecture proposée, une application Oracle Visual Builder associée à une instance Oracle Identity Cloud Service et fédérée à Oracle Fusion Applications Cloud Service et connectée à Oracle Functions doit pouvoir générer un jeton d'accès pouvant accéder à API Gateway et aux ressources Oracle Functions (tel que défini par Scope). Vous devez configurer l'application Oracle Visual Builder dans Oracle Identity Cloud Service pour la définir en tant que client de la ressource qui étend la fonctionnalité SaaS en ajoutant la portée de la nouvelle application Oracle Functions que vous avez créée.
Lorsque vous créez une application dans Oracle Visual Builder, une application Oracle Identity Cloud Service est automatiquement créée. Par exemple, si vous créez une application nommée TestSaaSExtensionFN
, vous pouvez accéder à la console Oracle Identity Cloud Service et répertorier les applications, et vous devez trouver une application appelée TestSaaSExtensionFN
.