將 Office 365 與 OAM 和 ID 先決條件整合
本文顯示如何使用 SAML 2.0 通訊協定,將 OAM (11.1.2.2.0 或更新版本) 整合為 IdP 與 Office 365,適用於聯合 SSO。
整合涵蓋:
-
瀏覽器聯合 SSO 整合:這是使用者透過瀏覽器存取 www.office365.com 資源時所行使的流程:
-
www.office365.com 會提示使用者輸入電子郵件地址
-
伺服器偵測到該網域應使用聯合 SSO,並啟動 IdP 的聯合 SSO 流程
-
IdP 會挑戰使用者、建立 SAML 宣告,並將使用者重新導向至 www.office365.com
-
www.office365.com 授予使用者存取權
-
ActiveSync 郵件整合:在此流程中,使用者會使用為 Office 365 設定的郵件應用程式
-
當郵件應用程式啟動時,會將使用者的憑證 (電子郵件地址和 IdP 密碼) 傳送至 Office 365
-
www.office365.com 透過 SSL 直接連線 IdP,並使用 SAML 2.0 ECP 通訊協定透過 HTTP 基本認證傳送 SAML AuthnRequest 和使用者的憑證www.office365.com
-
IdP 會驗證這些證明資料,並透過 ECP 協定傳回 SAML 宣告
-
Office 365 授予郵件應用程式的存取權
請務必注意,與非 SAML 2.0 元件的 Office 365 整合將無法運作,例如:
-
Lync 客戶端程式
-
OWA 行動應用程式
本文以
-
執行的測試
-
有關 Office 365 支援 SAML 2.0 的 Microsoft 文章,特別是設定 Office 365 (使用者管理與聯合信任建立) 所需的技術文件清單步驟:
-
Microsoft 部落格
-
此技術文件說明如何設定 Office 365
概觀
為了使用 SAML 2.0 通訊協定與 Office 365 整合,OAM 必須設定為使用 HTTPS/SSL 作為其端點,並具有已知 CA 發出的 SSL 憑證 (如果需要 ActiveSync 郵件整合)。如果未這麼做,可能導致 Office 365 在建立「聯合信任」時不接受 OAM SAML 2.0 描述資料。
Office 365 預期使用 SHA-1 摘要演算法簽署所有 SAML 訊息。因此,IdP 必須設定為使用 SHA-1,否則如果使用 SHA-256,Office 365 SP 會傳回錯誤。此外,Office 365 需要將 IdP 的簽署憑證包含在已簽署的 SAML 宣告中;因此必須將 OAM 設定為將它包含在 Office 365 的所有外送簽署訊息中。
如果 IdP 使用 HTTP 基本認證 (因為 ActiveSync 郵件整合需要),則需要將執行 OAM 的 WebLogic 網域設定為不驗證未安全資源的 HTTP 基本認證。
若要建立兩個聯合伺服器之間的信任,必須擷取下列資料:
-
Office 365 SP SAML 2.0 中繼資料。
-
由於 Office 365 不支援 SAML 2.0 描述資料使用,因此必須收集下列資訊:
-
Base64 編碼格式的 OAM IdP 簽署憑證
-
OAM IdP 發行者值
-
OAM IdP SSO 和登出 URL
最後,若要能夠建立「聯合」信任,必須發生下列情況:
-
對於指定的使用者,Office 365 和所使用的目錄
-
OAM 必須要有該使用者的帳戶
-
必須在 OAM 的使用者帳戶中設定用於 Office 365 帳戶的使用者全域唯一 ID (或
ImmutableId) 和電子郵件地址 (或UserPrincipalName)。 -
對於 ActiveSync 郵件整合,Office 365 所使用的電子郵件地址 (或
UserPrincipalName) 中的識別碼必須是用於 OAM 的 HTTP 基本認證使用者名稱
啟用 SSL
重要注意事項:因為 Office 365 伺服器嘗試直接連線至 OAM 伺服器的 ActiveSync 使用案例,所以用來啟用 OAM SSL 的 SSL 憑證必須由已知的 CA 發出。
在 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-admin-port/oamconsole -
瀏覽至組態、 Access Manager 設定值
-
將「OAM 伺服器主機」設為公用端點的主機名稱
-
將 OAM 伺服器張貼至公用端點的 SSL 連接埠
-
將 OAM 伺服器協定設為 https
-
按一下套用

