Configurare le applicazioni in Oracle Identity Cloud Service
Per garantire il corretto funzionamento dell'autenticazione, è necessario utilizzare la stessa istanza di Oracle Identity Cloud Service che protegge l'applicazione Oracle Fusion Applications Cloud Service e Oracle PaaS ( Oracle Visual Builder ) o HTML5 personalizzata. In Oracle Identity Cloud Service è necessario creare un'applicazione da utilizzare per l'autenticazione del client.
In questo scenario è necessario separare le materie di Oracle Functions più Oracle API Gateway dall'interazione tra le entità di Oracle Functions e Oracle Fusion Applications Cloud Service, proteggendo entrambe le entità utilizzando Oracle Identity Cloud Service come entità separate anziché utilizzare la stessa applicazione Oracle Identity Cloud Service per entrambe.
In genere, le applicazioni di estensione Oracle SaaS scritte dai clienti Oracle eseguono alcune logiche complesse. Ad esempio, uno scenario comune consiste nel recuperare i dati da Oracle Fusion Applications Cloud Service, elaborarli in qualche modo ed eseguire il push dei dati in Oracle Fusion Applications Cloud Service in un altro target, ad esempio un database.
Di conseguenza, è presente un'architettura con due applicazioni Oracle Identity Cloud Service:
- Un'applicazione che protegge Oracle Functions come risorsa e come client sicuro di Oracle Fusion Applications Cloud Service.
- Un'applicazione che protegge l'istanza di Oracle Fusion Applications Cloud Service come risorsa.
Le istruzioni fornite in questo articolo guida l'utente attraverso il processo di creazione e configurazione della prima applicazione per proteggere Oracle Functions. La seconda applicazione deve esistere già: è necessario creare e configurare un'applicazione per consentire la federazione tra Oracle Fusion Applications Cloud Service e Oracle PaaS.
Questa impostazione consente di configurare regole o criteri diversi per accedere alle funzioni rispetto a tali regole o criteri per un client sicuro al fine di raggiungere Oracle Fusion Applications Cloud Service. In questa configurazione, il token di accesso in entrata per il gateway API richiede solo l'accesso autorizzato a Oracle Functions per richiamare la funzione, ma non deve necessariamente avere le stesse autorizzazioni necessarie per accedere all'istanza di Oracle Fusion Applications Cloud Service. L'applicazione Oracle Visual Builder richiede un'applicazione Oracle Identity Cloud Service associata che genererà il token di accesso per raggiungere il gateway API. Questa applicazione Oracle Identity Cloud Service sarà il client della risorsa gateway funzioni/API.
Gli scambi di token visualizzati nel diagramma dell'architettura forniscono un layer di protezione aggiuntivo per propagare l'identità nel caso di una funzione client di una risorsa Oracle Fusion Applications Cloud Service, simile al processo di asserzione OAuth di Oracle WebLogic con Oracle Identity Cloud Service utilizzato in estensioni SaaS supportate meno recenti, come ad esempio quelle che utilizzano Oracle Java Cloud Service.
Ciò potrebbe significare che in alcuni casi d'uso l'applicazione Oracle Identity Cloud Service utilizzata per generare il token per Oracle Functions potrebbe avere solo ambiti di risorse per le funzioni ma non per Oracle Fusion Applications Cloud Service. In questo caso, Oracle Functions non potrà riutilizzare il token per richiamare Oracle Fusion Applications Cloud Service, ma è valido per raggiungere Oracle Functions. È pertanto possibile implementare flussi logici in cui alcuni utenti o funzioni non hanno accesso, mentre altre attività, in base alla logica aziendale, ai ruoli e ai privilegi utente o ad altri criteri.
In altri casi d'uso, Oracle Functions può includere codice per richiedere un token di accesso per Oracle Fusion Applications Cloud Service utilizzando i certificati e l'utente passati nella richiesta dal gateway API.
Creare un'applicazione per Oracle Functions in Oracle Identity Cloud Service
In Oracle Identity Cloud Service è necessario creare un'applicazione riservata da utilizzare per l'autenticazione del client Oracle Functions.
All'interno della stessa istanza di Oracle Identity Cloud Service federata con l'istanza di Oracle Fusion Applications Cloud Service, creare un'applicazione riservata e assicurarsi che la configurazione del client sia configurata in modo da abilitare le autorizzazioni Credenziali client, Asserzione JWT e Proprietario risorsa.
Preparare ed eseguire il test dell'applicazione Oracle Identity Cloud Service
Configurare l'applicazione Oracle Identity Cloud Service Confidential per connettersi all'applicazione corrispondente all'istanza di Oracle Fusion Applications Cloud Service in uso, quindi eseguire il test dell'applicazione.
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>'
Questa query curl deve restituire i dati delle spese.Configurare l'applicazione Oracle Functions Oracle Identity Cloud Service come client sicuro
È necessario disporre di un certificato che l'applicazione Oracle Identity Cloud Service deve utilizzare come client sicuro per effettuare richieste OAuth a Oracle Functions. Se non si dispone già di un certificato disponibile, è possibile generare un certificato con firma automatica da utilizzare durante lo sviluppo.
Lo script genSelfSignedKeypair.sh
fornito può essere utilizzato per generare una chiave se non ne dispone già una. Eseguire lo script specificando i valori tenant e alias chiave. In questo esempio sono stati forniti mytenant come nome tenant e fnassertionkey come alias della chiave.
Importare le informazioni del keystore in Oracle Cloud Infrastructure Vault
Il processo di asserzione con Oracle Functions richiederà l'uso del keystore e delle password importati. Per una maggiore sicurezza e evitare di usare password non codificate e segrete, puoi sfruttare Oracle Cloud Infrastructure Vault.
Il servizio Oracle Cloud Infrastructure Vault consente di cifrare e memorizzare i dati riservati in modo sicuro. È possibile memorizzare le password del keystore e delle chiavi pubbliche in un Vault e quindi farvi riferimento mediante l'SDK Oracle Cloud Infrastructure nel backend Oracle Functions per eseguire l'operazione di assegnazione. È inoltre possibile cifrare e memorizzare il file JKS in sicurezza.
Nella sezione Prima di iniziare la riproduzione di questa soluzione, è stato richiesto di impostare l'ambiente Oracle Functions, ad esempio mediante Quick Start Guides. L'impostazione Guida avvio rapido richiede di creare un criterio per le funzioni a livello di compartimento radice. Nell'esempio seguente, il criterio è denominato FnTenancyPolicy
. È necessario aggiungere ulteriori istruzioni al criterio per consentire a Oracle Functions di accedere ai vault associati al criterio. Il nome del gruppo per l'uso di Oracle Functions deve essere quello creato durante la configurazione della tenancy nel manuale Quick Start Guide. In questo esempio, fnGroup1
è il gruppo di utenti in grado di utilizzare Oracle Functions.
Configurare l'applicazione Oracle Visual Builder in Oracle Identity Cloud Service
Alle applicazioni Oracle Visual Builder è associata un'applicazione Oracle Identity Cloud Service configurata automaticamente come client sicuro. È necessario configurare l'applicazione in modo che possa essere utilizzata come client della risorsa Oracle Functions.
Nell'ambito dell'interazione visualizzata nell'architettura proposta, un'applicazione Oracle Visual Builder associata a un'istanza di Oracle Identity Cloud Service, federata con Oracle Fusion Applications Cloud Service e connessa a Oracle Functions, deve essere in grado di generare un token di accesso in grado di raggiungere il gateway API e le risorse Oracle Functions (in base all'ambito). È necessario configurare l'applicazione Oracle Visual Builder in Oracle Identity Cloud Service per impostarla come client della risorsa che estende la funzionalità SaaS mediante l'aggiunta dell'ambito della nuova applicazione Oracle Functions creata.
Quando si crea una nuova applicazione in Oracle Visual Builder, viene creata automaticamente un'applicazione Oracle Identity Cloud Service. Ad esempio, se si crea un'applicazione denominata TestSaaSExtensionFN
, è possibile passare alla console di Oracle Identity Cloud Service ed elencare le applicazioni e trovare un'applicazione denominata TestSaaSExtensionFN
.