附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱開始使用 Oracle Cloud Infrastructure Free Tier 。
- 它使用 Oracle Cloud Infrastructure 憑證、租用戶及區間的範例值。完成實驗室時,請以雲端環境特有的值取代這些值。
將 Oracle APEX 與 Oracle Cloud Infrastructure Identity and Access Management Identity Domains 整合
簡介
Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 提供身分識別和存取管理功能,例如 Oracle Cloud Infrastructure 的認證、單一登入 (SSO) 和身分識別生命週期管理,以及 Oracle 和非 Oracle 應用程式,無論是 SaaS、雲端代管還是內部部署。
目標
- 使用 OCI IAM 識別網域作為身分識別提供者 (IdP) 在 Oracle APEX 應用程式上設定 SSO,此身分識別提供者提供多重因素認證 (MFA)、調適型安全、報表等安全控制。
必要條件
-
合作夥伴應用程式設定之任何識別網域的 OCI IAM 管理員存取權。
-
Oracle APEX 18.1 和更新版本搭配認證設定的應用程式。
工作 1:在 Oracle APEX 中安裝範例應用程式
-
登入您的 APEX 工作區以建立範例應用程式,我們將使用 OCI IAM 作為 SSO 的 IdP。若要在 Oracle APEX 上建立應用程式,請按一下應用程式產生器。
-
按一下建立應用程式。
-
選取從檔案。
-
按一下複製並貼上,然後選取銷售,如下圖所示。
作業 2:在 OCI IAM 中註冊機密應用程式
我們將在 OCI IAM 網域中註冊機密應用程式。此教學課程已使用預設網域。
-
登入 OCI 主控台,瀏覽至身分識別與安全。在識別下方,按一下網域和應用程式。
-
選取機密應用程式,然後按一下啟動工作流程。
-
輸入您應用程式的名稱,然後按一下下一步。
-
選取授權代碼作為允許的授權類型,然後按下一步。
-
以下列格式輸入重新導向 URL :
https://guid-demodb.adb.region.oraclecloudapps.com/ords/apex_authentication.callback
。例如,https://guid-demodb.adb.us-ashburn-1.oraclecloudapps.com/ords/apex_authentication.callback
。 -
以下列格式輸入登出後重新導向 URL :
https://guid-demodb.adb.region.oraclecloudapps.com/ords/f?p=your_apex_number_here
。 -
將登出 URL 留白。
注意:請注意,此 URL 在稍後於 Oracle APEX 認證配置登出後 URL 中新增時必須完全相符。
-
按一下完成。
-
按一下編輯應用程式,然後在認證與授權底下選取強制授權為授權 (這會在稍後用來控制對 Oracle APEX 應用程式的存取)。
-
按一下啟動應用程式。
-
複製我們將用於 Oracle APEX 端組態的從屬端 ID 和從屬端密碼。
工作 3:在您的 Oracle APEX 工作區中建立新的 Web 證明資料
-
開啟 Oracle APEX 工作區。在「任務 1」中建立的應用程式中,按一下共用物件。
-
按一下憑證。
-
按一下建立。
-
輸入下列資訊,然後按一下建立。
注意:請使用「工作 2」中機密應用程式的從屬端 ID 和從屬端加密密碼。
-
將使用者指派給此應用程式。
作業 4:在 Oracle APEX 中為範例應用程式建立新的認證配置
-
開啟 Oracle APEX 工作區,然後按一下共用物件。在安全底下,按一下認證配置和建立。
-
從圖庫選取根據預先設定的配置,然後按下一步。
-
輸入下列資訊,然後按一下建立。尋找 URL 將會是
https://[idcs-service-url]/.well-known/openid-configuration/
。 -
按一下建立的 Oracle Identity Cloud Service (IDCS) 認證配置 - 目前。
-
按一下登出後 URL 頁籤,選取移至與 URL 。在 URL 中,貼上來自 Task 2.6 的 Oracle APEX 應用程式 URL。此 URL 必須符合 IDCS 登出後重新導向 URL。
-
在安全性屬性下,更新資訊並按一下套用變更。
-
( 選擇性 ) 在來源區段中,輸入下列 PL/SQL 程式碼。
注意:只有在想要根據使用者所屬的群組變更應用程式的功能或行為時,才需要控制授權。如需詳細資訊,請參閱本教學課程結尾的控制授權段落。
procedure load_dynamic_groups as l_group_names apex_t_varchar2; begin -- -- add all group names to l_group_names -- for i in 1 .. apex_json.get_count('groups') loop apex_string.push ( p_table => l_group_names, p_value => apex_json.get_varchar2 ( p_path => 'groups[%d].name', p0 => i )); end loop; -- -- save group names in session -- apex_authorization.enable_dynamic_groups ( p_group_names => l_group_names ); end;
-
( 用於步驟 7 的選擇性 ) 在登入處理下,輸入下列資訊並儲存。
作業 5:測試登入 Oracle APEX 應用程式
-
按一下執行頁面。
-
在提示的登入畫面中輸入證明資料。在本自學課程中,用於驗證的帳戶會從本機使用中目錄同步,而密碼則位於使用中目錄中。OCI IAM 將會收集使用者名稱和密碼,並對作用中目錄進行驗證。
-
按一下允許。
就會顯示應用程式登入頁面。
控制授權
您可以在為 SSO 設定的機密應用程式上啟用強制授權為授權來控制授權,這將只允許指派給此應用程式的使用者或群組存取 Oracle APEX 應用程式。這會顯示在「任務 2.9」中。
控制授權的另一個方式是在認證配置中使用 PL/SQL 程序,如 Task 4.7 和 4.8 所示。成功驗證後,將會呼叫 userinfo_endpoint
,並將結果提供給後續驗證程序使用。JSON 結果會轉換成群組清單,並儲存在內建於群組管理的 Oracle APEX 階段作業中,之後可與共用元件下的授權配置連結,以根據使用者的群組成員身分提供應用程式的存取權。
相關連結
認可
- 作者 - Aqib Javid Bhat (資深雲端工程師)
其他學習資源
瀏覽 docs.oracle.com/learn 的其他實驗室,或前往 Oracle Learning YouTube 頻道存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Integrate Oracle APEX with Oracle Cloud Infrastructure Identity and Access Management Identity Domains
F78526-02
May 2024