Access_Manager_Settings.jpg 圖解說明
注意:進行這些變更之後,擷取「OAM SAML 2.0 描述資料」會包含新的 https URL
HTTP 基本認證
依照預設,如果瀏覽器將「HTTP 基本認證」證明資料傳送給 OAM,WLS 伺服器會先嘗試驗證這些證明資料,再讓 OAM 處理要求:這可能會導致認證失敗,特別是當 WLS 網域未設定在 OAM 中建立之每個「識別存放區」的「WLS LDAP 認證程式」時。
注意:即使 WLS 網域已正確設定為讓每個識別存放區在 OAM 中建立的 WLS LDAP 認證器,這也會產生兩個認證作業,一個是依 WLS,另一個是 OAM 建立 OAM 階段作業所需的認證作業。
您可以停用自動驗證傳送至執行 OAM 之 WLS 網域中未受保護的應用程式的「HTTP 基本認證」證明資料。如需詳細資訊,請參閱 Oracle Fusion Middleware Programming Security for Oracle WebLogic Server 手冊的 "Understanding BASIC Authentication with Unsecured Resources"。
若要停用自動驗證傳送至 WLS 網域中不安全應用程式的「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 基本認證」證明資料的automatic驗證:set('EnforceValidBasicAuthCredentials','false') -
儲存並啟動更新:
save()activate() -
重新啟動 WLS 網域中的伺服器以使變更生效
SAML 2.0 描述資料、憑證及發照者
從 Office 365 SP 伺服器下載 SAML 2.0 中繼資料:
-
開啟瀏覽器
-
前往 Azure / Office 365 中繼資料發布服務:
https://nexus.microsoftonline-p.com/federationmetadata/saml20/federationmetadata.xml -
使用瀏覽器中的「另存新檔」按鈕將中繼資料儲存在本機
「OAM IdP 簽署憑證」必須以 Base64 編碼的字串形式提供給 Windows Powershell 命令,作為沒有空格 / 換行字元的單一字串。若要擷取「OAM IdP 簽署憑證」,請執行下列作業來判斷要使用哪一個 keyID 項目來登出 SAML 訊息:
-
移至「OAM 管理主控台」:
http(s)://oam-adminhost:oam-admin-port/oamconsole -
瀏覽至組態、聯合設定值
-
記下「簽章金鑰」欄位中 SAML 簽章作業的簽章金鑰
keyID

