設定 Oracle Identity Cloud Service 中的應用程式
為了讓認證能夠正常運作,您必須使用與 Oracle Fusion Applications Cloud Service 及 Oracle PaaS ( Oracle Visual Builder ) 或自訂 ml5 應用程式相同的 Oracle Identity Cloud Service 執行處理。在 Oracle Identity Cloud Service 中,您需要建立用於從屬端認證的應用程式。
在此情況下,我們會使用 Oracle Identity Cloud Service 作為個別的個體,而非針對兩者使用相同的 Oracle Identity Cloud Service Application,來保護 Oracle Functions 加上 Oracle API Gateway 與 Oracle Functions 與 Oracle Fusion Applications Cloud Service 個體之間的互動。
通常,由 Oracle 客戶撰寫的 Oracle SaaS 擴充應用程式會執行一些複雜的邏輯。例如,常見的案例是從 Oracle Fusion Applications Cloud Service 取得資料,以某種方式處理資料,然後將資料發送回 Oracle Fusion Applications Cloud Service,再發送到另一個目標 (例如資料庫)。
因此,我們在這裡有兩個 Oracle Identity Cloud Service 應用程式的架構:
- 此應用程式可以保護您的 Oracle Functions 作為資源,並作為 Oracle Fusion Applications Cloud Service 的信任從屬端。
- 可保護您的 Oracle Fusion Applications Cloud Service 執行處理作為資源的應用程式。
本文章中的指示將逐步引導您完成建立及設定這些應用程式第一個的程序,以保護 Oracle Functions。這兩個應用程式的第二個應用程式已經存在:您必須先建立並設定應用程式,才能夠在 Oracle Fusion Applications Cloud Service 與 Oracle PaaS 之間啟用聯合項目。
此設定可讓您設定不同規則或原則來存取「信任從屬端」之規則或原則以外的函數,來達到 Oracle Fusion Applications Cloud Service。在此組態中,「API 閘道」的內送存取記號只需要 Oracle Functions 的授權存取才能呼叫「函數」功能,但不一定要同時具有存取 Oracle Fusion Applications Cloud Service 執行處理所需的授權。Oracle Visual Builder 應用程式需要關聯的「Oracle Identity Cloud Service 應用程式」,才能產生存取權杖以連線「API 閘道」。此「Oracle Identity Cloud Service 應用程式」將會是「函數/API 閘道資源」的從屬端。
架構圖表中顯示的記號交換提供一個額外的保護層,以在「函數」為Oracle Fusion Applications Cloud Service 資源的從屬端時傳輸識別(類似Oracle WebLogic OAuth宣告處理作業,其使用舊版SaaS擴充功能的Oracle Identity Cloud Service (例如使用Oracle Java Cloud Service的擴充功能)。
這可能意謂著在某些使用案例中,用來產生 Oracle Functions 之記號的 Oracle Identity Cloud Service 應用程式只能針對「函數」使用資源範圍,而不能針對 Oracle Fusion Applications Cloud Service。在此情況下,Oracle Functions 不會重複使用記號來呼叫 Oracle Fusion Applications Cloud Service,但是在達到 Oracle Functions 時會有效。因此,您可以導入邏輯流程,而部分使用者或「功能」版面配置沒有存取權,而其他使用者則根據商業邏輯、使用者角色和權限或其他條件。
在其他使用案例中,Oracle Functions 可以使用 API 閘道要求中傳送的憑證和使用者,包括用來要求 Oracle Fusion Applications Cloud Service 之存取權杖的程式碼。
在 Oracle Identity Cloud Service 中為 Oracle Functions 建立應用程式
在 Oracle Identity Cloud Service 中,您必須建立 Oracle Functions 從屬端認證所使用的機密應用程式。
在與 Oracle Fusion Applications Cloud Service 執行處理聯合的相同 Oracle Identity Cloud Service 執行處理內,建立機密應用程式並確保從屬端組態已設定,以便啟用從屬端證明資料、JWT 宣告和資源擁有者授權。
準備及測試您的 Oracle Identity Cloud Service 應用程式
設定 Oracle Identity Cloud Service Confidential 應用程式,以連線至與您 Oracle Fusion Applications Cloud Service 執行處理對應的應用程式,然後測試應用程式。
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>'
此 curl 查詢應該會傳回「費用」資料。將 Oracle Functions Oracle Identity Cloud Service 應用程式設定為信任的從屬端
Oracle Identity Cloud Service 應用程式必須使用憑證作為「信任的從屬端」,才能在 Oracle Functions 提出 OAuth 要求。如果您還沒有憑證,則可以在開發期間產生自行簽署憑證以供使用。
如果您還沒有金鑰,可以使用提供的命令檔 genSelfSignedKeypair.sh
來產生金鑰。指定用戶和金鑰別名值以執行命令檔。在此範例中,我們提供了 mytenant 作為租用戶名稱,並以 fnassertionkey 作為金鑰別名。
將金鑰存放區資訊匯入 Oracle Cloud Infrastructure Vault
使用 Oracle Functions 的宣告處理作業將需要使用匯入的金鑰存放區和密碼。為了達到最佳安全性並避免使用硬式編碼的密碼和密碼,您可以利用 Oracle Cloud Infrastructure Vault。
Oracle Cloud Infrastructure Vault 服務可讓您安全地加密並儲存機密資料。您可以將金鑰存放區與公開金鑰密碼儲存在 Vault 中,然後使用 Oracle Functions 後端中的 Oracle Cloud Infrastructure SDK 來參照它,以執行傳遞。您也可以安全地加密並儲存 JKS 檔案。
您必須在此解決方案播放書的「開始之前」區段中,使用「快速開始導引」來設定您的 Oracle Functions 環境。「快速啟動導引」設定會要求您在根區間層次建立「函數」的「原則」。在下列範例中,該原則的名稱為 FnTenancyPolicy
。您需要新增其他敘述句到原則中,才能讓 Oracle Functions 存取與該原則關聯的保存庫。用於 Oracle Functions 的群組名稱應為您在快速開始指南中設定用戶時所建立的名稱。在此範例中,fnGroup1
是可以使用 Oracle Functions 的使用者群組。
在 Oracle Identity Cloud Service 中設定 Oracle Visual Builder 應用程式
Oracle Visual Builder 應用程式有一個關聯的「Oracle Identity Cloud Service 應用程式」,它會自動設定為「信任的從屬端」。您必須設定該應用程式,才能將它當作「Oracle Functions 資源」的從屬端使用。
作為建議架構中顯示的互動之一部分,與 Oracle Identity Cloud Service 執行處理相關聯的 Oracle Visual Builder 應用程式與 Oracle Fusion Applications Cloud Service 聯合並連線至 Oracle Functions,必須產生能夠連線「API 閘道」和「Oracle Functions 資源」(如「範圍」所設定) 的存取權杖。您必須在 Oracle Identity Cloud Service 中設定 Oracle Visual Builder 應用程式,以將它設為資源從屬端,藉由新增您建立的新 Oracle Functions 應用程式範圍來擴充 SaaS 功能。
在 Oracle Visual Builder 中建立新應用程式時,將會自動建立 Oracle Identity Cloud Service 應用程式。例如,如果您建立名為 TestSaaSExtensionFN
的應用程式,您可以導覽至 Oracle Identity Cloud Service 主控台和列出應用程式,而且您應該找到一個名為 TestSaaSExtensionFN
的應用程式。