IdP 中的認證

本文討論 OAM 做為 IdP 時的認證,以及伺服器如何設定為使用特定「OAM 認證配置」來查問使用者。當 OAM 11gR1 (作為 IdP) 和 OAM 11g 整合在一起時,OAM 會透過使用 WebGate 將使用者認證委派給 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 將會:

測試設定

使用下列測試環境:

執行幾個測試案例:

測試 #1:

測試 #2:

注意:如果 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 基本認證證明資料,請執行下列步驟:

  1. 執行以下項目來輸入 WLST 環境:$IAM_ORACLE_HOME/common/bin/wlst.sh
  2. 連線「WLS 管理」伺服器:connect()
  3. 啟動編輯階段作業:edit() startEdit()
  4. 瀏覽至 SecurityConfiguration 節點:cd('SecurityConfiguration')
  5. 瀏覽至網域 (將 DOMAIN_NAME 取代為安裝 OAM 的 WLS 網域名稱):cd('DOMAIN_NAME')
  6. EnforceValidBasicAuthCredentials 設定設為 false 以停用傳送至不安全應用程式的「HTTP 基本認證」認證的靜態驗證:set('EnforceValidBasicAuthCredentials', 'false')
  7. 儲存並啟用變更:save() activate()
  8. 重新啟動 WLS 網域中的伺服器以使變更生效

全域預設認證

第一步是針對 SAML 2.0 SSO 在 IdP 中建立和設定 SP 合作夥伴。設定好之後,IdP 中的 SP 合作夥伴清單看起來如下:

accessmanagement.jpg 圖解說明

執行涉及 AcmeSPHRsp 與 IdP 其中之一的「聯合 SSO」會導致 OAM 伺服器使用設定為 LDAPScheme OOTB 的預設全域「認證配置」來挑戰使用者:

accessmanager.jpg 圖解說明

若要將預設全域「認證配置」切換為 BasicScheme,請使用 OAM WLST setIdPDefaultScheme() 命令,並指定要當作預設的配置:

  1. 執行下列動作以輸入 WLST 環境:\$IAM_ORACLE_HOME/common/bin/wlst.sh

  2. 連線「WLS 管理」伺服器:connect()

  3. 瀏覽至「網域程式實際執行」分支:domainRuntime()

  4. 執行 setIdPDefaultScheme() 指令:setIdPDefaultScheme("BasicScheme")

  5. 結束 WLST 環境:exit() 執行涉及 AcmeSPHRsp 與 IdP 的聯合 SSO 會導致 OAM 伺服器使用 OAM BasicScheme 而非 LDAPScheme 來挑戰使用者:

    windowssecurity.jpg 圖解說明

若要將預設全域「認證配置」切換回 LDAPScheme,請執行下列作業:

  1. 執行下列動作以輸入 WLST 環境:\$IAM_ORACLE_HOME/common/bin/wlst.sh
  2. 連線「WLS 管理」伺服器:connect()
  3. 瀏覽至「網域程式實際執行」分支:domainRuntime()
  4. 執行 setIdPDefaultScheme() 命令:setIdPDefaultScheme("LDAPScheme")
  5. 結束 WLST 環境:exit()

執行涉及 AcmeSPHRsp 與 IdP 的聯合 SSO 會導致 OAM 伺服器透過 LDAPScheme 挑戰使用者。

SP 合作夥伴資料檔驗證

從先前的測試案例,設定如下:

若要設定 HRsp 使用新的 SP 合作夥伴資料檔,請執行下列命令:

  1. 執行下列動作以輸入 WLST 環境:\$IAM_ORACLE_HOME/common/bin/wlst.sh
  2. 連線「WLS 管理」伺服器:connect()
  3. 瀏覽至「網域程式實際執行」分支:domainRuntime()
  4. 從預設 SAML 2.0 SP 夥伴設定檔建立新的 SP 夥伴設定檔:createFedPartnerProfileFrom("new-saml20-pp", "saml20-sp-partner-profile")
  5. 將 HRsp 合作夥伴連結至新的 SP 合作夥伴設定檔:setFedPartnerProfile("HRsp", "sp", "newsaml20-pp")
  6. 結束 WLST 環境:exit()