執行下列步驟以擷取該 keyID 項目的憑證:
-
開啟瀏覽器
-
移至下列 URL (使用上一個步驟中擷取的
keyID名稱取代 KEYENTRY_ID): -
將憑證儲存在文字檔中。
-
用您最愛的文字編輯器開啟檔案
-
檔案的內容看起來像是:
-----BEGIN CERTIFICATE----- MIIB+DCCAWGgAwIBAgIBCjANBgkqhkiG9w0BAQQFADAhMR8wHQYDVQQDExZhZGMMHBjYy51cy5vcmFjbGUuY29tMB4XDTE0MDMwNDE5MjAzMloXDTI0MDMwMTE5MjAzMlowITEfMB0GA1UEAxMWYWRjMDBwY2MudXMub3JhY2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAkQOdZCmoOQRuxSvI/74bjnUPq7u7qiGbmaN1D5TB JaM+j5XRixEUI3pidaxlbykaraqVBMJpXJ6ua0QWectv6SdzuqcvH8C5el06NxTs fB6pcvxHGXVAbAvtGr2tOPSL+5HaFQoATpiY3HugTnJfjmHRfOqIo8nUMek6zCtv rKUCAwEAAaNAMD4wDAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB9gAMB0GA DgQWBBQ/7yJbGCbbAnaLEi4ReLwLlvSxJTANBgkqhkiG9w0BAQQFAAOBgQBrMb2i6zcChhVM7a9VVgBr8xljBsPxVWCAYNUYaoyUj9VkD4CpFF9hVX0CpceoSBTiyMQp 3sg0FAYz1PGfjrq7uFEq9iTCwa5J/7k/VSOLKd3IDqzz7w0ZERksgp3OOqOct/wB/wQplaoMZLcRoInVUbGTBDMfqmW5iZ/wjpzItg== —–END CERTIFICATE—– -
移除第一行
(-----BEGIN CERTIFICATE-----)、移除最後一行(-----END CERTIFICATE-----),以及修改檔案的其餘部分以移除分行符號。結果應該是單一行檔案 (縮短內容): - 儲存檔案。這一行是 Windows Powershell 指令的輸入。
http://oam-runtime-host:oam-runtime-port/oamfed/idp/cert?id=<KEYENTRY_ID>
MIIB+DCCAWGgAwIBAgIBCjANBg....InVUbGTBDMfqmW5iZ/wjpzItg==
執行下列步驟以擷取 IdP 的發行者 / 提供者 ID:
-
移至「OAM 管理主控台」:
http(s)://oam-admin-host:oam-admin-port/oamconsole -
瀏覽至組態、聯合設定值
-
請注意「提供者 ID」欄位中的 OAM 發照者 / 提供者 ID 值

