將 ADFS 2.0 和 3.0 與 OAM 整合:先決條件
本文說明如何使用 SAML 2.0 通訊協定將 OAM (11.1.2.2.0 或更新版本) 與 ADFS 2.0/3.0 整合。整合涵蓋:
-
必備條件 (本文)
-
ADFS 2.0/3.0 作為 IdP,OAM 作為 SP
-
ADFS 2.0/3.0 作為 SP 和 OAM 作為 IdP
SAML 2.0 整合的基礎如下:
-
作為
NameID
格式的電子郵件地址 -
NameID
值包含使用者的電子郵件地址 -
HTTP POST 連結是用來將 SAML 宣告傳送至 SP
-
使用者存在於兩個系統中,每個使用者的電子郵件地址相同,因此可以當作通用使用者屬性使用。
ADFS 2.0 可在 Windows 2008 R2 中使用,而 ADFS 3.0 則可在 Windows 2012 R2 中使用。這篇文章展示了 ADFS 3.0 的螢幕截圖,而記錄的步驟適用於這兩個版本。在第一篇文章中,我們會探討這些先決條件。
必要條件
為了使用 SAML 2.0 通訊協定與 ADFS 整合,必須將 OAM 設定為使用 HTTPS/SSL 作為其端點。如果未這麼做,ADFS 在建立「聯合信任」時不接受 OAM SAML 2.0 描述資料。
將 ADFS 整合為 IdP 與 OAM 作為 SP 時,需要考慮下列幾點:
-
依照預設,使用 AES-256 將 SAML 宣告傳送給 SP 時,ADFS IdP 會加密「SAML 宣告」,而 OAM 建置中使用的 JDK 預設無法使用強式加密,例如 AES-256。因此
-
必須設定 JDK 以進行強式加密
-
或者,必須將 ADFS IdP 設定為停用加密
-
-
如果 ADFS IdP 設定為透過「HTTP 基本認證」或「Windows 原生認證」進行認證,則使用者永遠無法登出為:
- 輸入 HTTP 基本認證證明資料後,除非瀏覽器關閉,否則無法從瀏覽器移除
注意:這適用於使用 HTTP 基本認證的其他 IdPs 來查問使用者
-
使用 Windows 原生驗證時,瀏覽器一律會登入 ADFS
-
依預設,ADFS 需要使用 SHA-256 簽署訊息,而 OAM 預設使用 SHA-1:
-
將 ADFS 設定為使用 / 接受 SHA-1
-
或將 OAM 設定為使用 SHA-256 進行簽章
-
最後,在整合 SAML 2.0 的 OAM 和 ADFS 之前,必須先下載這兩部伺服器的描述資料。
啟用 SSL
在 OAM 的公用端點上啟用 SSL 的方式有幾種:
-
如果負載平衡器正面臨 OAM,可以在負載平衡器上啟用 / 設定 SSL/HTTPS
-
如果 OHS 在 OAM 前面,OHS 會設定 SSL
-
如果沒有元件在 OAM 前面,則可以為 SSL/HTTPS 設定執行 OAM 的 WLS 伺服器
元件 (負載平衡器,OHS 或 WLS) 設定為 SSL 之後,必須更新 OAM 組態,以參照新端點作為其公用 URL:
-
前往「OAM 管理主控台」:
http(s)://oam-admin-host:oam-adminport/oamconsole
。 -
瀏覽至 Configuration 、 Access Manager 設定值。
-
將「OAM 伺服器主機」設為公用端點的主機名稱。
-
將「OAM 伺服器張貼」設為公用端點的 SSL 連接埠。
-
將「OAM 伺服器協定」設為 https。
-
按一下套用。
注意:進行這些變更之後,擷取「OAM SAML 2.0 描述資料」會包含新的 https URL。
強大的加密功能
依照預設,ADFS IdP 會使用 Java 視為強式加密方式的 AES-256 將 SAML 宣告傳送至 SP 時加密 (相對於「正常強度」,例如 AES-128、AES-192、3DES)。
由於法律的匯出原因,JDK 無法隨附在 JCE 中啟用的強式加密方式:administrator/integrator/developer
必須下載並安裝 Java Cryptography Extension (JCE) Unlimited Strength Janziction 原則。
若要更新「JCE 無限強度管轄區」原則檔案以支援強式加密 (例如 AES-256),請執行下列步驟:
-
決定用於 OAM 部署的主要 Java 版本。
-
尋找「OAM 執行」使用的 JDK 資料夾:
$JDK_HOME/bin/java -version
。 -
主要版本將會列印 (6 或 7)。
-
下載 JCE Unlimited Strength Jrance 政策。
-
如果您使用的是 JDK 7:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
-
如果您使用的是 JDK 6:
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archivedownloads-java-plat-419418.html
-
將下載的 ZIP 檔案內容解壓縮至暫存資料夾。
-
複製解壓縮的
local_policy.jar
和US_export_policy.jar
檔案,使其成為下列 JDK 的目錄 (此作業會覆寫該資料夾中的local_policy.jar
和US_export_policy.jar
檔案): - 重新啟動 WLS 網域中的「WLS 伺服器」以套用變更。
-
前往已部署 ADFS 的機器。
-
如果使用 ADFS 2.0,請按一下開始功能表、程式集、管理工具、 Windows PowerShell 模組。
-
如果使用 ADFS 3.0,請按一下開始功能表、管理工具、 Windows PowerShell 的 Active Directory 模組
-
-
執行下列命令 (將 RP_NAME 取代為用來在 ADFS 中建立夥伴的 SP 名稱):
set-ADFSRelyingPartyTrust –TargetName“RP_NAME” –EncryptClaims $False
-
以 FORM 為基礎的認證位置
-
伺服器會顯示登入頁面
-
使用者輸入證明資料並送出證明資料
-
HTTP 基本認證
-
伺服器傳回 401 狀態代碼至瀏覽器的位置
-
瀏覽器會收集使用者的證明資料
-
瀏覽器會將證明資料提供給 ADFS 伺服器
- ADFS 在 Windows 環境中運用使用者認證狀態的「整合式 Windows 認證」:在此情況下,由於使用者已經登入 Windows,因此使用者無需任何使用者互動即可自動認證
-
SP 使用 ADFS IdP 啟動聯合 SSO 作業
-
ADFS IdP 需要認證 / 識別使用者
-
如果使用以 FORM 為基礎的認證,則 ADFS 會顯示登入頁面,使用者可輸入其證明資料
-
如果使用 HTTP 基本認證,ADFS 會傳回 401 回應代碼,瀏覽器會從使用者收集證明資料並將其呈現給 ADFS
-
如果使用「整合式 Windows 認證」,瀏覽器將會自動從 Windows 網域控制器 / KDC 取得 Kerberos/NTLMSSP 權杖 (提供給 ADFS 伺服器)。沒有使用者互動。
-
使用者已使用 SAML 宣告重導至 SP
-
使用者從 SP 起始 SAML 2.0 登出
-
SP 會將使用者重導至 SAML 2.0 登出的 ADFS IdP
-
ADFS 會從使用者的瀏覽器清除 Cookie (但若先前已使用,則不會快取 HTTP 基本認證證明資料)
-
登出已完成
-
在相同的瀏覽器中,SP 會使用 ADFS IdP 啟動聯合 SSO 作業
-
ADFS IdP 需要認證 / 識別使用者
-
如果使用以 FORM 為基礎的認證,ADFS 會顯示登入頁面,而使用者輸入其證明資料:使用者受挑戰且需要提供其證明資料。
-
如果使用 HTTP 基本認證,ADFS 會傳回 401 回應代碼,瀏覽器會快取先前收集的證明資料,進而自動將它們呈現給 ADFS。沒有使用者互動。
-
如果使用「整合式 Windows 認證」,瀏覽器將會自動從 Windows 網域控制器 / KDC 取得 Kerberos/NTLMSSP 權杖 (提供給 ADFS 伺服器)。沒有使用者互動。
-
開啟瀏覽器
-
前往 ADFS 2.0/3.0 描述資料發布服務:
- 使用瀏覽器中的另存新檔按鈕,將中繼資料儲存在本機
-
開啟瀏覽器
-
前往 OAM 描述資料發布服務:
http(s)://oam-runtime-host:oam-runtimeport/oamfed/idp/metadata
或http(s)://oam-runtime-host:oam-runtimeport/oamfed/sp/metadata
-
使用瀏覽器中的另存新檔按鈕,將中繼資料儲存在本機
-
將 ADFS 2.0 設定為使用 / 接受 SHA-1
-
或將 OAM 設定為使用 SHA-256 進行簽章
$JDK_HOME/jre/lib/security/
若要設定 ADFS 在傳送 SAML 宣告至 SP 時停用加密,請執行下列步驟:
ADFS 登出
SAML 2.0 協定定義登出設定檔,其中與目前使用者階段作業之聯合 SSO 相關的每個聯合夥伴都會收到使用者登出的通知。這可讓各種「聯合」夥伴終止其 SSO 網域中的使用者階段作業。
ADFS IdP 提供在執行「聯合 SSO」時認證使用者的不同方式:
備註:瀏覽器會保留憑證,並在瀏覽器存取 ADFS 時隨時將憑證提供給 ADFS 伺服器,直到瀏覽器關閉為止
視使用者的認證方式而定,讓我們看看 SAML 2.0 登出的效果 (或非效果):
因此,如果使用「HTTP 基本認證」或「整合的 Windows 認證」作為 ADFS 2.0 IdP 的認證機制,登出之後使用者仍會「登入」於 IdP 和執行新的「聯合 SSO」將不會觸發正在挑戰的使用者,並在完成「聯合 SSO」之後自動認證使用者。
重要注意事項: 登出時所見的行為也適用於使用「HTTP 基本認證」作為認證機制的其他 IdPs (例如 OAM)
SAML 2.0 描述資料
從 ADFS 2.0/3.0 伺服器下載 SAML 2.0 中繼資料:
https://adfs-host:adfsport/FederationMetadata/2007-06/FederationMetadata.xml
從 OAM 下載 SAML 2.0 描述資料:
注意:在下載 OAM 描述資料之前,請確定先在 OAM 中啟用 SSL,因為描述資料包含 OAM URL。
SHA-256 與 SHA-1
在 OAM 與 ADFS 之間設定「同盟」之後,您必須:
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,瀏覽 education.oracle.com/learning-explorer 成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Integrating ADFS 2.0 and 3.0 with OAM Pre-Requisites Continued
F60932-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.