Anwendungen in Oracle Identity Cloud Service konfigurieren
Für eine ordnungsgemäße Authentifizierung müssen Sie dieselbe Oracle Identity Cloud Service-Instanz verwenden, die Ihre Oracle Fusion Applications Cloud Service - und Oracle PaaS ( Oracle Visual Builder ) - oder benutzerdefinierte HTML5-App sichert. Innerhalb von Oracle Identity Cloud Service müssen Sie eine Anwendung erstellen, die für die Clientauthentifizierung verwendet werden soll.
In diesem Szenario trennen wir die Matter von Oracle Functions plus Oracle API Gateway von der Interaktion zwischen Oracle Functions - und Oracle Fusion Applications Cloud Service-Entitys, indem sie beide mit Oracle Identity Cloud Service als separate Entitys schützen und nicht dieselbe Oracle Identity Cloud Service-Anwendung für beide verwenden.
Normalerweise führen Oracle SaaS-Erweiterungsanwendungen, die von Oracle-Kunden geschrieben werden, eine komplexe Logik durch. Beispiel: Ein gängiges Szenario ist das Abrufen von Daten aus Oracle Fusion Applications Cloud Service, das Verarbeiten dieser Daten in irgendeiner Weise und das Pushen von Daten an Oracle Fusion Applications Cloud Service an ein anderes Ziel, wie eine Datenbank.
Daher wird hier eine Architektur mit zwei Oracle Identity Cloud Service-Anwendungen dargestellt:
- Eine Anwendung, die Ihre Oracle Functions als Ressource und als vertrauenswürdiger Client von Oracle Fusion Applications Cloud Service schützt.
- Eine Anwendung, die Ihre Oracle Fusion Applications Cloud Service-Instanz als Ressource schützt.
Die Anweisungen in diesem Artikel führen Sie durch die Erstellung und Konfiguration der ersten Anwendung, um Oracle Functions zu schützen. Die zweite dieser beiden Anwendungen sollte bereits vorhanden sein: Sie waren erforderlich, um eine Federation zwischen Oracle Fusion Applications Cloud Service und Oracle PaaS zu erstellen und zu konfigurieren.
Mit diesem Setup können Sie verschiedene Regeln oder Policys konfigurieren, um auf Funktionen zuzugreifen, als die Regeln oder Policys, mit denen ein vertrauenswürdiger Client Oracle Fusion Applications Cloud Service erreichen kann. In dieser Konfiguration erfordert das eingehende Zugriffstoken für das API-Gateway nur einen autorisierten Zugriff auf Oracle Functions, um die Funktionsfunktion aufzurufen. Es muss jedoch nicht unbedingt dieselbe Berechtigung haben wie für den Zugriff auf die Oracle Fusion Applications Cloud Service-Instanz erforderlich. Die Oracle Visual Builder-Anwendung erfordert eine zugehörige Oracle Identity Cloud Service-Anwendung, die das Zugriffstoken generiert, um API-Gateway zu erreichen. Diese Oracle Identity Cloud Service-Anwendung ist der Client der Funktionen/API-Gateway-Ressource.
Der im Architekturdiagramm angezeigte Austausch von Token bietet eine zusätzliche Schutzebene, mit der die Identität für den Fall einer Funktion als Client einer Oracle Fusion Applications Cloud Service-Ressource propagiert wird. Dies ähnelt dem Oracle WebLogic OAuth-Assertion-Prozess mit Oracle Identity Cloud Service, das in älteren unterstützten SaaS-Erweiterungen verwendet wird, wie solche mit Oracle Java Cloud Service.
Das kann bedeuten, dass die zum Generieren des Tokens für Oracle Functions verwendete Oracle Identity Cloud Service-Anwendung in bestimmten Anwendungsfällen nur Ressourcen-Geltungsbereiche für Funktionen, aber nicht für Oracle Fusion Applications Cloud Service haben konnte. In diesem Fall kann Oracle Functions das Token nicht wiederverwenden, um Oracle Fusion Applications Cloud Service aufzurufen. Es ist jedoch gültig, um Oracle Functions zu erreichen. Sie können daher logische Abläufe implementieren, auf die einige Benutzer oder Funktionsweiterleitungen keinen Zugriff haben, während andere auf der Geschäftslogik, den Benutzerrollen und den Berechtigungen oder anderen Kriterien basieren.
In anderen Anwendungsfällen kann Oracle Functions Code aufnehmen, um ein Zugriffstoken für Oracle Fusion Applications Cloud Service mit den Zertifikaten und Benutzern anzufordern, die in der Anforderung vom API-Gateway übergeben werden.
Anwendung für Oracle Functions in Oracle Identity Cloud Service erstellen
Innerhalb von Oracle Identity Cloud Service müssen Sie eine vertrauliche Anwendung für die Oracle Functions-Clientauthentifizierung erstellen.
Erstellen Sie innerhalb derselben Oracle Identity Cloud Service-Instanz, die Sie mit Ihrer Oracle Fusion Applications Cloud Service-Instanz verbunden haben, eine vertrauliche Anwendung, und stellen Sie sicher, dass die Clientkonfiguration so eingerichtet ist, dass die Berechtigungen "Clientzugangsdaten", "JWT-Assertion" und "Ressourceneigentümer" aktiviert werden.
Oracle Identity Cloud Service-Anwendung vorbereiten und testen
Konfigurieren Sie die Oracle Identity Cloud Service Confidential Application für die Verbindung mit der Anwendung, die Ihrer Oracle Fusion Applications Cloud Service-Instanz entspricht, und testen Sie dann die Anwendung.
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>'
Diese Kul-Abfrage muss Aufwandsdaten zurückgeben.Oracle Functions Oracle Identity Cloud Service-Anwendung als vertrauenswürdiger Client konfigurieren
Sie benötigen ein Zertifikat, das von der Oracle Identity Cloud Service-Anwendung als vertrauenswürdiger Client verwendet werden muss, um OAuth-Anforderungen an Oracle Functions zu stellen. Sie können ein selbstsigniertes Zertifikat zur Verwendung während der Entwicklung generieren, wenn noch kein Zertifikat verfügbar ist.
Das angegebene Skript genSelfSignedKeypair.sh
kann zur Generierung eines Schlüssels verwendet werden, wenn noch kein Schlüssel vorhanden ist. Führen Sie das Skript aus, indem Sie die Mandanten- und Schlüsselaliaswerte angeben. In diesem Beispiel wurde mytenant als Mandantenname und fnassertionkey als Schlüsselalias angegeben.
Keystore-Informationen in Oracle Cloud Infrastructure Vault importieren
Der Assertion-Prozess mit Oracle Functions erfordert die Verwendung des importierten Keystores und der importierten Kennwörter. Um die bestmögliche Sicherheit zu gewährleisten und zu vermeiden, dass hartcodierte Kennwörter und Secrets verwendet werden, können Sie Oracle Cloud Infrastructure Vault nutzen.
Mit dem Oracle Cloud Infrastructure Vault Service können Sie vertrauliche Daten sicher verschlüsseln und speichern. Sie können die Keystore-Kennwörter und Public Key-Kennwörter in einem Vault speichern und sie dann mit dem Oracle Cloud Infrastructure-SDK in Ihrem Oracle Functions Backend referenzieren, um die Zuweisung auszuführen. Sie können die JKS-Datei auch sicher verschlüsseln und speichern.
Im Abschnitt "Vor Ihnen beginnen" dieses Lösungsabspielbuchs mussten Sie Ihre Oracle Functions-Umgebung einrichten, beispielsweise mit den Schnellstartleitfäden. Das Setup der Kurzanleitung fordert Sie auf, eine Policy für Funktionen auf der Stamm-Compart-Ebene zu erstellen. Im folgenden Beispiel hat die Policy den Namen FnTenancyPolicy
. Sie müssen zusätzliche Anweisungen zur Policy hinzufügen, damit Oracle Functions auf Vaults zugreifen kann, die mit dieser Policy verknüpft sind. Der Name der Gruppe für Oracle Functions, die verwendet werden soll, muss der Name sein, den Sie beim Konfigurieren des Mandanten im Schnellstarthandbuch erstellt haben. In diesem Beispiel ist fnGroup1
die Gruppe von Benutzern, die Oracle Functions verwenden können.
Oracle Visual Builder-Anwendung in Oracle Identity Cloud Service konfigurieren
Mit Oracle Visual Builder-Anwendungen ist eine Oracle Identity Cloud Service-Anwendung verknüpft, die automatisch als vertrauenswürdiger Client konfiguriert wird. Sie müssen diese Anwendung so konfigurieren, dass sie als Client der Oracle Functions-Ressource verwendet werden kann.
Im Rahmen der in der vorgeschlagenen Architektur dargestellten Interaktion muss eine mit einer Oracle Identity Cloud Service-Instanz verknüpfte Oracle Visual Builder-Anwendung, die mit Oracle Fusion Applications Cloud Service verbunden und mit Oracle Functions verbunden ist, ein Zugriffstoken generieren können, das API-Gateway und Oracle Functions-Ressourcen erreichen kann (wie durch Scope festgelegt). Sie müssen Ihre Oracle Visual Builder-Anwendung in Oracle Identity Cloud Service konfigurieren, um sie als Client der Ressource festzulegen, die die SaaS-Funktionalität erweitert, indem Sie den Geltungsbereich der neu erstellten Oracle Functions-Anwendung hinzufügen.
Wenn Sie eine neue Anwendung in Oracle Visual Builder erstellen, wird automatisch eine Oracle Identity Cloud Service-Anwendung erstellt. Beispiel: Wenn Sie eine Anwendung mit dem Namen TestSaaSExtensionFN
erstellen, können Sie zur Oracle Identity Cloud Service-Konsole navigieren und Anwendungen auflisten. Außerdem müssen Sie die Anwendung mit dem Namen TestSaaSExtensionFN
suchen.