OAM IdP SSO 和登出 URL 為 ( 注意:請確定具有公用端點,這是一般使用者使用的 URL):
-
瀏覽器 SSO URL:
http(s)://oam-public-host:oam-publicport/oamfed/idp/samlv20 -
ECP SSO URL:
http(s)://oam-public-host:oam-publicport/oamfed/idp/soap -
登出 URL:
http(s)://oam-public-host:oam-publicport/oamfed/idp/samlv20
如果您有任何疑問,可以從 IdP 描述資料擷取這些 URL:
-
開啟瀏覽器
-
前往
http(s)://oam-public-host:oam-public-port/oamfed/idp/metadata -
瀏覽器 SSO URL 將會是 XML 的 Location 屬性
Element EntityDescriptor , IDPSSODescriptor , SingleSignOnService for which the Binding attribute is set to urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect: <md:EntityDescriptor ...> ... <md:IDPSSODescriptor ...> ... <md:SingleSignOnService> Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTPRedirect" Location="https://acme.com/oamfed/idp/samlv20"/> ... </md:IDPSSODescriptor> ... </md:EntityDescriptor>
-
ECP SSO URL 將會是 XML 的「位置」屬性
Element EntityDescriptor , IDPSSODescriptor , SingleSignOnService for which the Binding attribute is set to urn:oasis:names:tc:SAML:2.0:bindings:SOAP: <md:EntityDescriptor ...> ... <md:IDPSSODescriptor ...> ... <md:SingleSignOnService> Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"Location="https://acme.com/oamfed/idp/soap"/> ... </md:IDPSSODescriptor> ... </md:EntityDescriptor> -
「登出 URL」將會是 XML 的「位置」屬性
Element EntityDescriptor , IDPSSODescriptor , SingleLogoutService for which the Binding attribute is set to urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect: <md:EntityDescriptor ...> ... <md:IDPSSODescriptor ...> ... <md:SingleLogoutServiceBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTPRedirect" Location="https://acme.com/oamfed/idp/samlv20"ResponseLocation="https://acme.com/oamfed/idp/samlv20"/> ... </md:IDPSSODescriptor> ... </md:EntityDescriptor>
SHA-256 與 SHA-1
在 OAM 與 Office 365 之間設定「同盟」之後,您必須設定 OAM 使用 SHA-1 作為 Office 365 SP 合作夥伴的簽章。
OAM 簽章訊息中的簽署憑證
在 OAM 與 Office 365 之間設定「聯合」之後,您必須設定 OAM,讓聯合伺服器在 Office 365 SP 合作夥伴的所有外送簽署 SAML 訊息中包含其 X.509 簽署憑證。
使用者帳戶
Office 365 與 OAM 目錄中的使用者帳戶必須同步,以支援各種聯合流程 (瀏覽器 SSO 與 ActiveSync):
-
對於指定的使用者,Office 365 與 OAM 所使用的目錄都必須具有該使用者的帳戶
-
必須在 OAM 的使用者帳戶中設定用於 Office 365 帳戶的使用者全域唯一 ID (或
ImmutableId) 和電子郵件地址 (或UserPrincipalName)。 -
對於 ActiveSync 郵件整合,Office 365 所使用的
userID(或ImmutableId) 必須是用於 OAM 之「HTTP 基本認證」的使用者名稱: -
電子郵件地址 (或
UserPrincipalName) 中的識別碼是電子郵件地址在@字元之前的一部分。例如,如果UserPrincipalName是 alice.appleton@acme.com,則 ID 為alice.appleton -
該 ID 是「HTTP 基本認證」使用者名稱。例如
alice.appleton -
「OAM HTTP 基本認證配置」之「OAM 識別存放區」組態中使用的「使用者 ID 屬性」必須符合內送「HTTP 基本認證」使用者名稱。例如,「OAM 識別存放區」中用於使用者別名的「使用者 ID 屬性」必須是 alice.appleton。
ImmutableId
ImmutableId 是 Office 365 用來唯一參照使用者的屬性。即使稍後要刪除使用者記錄,後續建立的其他使用者也無法擁有相同的 ImmutableId 值。
ImmutableId 通常為
-
隨機唯一識別碼 (如 2848cfc7f6914af2a550c024bcbf0c6e)
-
或使用者名稱視為唯一:即使原始使用者已從系統中刪除,其他使用者也不會有相同的使用者名稱。
UserPrincipalName
UserPrincipalName (或 UPN) 是具有電子郵件地址格式的識別碼。電子郵件地址的網域名稱必須對應至 Office 365 網域中使用的名稱。
例如,如果已為 Federation SSO 的 acme.com 網域設定 Office 365,則所有電子郵件地址類似 identiSer@acme.com 的使用者都可以使用為該 Office 365 網域設定的 IdP 來執行 Federation SSO。
ActiveSync 需求
在 ActiveSync 郵件流程中:
-
Office 365 郵件伺服器透過 SSL 直接連線到 IdP,並使用 SAML 2.0 ECP 通訊協定透過 HTTP 基本認證傳送 SAML AuthnRequest 與使用者的憑證
-
IdP 會驗證這些證明資料,並透過 ECP 協定傳回 SAML 宣告
-
Office 365 授予郵件應用程式的存取權
在這種流程中,使用者將:
-
提供電子郵件地址給 Office 365 (例如 alice.appleton@acme.com)
-
Office 365 使用 '@' 字元之前的 ID 作為 HTTP 基本認證使用者名稱 (例如 alice.appleton)
-
IdP 必須能夠以使用者名稱作為電子郵件地址中的 ID 來驗證證明資料 (例如 alice.appleton)
使用者名稱需求
根據上述情況,IdP 的使用者認證需求如下:
| 瀏覽器 |
認證使用者名稱 |
IdP 的 HTTP 基本認證使用者名稱 |
|---|---|---|
| 以瀏覽器為基礎的同盟 SSO | 任何項目 | 不適用 |
以瀏覽器為基礎的同盟 SSO + + ActiveSync 電子報 |
任何項目 | 電子郵件地址中的識別碼 |
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,瀏覽 education.oracle.com/learning-explorer 成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Integrating Office 365 with OAM and Id Pre-Requisites
F60937-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.