此時,執行涉及這些 AcmeSPHRsp 與 IdP 的聯合 SSO,會導致 OAM 伺服器透過 LDAPScheme 挑戰使用者。若要設定新的「SP 合作夥伴設定檔」,讓 BasicScheme 作為預設「認證配置」,請使用 OAM WLST setSPPartnerProfileDefaultScheme() 命令:

  1. 執行下列動作以輸入 WLST 環境:\$IAM_ORACLE_HOME/common/bin/wlst.sh
  2. 連線「WLS 管理」伺服器:connect()
  3. 瀏覽至「網域程式實際執行」分支:domainRuntime()
  4. 將新 SP 夥伴設定檔的預設「認證配置」設為 BasicSchemesetSPPartnerProfileDefaultScheme("newsaml20-pp", "BasicScheme")
  5. 結束 WLST 環境:exit()

現在使用以下項目執行聯合 SSO:

HRsp 連結回預設「SP 合作夥伴設定檔」,然後刪除在此測試中建立的「SP 合作夥伴設定檔」:

  1. 執行下列動作以輸入 WLST 環境:\$IAM_ORACLE_HOME/common/bin/wlst.sh
  2. 連線「WLS 管理」伺服器:connect()
  3. 瀏覽至「網域程式實際執行」分支:domainRuntime()
  4. 將 HRsp 合作夥伴連結至預設 SP 合作夥伴設定檔:setFedPartnerProfile("HRsp", "sp", "saml20-sp-partner-profile")
  5. 刪除新的 SP 夥伴設定檔:deleteFedPartnerProfile("new-saml20-pp")
  6. 結束 WLST 環境:exit()

執行這些命令之後,執行涉及這些 AcmeSPHRsp (含 IdP) 的聯合 SSO 會導致 OAM 伺服器透過 LDAPScheme 挑戰使用者。

SP 合作夥伴認證

從先前的測試案例,設定如下:

若要將預設 SAML 2.0 SP 夥伴設定檔設定為使用 BasicScheme 作為認證配置,請執行下列作業:

  1. 執行下列動作以輸入 WLST 環境:\$IAM_ORACLE_HOME/common/bin/wlst.sh
  2. 連線「WLS 管理」伺服器:connect()
  3. 瀏覽至「網域程式實際執行」分支:domainRuntime()
  4. 將新 SP 夥伴設定檔的預設「認證配置」設為 BasicSchemesetSPPartnerProfileDefaultScheme("saml20-sppartner-profile", "BasicScheme")
  5. 結束 WLST 環境:exit()

此時,執行涉及這些 AcmeSPHRsp 與 IdP 的聯合 SSO,會導致 OAM 伺服器透過 BasicScheme 挑戰使用者。若要設定 AcmeSP SP 合作夥伴以 LDAPScheme 作為預設「認證配置」,請使用 OAM WLST setSPPartnerDefaultScheme() 命令:

  1. 執行下列動作以輸入 WLST 環境:\$IAM_ORACLE_HOME/common/bin/wlst.sh
  2. 連線「WLS 管理」伺服器:connect()
  3. 瀏覽至「網域程式實際執行」分支:domainRuntime()
  4. AcmeSP SP 夥伴的預設「認證配置」設為 LDAPSchemesetSPPartnerDefaultScheme("AcmeSP", "LDAPScheme")
  5. 結束 WLST 環境:exit()

現在使用以下項目執行聯合 SSO:

透過不同的認證層次升級認證

從先前的測試案例,設定如下:

OOTB,LDAPSchemeBasicScheme 的「認證層次」均設為 2。若要將 LDAPScheme 的「認證層次」變更為 3,請執行下列作業:

  1. 移至「OAM 管理主控台」:http(s)://oam-admin-host:oam-adminport/oamconsole

  2. 瀏覽至 Access Manager認證配置

  3. 按一下「搜尋」並選取 LDAPScheme

  4. 將認證層次設為 3

  5. 按一下套用

    Authenticationlevel.jpg 圖解說明

這些變更之後,如果使用者已在 OAM 認證,而且使用者使用 IdP 執行「聯合 SSO」作業,OAM 會確保在第一個位置用來認證使用者的配置,其層次高於或等於為目前 SP 合作夥伴設定的配置,而聯合 SSO 已行使。例如:

其他學習資源

探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,瀏覽 education.oracle.com/learning-explorer 成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center