整合 Oracle Access Management 與 Oracle 進階認證
簡介
本教學課程示範如何將 Oracle Access Management (OAM) 與 Oracle Advanced Authentication (OAA) 整合,讓存取受保護應用程式的使用者可以登入使用 Single-Sign On (SSO) 的 OAM,然後以第二個因素進行多重因素認證。
這也會顯示如何設定使用者移轉。使用者移轉是使用者登入 OAM 的處理作業,且使用者會根據定義的 LDAP 屬性,自動移轉至 OAA。為每個使用者註冊的因素是以 OAA 認證 Plugin 中定義的 LDAP 屬性為基礎。如果使用者已在 OAM 的「預設使用者識別存放區」中設定任何 LDAP 屬性,系統會自動在 OAA 中註冊這些因素。此教學課程的 LDAP 屬性 mail
和 mobile
是用來設定使用者的電子郵件和簡訊因子。
目標
在此教學課程中,您將會執行下列作業:
- 將 OAA 登錄為 OAM 中的 TAP 合作夥伴
- 在 OAA 中設定 OAM 代理程式
- 安裝並設定 OAM 中的 OAA Plugin 與模組
- 測試 OAM 修正 OAA 整合成功
Oracle Access Management 先決條件
遵循此教學課程之前,您必須具有:
- 正在執行 Oracle Access Management 12c (12.2.1.4) 安裝。安裝在 OAM 使用的預設使用者識別存放區中必須具有範例使用者。
- 安裝 Oracle HTTP Server 和 Oracle WebGate
- 受 WebGate 保護的應用程式
為了進行示範,此教學課程在教學課程系列 Oracle Access Management 12c 入門中所建立的環境上建立。在此環境中,Oracle Access Management 會使用 Oracle Unified Directory (OUD) 作為其預設使用者識別存放區。名為 mybank
的應用程式會部署至 WebLogic 伺服器,並透過 Oracle WebGate 進行保護。此自學課程對 OAM 主機名稱、URL、PATH 和使用者的所有參照,都是根據 Oracle Access Management 12c 入門 教學課程中使用的參照。
如果針對您的 OAM 環境使用以上的教學課程,您必須下載 oaausers.ldif 範例。此檔案包含安裝 OAA 之前所需的使用者和群組。編輯 oaausers.ldif
,然後更新每個具有有效值的 mail
、mobile
和 <password>
。這可讓您測試使用者登入 OAM 時 (例如 testuser
),使用者將移轉至 OAA 時,其因素設為 SMS 和電子郵件。對 OUD 執行 ldapmodify -f oaausers.ldif
以載入使用者和群組。
Oracle 進階驗證先決條件
遵循此教學課程之前,您必須具有:
- 執行中的 Oracle Advanced Authentication (OAA) 執行處理。如需如何安裝 OAA 的指示,請參閱管理 Oracle Advanced Authentication and Oracle Adaptive Risk Management。
- 已經安裝 OAA 執行處理,而且設定為針對上列相同的 OAM 安裝使用 OAUTH。您必須知道在 OAA 安裝期間,傳入
installOAA.properties
檔案中的oauth.applicationid
值。 - OAA 必須設定為與訊息提供者搭配使用,才能透過 SMS 和 (或) EMAIL 進行認證。請參閱設定 Oracle UMS Server for Email and SMS 和自訂電子郵件和 SMS 訊息提供者。
- OAA 管理 URL,例如:
https://oaa.example.com/oaa-admin
和 Adminstrator 證明資料,例如:oaadmin/<password>
- OAA 使用者偏好設定 (SPUI) URL:例如:
http://oaa.example.com/oaa/rui
將 OAA 登錄為 OAM 中的 TAP 合作夥伴
在此區段中,您將 OAA 註冊為 OAM 中的信任驗證通訊協定 (TAP) 合作夥伴。
目標
將 OAA 註冊為 OAM 中的 TAP 合作夥伴。
在 OAM 中登錄 TAP 合作夥伴
-
在 OAM 伺服器上,以
oracle
形式啟動終端機視窗,並輸入下列命令:cd /u01/app/oracle/product/middleware/oracle_common/common/bin ./wlst.sh
輸出看起來如下:
Initializing WebLogic Scripting Tool (WLST) ... Welcome to WebLogic Server Administration Scripting Shell Type help() for help on available commands wls:/offline>
-
以下列方式連線至「OAM 管理伺服器」:
wls:/offline> connect ('weblogic','<password>')
輸出看起來如下:
Successfully connected to Admin Server "AdminServer" that belongs to domain "oam_domain". Warning: An insecure protocol was used to connect to the server. To ensure on-the-wire security, the SSL port or Admin port should be used instead. wls:/oam_domain/serverConfig/>
-
執行下列命令即可重複 OAA TAP 夥伴:
wls:/oam_domain/serverConfig/> registerThirdPartyTAPPartner(partnerName = "<partner_name>", keystoreLocation= "<path_to_keystore>", password="<keystore_password>", tapTokenVersion="v2.0", tapScheme="TAPScheme", tapRedirectUrl="<URL>")
其中:
<partner_name>
是您要提供給合作夥伴應用程式的名稱。<path_to_keystore>
是要產生之金鑰存放區的位置和檔案名稱。<keystore_password>
是產生之金鑰存放區的密碼。tapRedirectUrl
是任何有效的 http URL。URL 必須可連線並傳回 200 個確定回應。請勿使用 https URL,否則將會產生錯誤訊息。
例如:
registerThirdPartyTAPPartner(partnerName = "OAM-MFAPartner", keystoreLocation= "/tmp/OAMOAAKeyStore.jks", password="********", tapTokenVersion="v2.0", tapScheme="TAPScheme", tapRedirectUrl="http://oam.example.com:7777")
輸出看起來如下:
Registration Successful wls:/oam_domain/serverConfig/>
在以上範例中,將會產生金鑰存放區
/tmp/OAMOAAKeyStore.jks
。此金鑰與密碼將 OAM 註冊為 OAA 中的代理程式時使用。 -
執行下列命令以結束 wlst:
wls:/oam_domain/serverConfig/> exit() Exiting WebLogic Scripting Tool.
在 OAA 中設定 OAM 代理程式
在此區段中,您可以在「OAM 管理主控台」中設定 OAM 代理程式。
目標
設定 OAA 中 OAM 的代理程式。
在 OAA 中設定 OAM 代理程式
-
以管理員證明資料登入 OAA 管理主控台。例如:
https://oaa.example.com/oaa-admin
-
在快速動作下,選取建立 OAM 整合代理程式。
-
在建立整合代理程式的詳細資訊頁籤中,輸入下列項目:
- 名稱:
<partner_name>
,其中值與先前註冊的 TAP 合作夥伴名稱相同,例如:OAM-MFAPartner
- 描述:
OAM TAP Partner for OAA
- 整合代理程式類型:
Oracle Access Management
- 從屬端 ID:按一下
Re-Generate
- 從屬端密碼:按一下
Re-Generate
- 私密金鑰檔案:拖放註冊 TAP 合作夥伴時所建立的金鑰檔案 (例如
/tmp/OAMOAAKeyStore.jks
),或按一下 + 從檔案系統加以選取 - 私密金鑰密碼:
<password>
註冊 TAP 合作夥伴時為金鑰存放區輸入的密碼
例如:
- 名稱:
-
Copy the Client ID e.g
e1d7dd2d-83e2-4ac8-b338-5dbc6348b526
and Client Secret e.g34e360cf-3ccc-4dcd-911e-0b00e367dcee9
to a safe place as these are required later when configuring OAM. -
按一下儲存
-
在整合代理程式畫面中,按一下剛建立的代理程式,例如:OAM-MFAPartner
-
在保證等級中,按一下建立。
-
在建立保證層次中輸入下列項目,然後按一下建立:
- 名稱:
OAM-MFA-Level
- 描述:
OAM-MFA-Level for OAM Integration
例如:
注意:針對名稱輸入的值稍後將用於
ASSURANCE_LEVEL
的 OAM OAA Plugin 組態中。 - 名稱:
-
在認證層次頁籤中,按一下 OAM-MFA-Level。
-
在使用下,選取要指派給「保證等級」的「因素」,例如:Oracle Mobile Authenticator、電子郵件安全提示和簡訊安全提示,然後按一下儲存。
例如:
在 OAM 中安裝並設定 OAA Plugin
您可以在此段落中設定 OAM 中的 OAA Plugin。
目標
若要在 OAM 中設定 OAA Plugin,並且建立關聯的認證模組,以啟用與 OAA 的整合以進行第二因子驗證。
安裝 OAM 的 OAA Plugin
注意:如果使用 OAM 搭配 4 月 22 搭售品修正程式 (12.2.1.4.220404) 或更新版本,您可以略過此區段並移至建立 OAA 的認證模組,因為預設會包含此 Plugin。
-
在執行
oaamgmt
Pod 的 OAA 環境上,將 OAA PluginOAAAuthnPlugin.jar
從 Pod/u01/oracle/libs
目錄複製到主機機器上的目錄 (例如/scratch/OAA
):$ kubectl cp <namespace>/<oaamgmt_pod>:/u01/oracle/libs/OAAAuthnPlugin.jar <directory>/OAAAuthnPlugin.jar
例如:
$ kubectl cp oaans/oaamgmt-oaa-mgmt-5c68dc9c57-t2h6w:/u01/oracle/libs/OAAAuthnPlugin.jar /scratch/OAA/OAAAuthnPlugin.jar
-
啟動瀏覽器並存取「OAM 管理」主控台:
http://oam.example.com:7001/oamconsole
。以weblogic
/<password>
身分登入。 -
將
OAAAuthnPlugin.jar
複製到執行瀏覽器的機器上。 -
瀏覽至Application Security -> Plug-in -> Authentication Plug-in (僅英文版)。
-
在外掛程式頁籤中,選取匯入 Plug-In。
-
在匯入 Plug-in 視窗中,選取選擇檔案以選取 Plug-In 檔案 (*.jar) 。選取
OAAAuthnPlugin.jar
的位置,然後按一下匯入。 -
在同一個頁面上,瀏覽至搜尋欄位並輸入
OAAAuthnPlugin
。標示 Plugin 並選取分配選取的項目。 -
Plugin 的啟動狀態顯示已分配之後,請選取啟用選取的項目。啟用狀態應變更為已啟用。
例如:
-
關閉 Plugins-tab。
建立 OAA 的認證模組
-
在 OAM 主控台中,瀏覽至應用程式安全性 -> Plug-in -> 認證模組。
-
在認證模組頁籤中,按一下建立認證模組,然後按一下建立自訂認證模組。
-
在驗證模組 -> 一般頁籤中,輸入下列資訊:
- 名稱:
OAA-MFA-Auth-Module
- 描述:
OAA MFA Authentication Module
- 名稱:
-
按一下步驟連結,然後在步驟頁籤中,按一下新增。
-
在新增步驟視窗中,輸入下列項目並按一下確定:
- 步驟名稱:
UserIdentificationStep
- 描述:
Identify User
- 外掛程式名稱:
UserIdentificationPlugIn
- 步驟名稱:
-
按一下新增,輸入下列項目,然後按一下確定:
- 步驟名稱:
User OAA MFA Step
- 描述:
MFA with OAA
- 外掛程式名稱:
OAAAuthnPlugin
- 步驟名稱:
-
按一下新增,輸入下列項目,然後按一下確定:
- 步驟名稱:
PasswordValidation
- 描述:
Validate user password on OAM
- 外掛程式名稱:
UserAuthenticationPlugin
模組目前的外觀應該如下:
- 步驟名稱:
-
按一下
User OAA MFA Step
並填入下列欄位:- OAA_URL:
<SPUI_URL/authn/v1>
,例如https://oaa.example.com/oaa/rui/authn/v1
- TAP_AGENT:
<partner_name>
。這個值必須是在以 OAM 註冊 TAP 合作夥伴時指定的名稱,例如OAM-MFAPartner
- APPLICATION_ID:
<app_id>
。這是與移轉至 OAA 之 OAM 使用者 (例如Default
) 關聯的 OAA 群組名稱。這個值必須與安裝 OAA 時使用的oauth.applicationid
相符,否則一般使用者將無法存取「使用者偏好設定 UI」。 - IDENTITY_STORE_REF:
<default_user_identity_store>
。這應該設為 OAM 主控台 -> 組態 -> 使用者識別存放區中設定的預設存放區值。例如OUDStore
- ASSURANCE_LEVEL:
<assurance_level>
。此值應設為先前在 OAA 中建立的保證層次,例如OAM-MFA-Level
- CLIENT_ID:
<client_id>
。這是先前建立代理程式時所複製的從屬端 ID 值,例如:e1d7dd2d-83e2-4ac8-b338-5dbc6348b526
- CLIENT_SECRET:
<client_secret>
。這是先前建立代理程式時所複製的從屬端 ID 值,例如:34e360cf-3ccc-4dcd-911e-0b00e367dcee
- LDAP_ATTRS:
mail,mobile
.這些是針對 LDAP 伺服器中使用者的電子郵件地址和行動電話號碼所設定的 LDAP 屬性。如此即可將使用者資料移轉至 OAA。注意:LDAP_ATTRS 必須以小寫指定。即使 LDAP 屬性以camelCase
形式儲存在 LDAP 中,亦然。
例如:
- OAA_URL:
-
按一下儲存。
-
按一下步驟協調流程,然後從初始步驟下拉式清單中選取使用者 OAA MFA 步驟。
-
在表格中選取值,如下所示:
名稱 描述 成功時 失敗時 發生錯誤時 UserIdentificationStep 識別使用者 密碼驗證 失敗 failure,失敗 使用 OAA MFA 步驟 MFA 與 OAA 成功 UserIdentificationStep failure,失敗 PasswordValidation 驗證 OAM 上的使用者密碼 使用 OAA MFA 步驟 failure,失敗 failure,失敗 例如:
-
按一下套用。
建立 OAA 認證配置
-
在應用程式安全性啟動畫面 -> 存取管理員中,按一下認證配置。
-
在認證配置頁籤中,選取建立認證配置
-
在「建立認證配置」頁籤中,輸入:
- 名稱:
<scheme_name>
例如OAA-MFA-Scheme
- 說明:
OAA MFA Authentication Scheme
- 認證層次:
2
- 查問方法:
Form
- 挑戰重新導向 URL:
/oam/server/
- 認證模組:
OAA-MFA-Auth-Module
- 挑戰 URL:
/pages/login.jsp
- 內容類型:
Default
- 內容值:
/oam
- 挑戰參數:
initial_command=NONE
。此參數允許無密碼登入。請參閱Passwordless Login (無密碼登入)
- 名稱:
-
按一下套用。
更新 WebGate 以針對受保護的應用程式使用 OAA MFA 架構
注意:在 Webgate webgate_7777
下的範例中使用,而保護的應用程式 URL 為 /mybank
。若使用其他項目,請相應地變更。
-
在應用程式安全性啟動畫面 -> 存取管理員中,按一下應用程式網域。
-
在應用程式網域頁籤中,按一下搜尋。
-
按一下 WebGate 以更新,例如:
webgate_7777
。 -
在 WebGate 頁籤 (webgate_7777) 中,按一下認證原則。按一下建立。
-
在建立認證原則中,輸入下列項目並按一下「套用」:
- 名稱:
OAA_MFA-Policy
- 認證配置:
OAA-MFA-Scheme
- 名稱:
-
在「WebGate」頁籤 (webgate_7777) 中,選取資源頁籤,按一下搜尋,然後按一下建立。
-
在建立資源頁籤中,輸入下列項目並按一下套用:
- 類型:
HTTP
- 描述:
OAA Resource
- 主機 ID:
webgate_7777
- 資源 URL:
/mybank/**
- 作業:
ALL
- 保護層次:
Protected
- 認證原則:
OAA_MFA-Policy
- 授權原則:
Protected Resource Policy
注意:如果您已有其他
/mybank
URI 的保護,請將這些 URI 更新,然後將認證原則變更為OAA_MFA_Policy
- 類型:
-
重新啟動 OAM 伺服器以選擇新的 OAA Plugin 組態。
測試 OAM 與 OAA 整合
您可以在此段落中存取受保護的應用程式,登入 OAM,測試是否可以使用第二個因素認證。
目標
測試 OAA 與 OAM 整合工作成功。
測試 OAM 與 OAA 整合
-
啟動瀏覽器並存取受保護的應用程式,例如:
http://oam.example.com:7777/mybank
。由於此應用程式受到保護,因此您應該被重新導向至 OAM 登入頁面。以新使用者testuser
/<password>
身分登入。 -
如果登入成功,系統會將您重新導向至 OAA 端點,例如:
https://oaa.example.com/oaa/authnui
。將 OAM 中 OAA Plugin 的LDAP_ATTRS
設為mail,mobile
,且測試使用者已填入這些 LDAP 屬性,系統便會出現一個查問選擇頁面,供使用者選取 EMAIL 或 SMS。在電子郵件安全提示下,選取傳送 OTP 給您**@**.com。 -
系統會將您重新導向至電子郵件頁面,要求您在其中輸入已註冊電子郵件的 OTP Device1。在輸入 OTP 欄位中,輸入以電子郵件傳送使用者電子郵件地址的一次性密碼,然後按一下驗證。
-
如果認證成功,您應該被重新導向至受保護的應用程式頁面,例如
/mybank
。 -
關閉現有瀏覽器並啟動新的瀏覽器。再次存取受保護的應用程式,例如:
http://oam.example.com:7777/mybank
。 -
由於透過認證配置
OAA-MFA-Scheme
中的initial_command=NONE
參數啟用無密碼登入,因此系統不會要求使用者輸入 OAM 使用者與密碼,並指示選擇其第二個因素認證方法。在簡訊安全提示下,選擇傳送 OTP 至電話 0****3。 -
系統會將您重新導向至簡訊頁面,要求從註冊的 SMS 裝置輸入 OTP。在輸入 OTP 欄位中,輸入傳送給使用者行動裝置的一次性密碼,然後按一下驗證。
-
如果認證成功,您應該被重新導向至受保護的應用程式頁面,例如
/mybank
。
深入瞭解
- Oracle Advanced Authentication and Oracle Adaptive Risk Management
- 使用 Oracle Advanced Authentication REST API 搭配 Postman
- WebLogic Script 工具指令參考以進行身分識別與存取管理
意見
若要對此教學課程提供意見,請聯絡 idm_user_assistance_ww_grp@oracle.com
致謝
- 作者 - 俄羅斯霍德孫
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或是存取更多免費學習內容至 Oracle Learning YouTube 通道。此外,瀏覽 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請瀏覽 Oracle Help Center。
Integrate Oracle Access Management with Oracle Advanced Authentication
F39325-06
January 2023
Copyright © 2023 Oracle and/or its affiliates.