IdP 中的認證
本文討論 OAM 做為 IdP 時的認證,以及伺服器如何設定為使用特定「OAM 認證配置」來查問使用者。當 OAM 11gR1 (作為 IdP) 和 OAM 11g 整合在一起時,OAM 會透過使用 WebGate
將使用者認證委派給 OAM:
- OHS 必須安裝並設定為 OAM 的反向 HTTP 代理主機
WebGate
必須安裝在 OHS 並向 OAM 註冊- 必須設定 OAM,才能保護 OAM URL
- 認證原則
- 授權原則
- 在 OAM 中設定 OAM 登出 URL
- 必須設定 OAM,才能使用 OAM 11g 認證引擎
- 輸入包含
WebGate
插入之userID
的 HTTP 標頭
- 輸入包含
- 在 OAM 11gR2 和 OAM 11gR2 中設定 OAM 登出 URL,這兩個元件會緊密整合在一起:
- 整合兩種產品不需要初始設定
- IdP 認證不需要 WebGate/OHS
- IdP 可以利用任何 OAM 認證配置
注意:由於組態的進階特性,因此 OAM 認證設定只能透過 OAM WLST 命令管理。
概觀
在 OAM 的 11.1.2.2.0 或更新版本中,OAM J2EE Web 應用程式和 OAM J2EE Web 應用程式包含在部署在獨立 WLS 執行處理中的相同 OAM J2EE EAR 應用程式中。此部署方法可讓兩個模組內部將內送使用者的 HTTP 要求從 OAM 轉送至 OAM,反之亦然。這可讓 IdP 應用程式觸發會挑戰並識別使用者的本機 OAM 認證作業。在程式實際執行時,如果聯合作業中的 IdP 需要認證,IdP 將會:
- 將使用者內部轉寄至 OAM
- 指示用於使用者認證的 OAM 認證配置
- OAM 決定是否需要挑戰使用者:
- 如果使用者尚未認證
- 如果使用者已經過認證,但階段作業逾時
- 如果已認證使用者,但原始認證的認證配置層級低於 IdP 要求的認證配置層級
- 如果需要查問使用者,OAM 將根據 IdP 指定之認證配置的規則進行。OAM (選擇性) 認證使用者並建立階段作業後,內部會將使用者轉送回 IdP,其中包含識別和階段作業資訊。IdP 會繼續執行它的聯合作業。現成的 IdP 設定為使用
LDAPScheme
作為「OAM 認證配置」來查問並識別使用者:這是 IdP 的預設全域配置。管理員可以:- 設定用於認證使用者的全域預設「OAM 認證配置」。
- 在「SP 合作夥伴設定檔」上,設定用於認證連結至此「SP 合作夥伴設定檔」之 SP 合作夥伴使用者的「OAM 認證配置」。如果定義,此設定值的優先順序會高於全域預設的「OAM 認證配置」。
- 在 SP 夥伴上設定用於認證此 SP 夥伴之使用者的預設「OAM 認證配置」。如果已定義,此設定會優先於此 SP 合作夥伴所參考之 SP 合作夥伴設定檔中定義的 OAM 認證配置,或優先於全域預設 OAM 認證配置
測試設定
使用下列測試環境:
- IdP
- 一個 SAML 2.0 SP 夥伴,名為
AcmeSP
- 另一個名為
HRsp
的 SAML 2.0 SP 夥伴
執行幾個測試案例:
- 全域預設認證:
AcmeSP
和HRsp
都使用預設的 SAML 2.0 SP 合作夥伴設定檔- 將不會在「SP 夥伴」層級設定「認證配置」
- 將不會在「SP 夥伴設定檔」層級設定「認證配置」
- 全域預設認證會依現狀使用 (
OOTB
:LDAPScheme
),將會執行「聯合 SSO」作業 - 全域預設認證將會設為
BasicScheme
(HTTP 基本認證),並且會執行「聯合 SSO」作業 - SP 合作夥伴設定檔認證:
AcmeSP
使用預設 SAML 2.0 SP 合作夥伴設定檔HRsp
使用另一個 SAML 2.0 SP 合作夥伴設定檔- 將不會在「SP 夥伴」層級設定「認證配置」
- 預設的 SAML 2.0 SP 夥伴設定檔層級將不會設定「認證配置」,但新的 SAML 2.0 SP 夥伴設定檔將設定為使用
BasicScheme
- 全域預設認證將設為
LDAPScheme
- 將使用
AcmeSP
執行聯合 SSO - 將使用
HRsp
執行聯合 SSO - SP 合作夥伴認證:
AcmeSP
和HRsp
都使用預設的 SAML 2.0 SP 合作夥伴設定檔- 預設「SAML 2.0 SP 夥伴設定檔」的「認證配置」將設為
BasicScheme
AcmeSP
的「認證配置」將設為LDAPScheme
- 全域預設認證將設為
LDAPScheme
- 將使用
AcmeSP
執行聯合 SSO - 將使用
HRsp
執行聯合 SSO - 透過不同的認證層次向上步驟認證
AcmeSP
和HRsp
都使用預設的 SAML 2.0 SP 合作夥伴設定檔- 預設「SAML 2.0 SP 夥伴設定檔」的「認證配置」將設為
BasicScheme
AcmeSP
的「認證配置」將設為LDAPScheme
- 全域預設認證將設為
LDAPScheme
LDAPScheme
的層次將會設為 3BasicScheme
的層次設為 2 將維持不變
測試 #1:
- 將使用
AcmeSP
執行同盟 SSO - 使用者透過
LDAPScheme
查問 - 在相同的瀏覽器中,將使用
HRsp
執行聯合 SSO - 使用者將不會被挑戰
測試 #2:
- 將使用
HRsp
執行同盟 SSO - 使用者透過
BasicScheme
查問 - 在相同的瀏覽器中,將使用
AcmeSP
執行聯合 SSO - 使用者將透過
LDAPScheme
挑戰下列區段,每個區段都描述測試案例,以時間順序排列,每個區段從上一個區段離開。
注意:如果 HTTP 基本認證將用於 IdP,則需要將執行 OAM 的 WebLogic 網域設定為不驗證未受保護資源的 HTTP 基本認證。
HTTP 基本認證
依照預設,如果瀏覽器將「HTTP 基本認證」證明資料傳送給 OAM,WLS 伺服器會先嘗試驗證這些證明資料,再讓 OAM 處理要求:這可能會導致認證失敗,特別是當 WLS 網域未設定在 OAM 中建立之每個「識別存放區」的「WLS LDAP 認證程式」時。
注意:即使 WLS 網域已正確設定為在 OAM 中為每個「識別存放區」建立 WLS LDAP 認證器,這會產生兩個認證作業,一個是 WLS,另一個是 OAM 建立 OAM 階段作業所需的認證作業。
您可以停用在執行 OAM 的 WLS 網域中傳送至 [ 未受保護的應用程式 ]{.underline} 的「HTTP 基本認證」證明資料自動驗證。如需詳細資訊,請參閱 Oracle Fusion Middleware Programming Security for Oracle WebLogic Server 手冊的 "Understanding BASIC Authentication with Unsecured Resources"。若要停用自動驗證傳送至 WLS 網域中 [ 不安全應用程式 ]{.underline} 的 HTTP 基本認證證明資料,請執行下列步驟:
- 執行以下項目來輸入 WLST 環境:
$IAM_ORACLE_HOME/common/bin/wlst.sh
- 連線「WLS 管理」伺服器:
connect()
- 啟動編輯階段作業:
edit()
startEdit()
- 瀏覽至 SecurityConfiguration 節點:
cd('SecurityConfiguration')
- 瀏覽至網域 (將 DOMAIN_NAME 取代為安裝 OAM 的 WLS 網域名稱):
cd('DOMAIN_NAME')
- 將
EnforceValidBasicAuthCredentials
設定設為 false 以停用傳送至不安全應用程式的「HTTP 基本認證」認證的靜態驗證:set('EnforceValidBasicAuthCredentials', 'false')
- 儲存並啟用變更:
save()
activate()
- 重新啟動 WLS 網域中的伺服器以使變更生效
全域預設認證
第一步是針對 SAML 2.0 SSO 在 IdP 中建立和設定 SP 合作夥伴。設定好之後,IdP 中的 SP 合作夥伴清單看起來如下:
執行涉及 AcmeSP
或 HRsp
與 IdP 其中之一的「聯合 SSO」會導致 OAM 伺服器使用設定為 LDAPScheme
OOTB 的預設全域「認證配置」來挑戰使用者:
若要將預設全域「認證配置」切換為 BasicScheme
,請使用 OAM WLST setIdPDefaultScheme()
命令,並指定要當作預設的配置:
-
執行下列動作以輸入 WLST 環境:
\$IAM_ORACLE_HOME/common/bin/wlst.sh
-
連線「WLS 管理」伺服器:
connect()
-
瀏覽至「網域程式實際執行」分支:
domainRuntime()
-
執行
setIdPDefaultScheme()
指令:setIdPDefaultScheme("BasicScheme")
-
結束 WLST 環境:
exit()
執行涉及AcmeSP
或HRsp
與 IdP 的聯合 SSO 會導致 OAM 伺服器使用 OAMBasicScheme
而非LDAPScheme
來挑戰使用者:
若要將預設全域「認證配置」切換回 LDAPScheme
,請執行下列作業:
- 執行下列動作以輸入 WLST 環境:
\$IAM_ORACLE_HOME/common/bin/wlst.sh
- 連線「WLS 管理」伺服器:
connect()
- 瀏覽至「網域程式實際執行」分支:
domainRuntime()
- 執行
setIdPDefaultScheme()
命令:setIdPDefaultScheme("LDAPScheme")
- 結束 WLST 環境:
exit()
執行涉及 AcmeSP
或 HRsp
與 IdP 的聯合 SSO 會導致 OAM 伺服器透過 LDAPScheme
挑戰使用者。
SP 合作夥伴資料檔驗證
從先前的測試案例,設定如下:
AcmeSP
和HRsp
存在於 IdP 中- IdP 中的預設全域「認證配置」為
LDAPScheme
AcmeSP
和HRsp
都使用預設的 SAML 2.0 SP 合作夥伴設定檔
若要設定 HRsp
使用新的 SP 合作夥伴資料檔,請執行下列命令:
- 執行下列動作以輸入 WLST 環境:
\$IAM_ORACLE_HOME/common/bin/wlst.sh
- 連線「WLS 管理」伺服器:
connect()
- 瀏覽至「網域程式實際執行」分支:
domainRuntime()
- 從預設 SAML 2.0 SP 夥伴設定檔建立新的 SP 夥伴設定檔:
createFedPartnerProfileFrom("new-saml20-pp", "saml20-sp-partner-profile")
- 將 HRsp 合作夥伴連結至新的 SP 合作夥伴設定檔:
setFedPartnerProfile("HRsp", "sp", "newsaml20-pp")
- 結束 WLST 環境:
exit()
此時,執行涉及這些 AcmeSP
或 HRsp
與 IdP 的聯合 SSO,會導致 OAM 伺服器透過 LDAPScheme
挑戰使用者。若要設定新的「SP 合作夥伴設定檔」,讓 BasicScheme
作為預設「認證配置」,請使用 OAM WLST setSPPartnerProfileDefaultScheme()
命令:
- 執行下列動作以輸入 WLST 環境:
\$IAM_ORACLE_HOME/common/bin/wlst.sh
- 連線「WLS 管理」伺服器:
connect()
- 瀏覽至「網域程式實際執行」分支:
domainRuntime()
- 將新 SP 夥伴設定檔的預設「認證配置」設為
BasicScheme
:setSPPartnerProfileDefaultScheme("newsaml20-pp", "BasicScheme")
- 結束 WLST 環境:
exit()
現在使用以下項目執行聯合 SSO:
AcmeSP
會導致 IdP 透過LDAPScheme
挑戰使用者。HRsp
會導致 IdP 透過BasicScheme
挑戰使用者。
將 HRsp
連結回預設「SP 合作夥伴設定檔」,然後刪除在此測試中建立的「SP 合作夥伴設定檔」:
- 執行下列動作以輸入 WLST 環境:
\$IAM_ORACLE_HOME/common/bin/wlst.sh
- 連線「WLS 管理」伺服器:
connect()
- 瀏覽至「網域程式實際執行」分支:
domainRuntime()
- 將 HRsp 合作夥伴連結至預設 SP 合作夥伴設定檔:
setFedPartnerProfile("HRsp", "sp", "saml20-sp-partner-profile")
- 刪除新的 SP 夥伴設定檔:
deleteFedPartnerProfile("new-saml20-pp")
- 結束 WLST 環境:
exit()
執行這些命令之後,執行涉及這些 AcmeSP
或 HRsp
(含 IdP) 的聯合 SSO 會導致 OAM 伺服器透過 LDAPScheme
挑戰使用者。
SP 合作夥伴認證
從先前的測試案例,設定如下:
AcmeSP
和HRsp
存在於 IdP 中- IdP 中的預設全域「認證配置」為
LDAPScheme
AcmeSP
和HRsp
都使用預設的 SAML 2.0 SP 合作夥伴設定檔
若要將預設 SAML 2.0 SP 夥伴設定檔設定為使用 BasicScheme
作為認證配置,請執行下列作業:
- 執行下列動作以輸入 WLST 環境:
\$IAM_ORACLE_HOME/common/bin/wlst.sh
- 連線「WLS 管理」伺服器:
connect()
- 瀏覽至「網域程式實際執行」分支:
domainRuntime()
- 將新 SP 夥伴設定檔的預設「認證配置」設為
BasicScheme
:setSPPartnerProfileDefaultScheme("saml20-sppartner-profile", "BasicScheme")
- 結束 WLST 環境:
exit()
此時,執行涉及這些 AcmeSP
或 HRsp
與 IdP 的聯合 SSO,會導致 OAM 伺服器透過 BasicScheme
挑戰使用者。若要設定 AcmeSP
SP 合作夥伴以 LDAPScheme
作為預設「認證配置」,請使用 OAM WLST setSPPartnerDefaultScheme()
命令:
- 執行下列動作以輸入 WLST 環境:
\$IAM_ORACLE_HOME/common/bin/wlst.sh
- 連線「WLS 管理」伺服器:
connect()
- 瀏覽至「網域程式實際執行」分支:
domainRuntime()
- 將
AcmeSP
SP 夥伴的預設「認證配置」設為LDAPScheme
:setSPPartnerDefaultScheme("AcmeSP", "LDAPScheme")
- 結束 WLST 環境:
exit()
現在使用以下項目執行聯合 SSO:
AcmeSP
會導致 IdP 透過LDAPScheme
挑戰使用者。HRsp
會導致 IdP 透過BasicScheme
挑戰使用者。
透過不同的認證層次升級認證
從先前的測試案例,設定如下:
AcmeSP
和HRsp
存在於 IdP 中- IdP 中的預設全域「認證配置」為
LDAPScheme
AcmeSP
和HRsp
都使用預設的 SAML 2.0 SP 合作夥伴設定檔- 預設「SAML 2.0 SP 夥伴設定檔」的預設「認證配置」設為
BasicScheme
AcmeSP
「SP 夥伴」設定了設為LDAPScheme
的預設「認證配置」,此時使用下列項目執行「聯合 SSO」:AcmeSP
會導致 IdP 透過LDAPScheme
挑戰使用者。HRsp
會導致 IdP 透過BasicScheme
挑戰使用者。
OOTB,LDAPScheme
和 BasicScheme
的「認證層次」均設為 2。若要將 LDAPScheme
的「認證層次」變更為 3,請執行下列作業:
-
移至「OAM 管理主控台」:
http(s)://oam-admin-host:oam-adminport/oamconsole
-
瀏覽至 Access Manager 、認證配置
-
按一下「搜尋」並選取
LDAPScheme
-
將認證層次設為 3
-
按一下套用
這些變更之後,如果使用者已在 OAM 認證,而且使用者使用 IdP 執行「聯合 SSO」作業,OAM 會確保在第一個位置用來認證使用者的配置,其層次高於或等於為目前 SP 合作夥伴設定的配置,而聯合 SSO 已行使。例如:
- 如果使用者第一次透過
LDAPScheme
認證,當使用預設「認證配置」執行第二個「聯合 SSO」作業時,不會重新呼叫該使用者BasicScheme
: - 同盟 SSO 以
AcmeSP
夥伴啟動 - 使用者透過
LDAPScheme
進行 OAM 查問 - IdP 發出宣告並將使用者重新導向至
AcmeSP
- 在相同的瀏覽器中,聯合 SSO 使用
HRsp
啟動 - OAM 不會挑戰使用者,因為使用者已經通過認證,階段作業未逾時,且用來建立階段作業的配置層級 (為
LDAPScheme
的 3) 高於或等於為目前 Federation SSO 設定的預設配置 (為BasicScheme
的 2) - IdP 發出宣告並將使用者重新導向至
HRsp
- 如果使用者第一次透過
BasicScheme
認證,當使用預設「認證配置」執行第二個「聯合 SSO」作業時,將會重新呼叫該使用者LDAPScheme
: - 同盟 SSO 以
HRsp
夥伴啟動 - 使用者透過
BasicScheme
進行 OAM 查問 - IdP 發出宣告並將使用者重新導向至
HRsp
- 在相同的瀏覽器中,聯合 SSO 使用
AcmeSP
啟動 - OAM 會挑戰使用者,因為使用者已經過認證,階段作業未逾時 [but]{.underline} 建立階段作業的配置層次 (
BasicScheme
為 2) 低於為此目前「聯合 SSO」設定的預設配置 (LDAPScheme
為 3) - IdP 發出宣告並將使用者重新導向至
AcmeSP
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,瀏覽 education.oracle.com/learning-explorer 成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Authentication in OAM and IdP
F59731-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.