來賓使用者的 SAML/WS-Fed 身分識別提供者同盟

注意

  • Azure Active Directory 中的「直接同盟」現在稱為「SAML/WS-Fed 識別提供者 (IdP) 同盟」。

本文說明如何與任何組織中可支援 SAML 2.0 或 WS-Fed 通訊協定的識別提供者 (IdP) 設定同盟。 在設定與合作夥伴的 IdP 同盟後,來自該網域的新來賓使用者便可以使用其由 IdP 管理的自有組織帳戶登入您的 Azure AD 租用戶,並開始與您共同作業。 來賓使用者不需要另外建立一個 Azure AD 帳戶。

重要

  • 我們不再支援適用於新 SAML/WS-Fed IdP 同盟的 IdP 允許清單。 當您設定新的外部同盟時,請參閱步驟 1:判斷合作夥伴是否需要更新其 DNS 文字記錄
  • 在 Azure AD 對外部同盟傳送的 SAML 要求中,簽發者 URL 是為租用戶端點。 針對任何新的同盟,我們建議所有合作夥伴將 SAML 或 IdP (以 WS-Fed 為基礎) 的對象設定為租用戶端點。 請參閱下面的 SAML 2.0WS-Fed 的必要屬性和宣告區段。 任何以全域端點設定的現有同盟都會繼續運作,但如果您的外部 IdP 在 SAML 要求中預期的是全域簽發者 URL,那麼新的同盟會停止運作。
  • 目前,您只能將一個網域新增至外部同盟。 我們正積極處理,希望能允許更多網域。
  • 我們已移除需要驗證 URL 網域以符合目標網域或需要來自允許的 IdP 的限制。 如需詳細資訊,請參閱步驟 1:判斷夥伴是否需要更新其 DNS 文字記錄

什麼時候來賓使用者會使用 SAML/WS-Fed IdP 同盟進行驗證?

在設定與組織的 SAML/WS-Fed IdP 同盟之後,您邀請的任何新來賓使用者都將使用該 SAML/WS-Fed IdP 進行驗證。 請務必注意,若來賓使用者已兌換您所提出的邀請,則設定同盟並不會變更其驗證方法。 以下是一些範例:

  • 如果來賓使用者已兌換您所提出的邀請,而您隨後與其所屬組織的 SAML/WS-Fed IdP 設定同盟,則這些來賓使用者將會繼續使用您設定同盟之前,其原本使用的驗證方法。
  • 如果您與組織的 SAML/WS-Fed IdP 設定同盟並對來賓使用者提出邀請,然後夥伴組織之後移至 Azure AD,則只要您租用戶中的同盟原則仍存在,已兌換邀請的來賓使用者便會繼續使用同盟的 SAML/WS-Fed IdP。
  • 如果您刪除與組織的 SAML/WS-Fed IdP 同盟,則目前使用 SAML/WS-AT IdP 的任何來賓使用者都將無法登入。

在上述案例中,您可以藉由重設其兌換狀態來更新來賓使用者的驗證方法。

SAML/WS-Fed IdP 同盟會繫結至網域命名空間,例如 contoso.com 和 fabrikam.com。 組織在建立與 AD FS 或第三方 IdP 同盟時,會將一或多個網域命名空間與這些 IdP 相關聯。

使用者體驗

透過 SAML/WS-Fed IdP 同盟,來賓使用者會使用自己的組織帳戶登入您的 Azure AD 租用戶。 使用者在存取共用資源並收到登入提示時,會由系統重新導向至其 IdP。 成功登入之後,使用者會返回 Azure AD 來存取資源。 使用者重新整理權杖的有效期限為 12 小時 (這是 Azure AD 中傳遞重新整理權杖的預設長度)。 如果同盟 IdP 已啟用 SSO,則使用者會遇到 SSO,而且不會在初始驗證後看到任何登入提示。

登入端點

SAML/WS-Fed IdP 同盟來賓使用者現在可以使用一般端點 (換句話說,就是不包括租用戶內容的一般應用程式 URL) 來登入您的多租用戶或 Microsoft 第一方應用程式。 在登入流程中,來賓使用者會選擇 [登入選項],然後選取 [登入組織]。 使用者接著輸入您的組織名稱,並繼續使用自己的認證登入。

SAML/WS-Fed IdP 同盟來賓使用者也可以使用包括您租用戶資訊的應用程式端點,例如:

  • https://myapps.microsoft.com/?tenantid=<your tenant ID>
  • https://myapps.microsoft.com/<your verified domain>.onmicrosoft.com
  • https://portal.azure.com/<your tenant ID>

您也可以將應用程式或資源的直接連結提供給來賓使用者,包括您的租用戶資訊,例如 https://myapps.microsoft.com/signin/Twitter/<application ID?tenantId=<your tenant ID>

常見問題集

是否可以使用 Azure AD 驗證網域來設定 SAML/WS-Fed IdP 同盟?

否,我們會針對 Azure AD 驗證的網域封鎖 SAML/WS-Fed IdP 同盟,改用原生的 Azure AD 受控網域功能。 如果您嘗試使用在 Azure AD 中驗證 DNS 的網域來設定 SAML/WS-Fed IdP 同盟,您會看到錯誤。

是否可以為存在非受控 (透過電子郵件驗證) 租用戶的網域設定 SAML/WS-Fed IdP 同盟?

是,您可以使用未在 Azure AD 中驗證 DNS 的網域來設定 SAML/WS-Fed IdP 同盟,包括非受控 (電子郵件驗證或「病毒式」) Azure AD 的租用戶。 當使用者兌換 B2B 邀請或使用目前不存在的網域執行自助式 Azure AD 註冊時,系統就會建立租用戶。 如果網域尚未驗證,而且租用戶尚未經過管理員接管,便可以設定與該網域的同盟。

我可以建立多少個同盟關聯性?

目前支援的同盟關聯性上限為 1,000 個。 這項限制包括內部同盟和 SAML/WS-Fed IdP 同盟。

我可以與相同租用戶的多網域設定同盟嗎?

我們目前不支援相同租用戶的多網域 SAML/WS-Fed IdP 同盟。

當簽署憑證到期時,是否需要更新該憑證?

如果您在 IdP 設定中指定中繼資料 URL,Azure AD 便會在簽署憑證到期時自動予以更新。 不過,如果憑證因任何原因而在到期之前輪替,或如果您未提供中繼資料 URL,Azure AD 便無法加以更新。 在此情況下,您必須手動更新簽署憑證。

如果同時啟用 SAML/WS-Fed IdP 同盟和電子郵件一次性密碼驗證,會優先使用哪種方法?

如果已與夥伴組織建立 SAML/WS-Fed IdP 同盟,則來自該組織的新來賓使用者會優先採用 SAML/WS-Fed IdP 同盟,而非電子郵件一次性密碼驗證。 如果在您設定 SAML/WS-Fed IdP 同盟之前,來賓使用者已使用一次性密碼驗證兌換了邀請,則會繼續使用一次性密碼驗證。

SAML/WS-Fed IdP 同盟能解決登入問題,是不是因為其採用部分同步租用?

不是,在此案例中應該使用電子郵件單次密碼功能。 「部分同步租用」是指內部部署使用者身分識別不會完全同步到雲端的合作夥伴 Azure AD 租用戶。 來賓的身分識別若未存在於雲端中,卻嘗試兌換 B2B 邀請,則無法登入。 單次密碼功能會讓此來賓能夠登入。 SAML/WS-Fed IdP 同盟功能則解決了來賓有 IdP 所管理的自有組織帳戶,但組織內卻完全沒有任何 Azure AD 的情況。

在組織設為 SAML/WS-Fed IdP 同盟之後,每個來賓都必須傳送和兌換個別的邀請嗎?

若來賓使用者已兌換您所提出的邀請,則設定 SAML/WS-Fed IdP 同盟並不會變更其驗證方法。 您可以藉由重設其兌換狀態來更新來賓使用者的驗證方法。

是否有任何方法可將已簽署的要求傳送至 SAML 身分識別提供者?

目前,Azure AD SAML/WS-Fed IdP 同盟功能不支援將已簽署的驗證權杖傳送至 SAML 身分識別提供者。

步驟 1:判斷夥伴是否需要更新其 DNS 文字記錄

根據合作夥伴的 IdP,合作夥伴可能需要更新其 DNS 記錄,以啟用與您的同盟。 使用下列步驟來判斷是否需要更新 DNS。

注意

我們不再支援適用於新 SAML/WS-Fed IdP 同盟的 IdP 允許清單。

  1. 請檢查合作夥伴的 IdP 被動驗證 URL,以查看網域是否符合目標網域或目標網域中的主機。 換句話說,設定 fabrikam.com 同盟時:

    • 如果被動驗證端點是 https://fabrikam.comhttps://sts.fabrikam.com/adfs (相同網域中的主機),則不需要進行任何 DNS 變更。
    • 如果被動驗證端點是 https://fabrikamconglomerate.com/adfshttps://fabrikam.com.uk/adfs,則網域不符合 fabrikam.com 網域,因此夥伴必須將驗證 URL 的文字記錄新增至其 DNS 設定。
  2. 如果根據上一個步驟需要進行 DNS 變更,請要求合作夥伴將 TXT 記錄新增至其網域的 DNS 記錄,如下列範例所示:

    fabrikam.com.  IN   TXT   DirectFedAuthUrl=https://fabrikamconglomerate.com/adfs

步驟 2:設定夥伴組織的 IdP

接著,夥伴組織需要使用所需的宣告和信賴憑證者的信任來設定其 IdP。

注意

為了說明如何設定 SAML/WS-Fed IdP 同盟,我們會使用 Active Directory 同盟服務 (AD FS) 做為範例。 請參閱透過 AD FS 設定 SAML/WS-Fed IdP 同盟一文,以取得如何將 AD FS 設定為 SAML 2.0 或 WS-Fed IdP 的範例,來為同盟預做準備。

SAML 2.0 設定

Azure AD B2B 可設為與使用 SAML 通訊協定的 IdP 同盟,但有下列特定需求。 如需瞭解如何在 SAML IdP 與 Azure AD 之間設定信任的詳細資訊,請參閱使用 SAML 2.0 識別提供者 (IdP) 進行單一登入

注意

SAML/WS-Fed IdP 同盟的目標網域不得為在 Azure AD 中進行 DNS 驗證的網域。 如需詳細資訊,請參閱常見問題一節。

所需的 SAML 2.0 屬性和宣告

下表顯示必須於第三方 IdP 設定的特定屬性和宣告需求。 若要設定同盟,則必須在來自 IdP 的 SAML 2.0 回應中收到下列屬性。 若要設定這些屬性,請連結至線上 Security Token Service XML 檔案,或者您也可以手動輸入這些屬性。

注意

請確定下列的值與您設定了外部同盟的雲端相符。

來自 IdP 的 SAML 2.0 回應所需的屬性:

屬性
AssertionConsumerService https://login.microsoftonline.com/login.srf
適用對象 https://login.microsoftonline.com/<tenant ID>/(建議) 使用您要設定同盟的 Azure AD 租用戶的租用戶識別碼取代 <tenant ID>

在 Azure AD 對外部同盟傳送的 SAML 要求中,簽發者 URL 是為租用戶端點 (例如 https://login.microsoftonline.com/<tenant ID>/)。 針對任何新的同盟,我們建議所有合作夥伴將 SAML 或 IdP (以 WS-Fed 為基礎) 的對象設定為租用戶端點。 任何以全域端點設定的現有同盟 (例如 urn:federation:MicrosoftOnline) 都會繼續運作,但如果您的外部 IdP 在 SAML 要求中預期的是全域簽發者 URL,且該要求是由 Azure AD 傳送,那麼新的同盟會停止運作。
簽發者 合作夥伴 IdP 的簽發者 URI,例如 http://www.example.com/exk10l6w90DHM0yi...

IdP 所簽發 SAML 2.0 權杖所需的宣告:

屬性名稱
NameID 格式 urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress emailaddress

WS-Fed 設定

Azure AD B2B 可設定為與使用 WS-Fed 通訊協定的 IdP 同盟,但有下列特定需求。 目前已通過 Azure AD 相容性測試的兩個 WS-Fed 提供者包括 AD FS 和 Shibboleth。 如需如何在 WS-Fed 相容提供者與 Azure AD 之間建立信賴憑證者信任的詳細資訊,請參閱 Azure AD 識別提供者相容性文件中的<使用 WS 通訊協定的 STS 整合論文>。

注意

同盟的目標網域不得是在 Azure AD 上進行 DNS 驗證的網域。 如需詳細資訊,請參閱常見問題一節。

所需的 WS-Fed 屬性和宣告

下表顯示必須於第三方 WS-Fed IdP 設定的特定屬性和宣告需求。 若要設定同盟,則必須在來自 IdP 的 WS-Fed 訊息中收到下列屬性。 若要設定這些屬性,請連結至線上 Security Token Service XML 檔案,或者您也可以手動輸入這些屬性。

注意

請確定下列的值與您設定了外部同盟的雲端相符。

來自 IdP 的 WS-Fed 訊息中所需的屬性:

屬性
PassiveRequestorEndpoint https://login.microsoftonline.com/login.srf
適用對象 https://login.microsoftonline.com/<tenant ID>/(建議) 使用您要設定同盟的 Azure AD 租用戶的租用戶識別碼取代 <tenant ID>

在 Azure AD 對外部同盟傳送的 SAML 要求中,簽發者 URL 是為租用戶端點 (例如 https://login.microsoftonline.com/<tenant ID>/)。 針對任何新的同盟,我們建議所有合作夥伴將 SAML 或 IdP (以 WS-Fed 為基礎) 的對象設定為租用戶端點。 任何以全域端點設定的現有同盟 (例如 urn:federation:MicrosoftOnline) 都會繼續運作,但如果您的外部 IdP 在 SAML 要求中預期的是全域簽發者 URL,且該要求是由 Azure AD 傳送,那麼新的同盟會停止運作。
簽發者 合作夥伴 IdP 的簽發者 URI,例如 http://www.example.com/exk10l6w90DHM0yi...

IdP 所簽發 WS-Fed 權杖所需的宣告:

屬性
ImmutableID http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID
emailaddress http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

步驟 3:在 Azure AD 中設定 SAML/WS-Fed IdP 同盟

接下來,您將在 Azure AD 中使用步驟 1 所設定的 IdP 來設定同盟。 您可以使用 Azure AD 入口網站或 Microsoft Graph API。 可能需要 5 到 10 分鐘的時間,同盟原則才會生效。 在這段時間內,請勿嘗試兌換同盟網域的邀請。 以下為必要屬性:

  • 合作夥伴 IdP 的簽發者 URI
  • 合作夥伴 IdP 的被動驗證端點 (僅支援 https)
  • 憑證

在 Azure AD 入口網站中設定同盟

  1. 移至 Azure 入口網站。 在左窗格中,選取 [Azure Active Directory]。

  2. 選取 [外部身分識別]>[所有識別提供者]。

  3. 選取 [新增 SAML/WS-Fed IdP]。

    Screenshot showing button for adding a new SAML or WS-Fed IdP.

  4. 在 [新增 SAML/WS-Fed IdP] 頁面上,輸入下列內容:

    • 顯示名稱 - 輸入名稱,可協助您識別合作夥伴的 IdP。
    • 識別提供者通訊協定 - 選取 [SAML] 或 [WS-Fed]。
    • 同盟 IdP 的網域名稱 - 輸入合作夥伴 IdP 的目標網域名稱以進行同盟。 目前僅支援一個網域名稱,但我們正積極處理,希望能允許更多名稱。

    Screenshot showing the new SAML or WS-Fed IdP page.

  5. 選取填入中繼資料的方法。 您可以手動輸入中繼資料,或者如果您有包含中繼資料的檔案,您可以藉由選取 [剖析中繼資料檔案] 並瀏覽檔案來自動填入欄位。

    • 簽發者 URI - 合作夥伴 IdP 的簽發者 URI。
    • 被動驗證端點 - 合作夥伴 IdP 的被動要求者端點。
    • 憑證 - 簽署憑證的識別碼。
    • 中繼資料 URL - IdP 中繼資料的位置,該資料會用於簽署憑證的自動更新。

    Screenshot showing metadata fields.

    注意

    中繼資料 URL 是選擇性的,但強烈建議您輸入此資訊。 如果您提供中繼資料 URL,Azure AD 就可以在簽署憑證到期時自動予以更新。 如果憑證因任何原因而在到期之前輪替,或如果您未提供中繼資料 URL,Azure AD 便無法加以更新。 在此情況下,您必須手動更新簽署憑證。

  6. 選取 [儲存]。

使用 Microsoft Graph API 設定同盟

您可以使用 Microsoft Graph API samlOrWsFedExternalDomainFederation 資源類型來設定同盟,且該同盟具有支援 SAML 或 WS-Fed 通訊協定的識別提供者。

步驟 4:在 Azure AD 中測試 SAML/WS-Fed IdP 同盟

現在,請邀請新的 B2B 來賓使用者來測試您的同盟設定。 如需詳細資訊,請參閱在 Azure 入口網站中新增 Azure AD B2B 共同作業使用者

如何更新憑證或設定的詳細資料?

在 [所有識別提供者] 頁面,您可以檢視您已設定的 SAML/WS-Fed 識別提供者清單以及識別提供者的憑證到期日。 在此清單中,您可以更新憑證並修改其他設定詳細資料。

Screenshot showing an identity provider in the SAML WS-Fed list

  1. 移至 Azure 入口網站。 在左窗格中,選取 [Azure Active Directory]。

  2. 選取 [外部身分識別]。

  3. 選取 [所有識別提供者]。

  4. 在 [SAML/WS-Fed 識別提供者] 下,捲動至清單中的識別提供者,或使用搜尋方塊。

  5. 若要更新憑證或修改設定詳細資料:

    • 在識別提供者的 [設定] 資料行中,選取 [編輯] 連結。
    • 在設定頁面中,修改任何下列詳細資料:
      • 顯示名稱 - 合作夥伴組織的顯示名稱。
      • 識別提供者通訊協定 - 選取 [SAML] 或 [WS-Fed]。
      • 被動驗證端點 - 合作夥伴 IdP 的被動要求者端點。
      • 憑證 - 簽署憑證的識別碼。 若要將其更新,請輸入新的憑證識別碼。
      • 中繼資料 URL - 包含了合作夥伴中繼資料的 URL,用於簽署憑證的自動更新。
    • 選取 [儲存]。

    Screenshot of the IDP configuration details.

  6. 若要檢視 IdP 的網域,請選取 [網域] 資料行中的連結,以檢視合作夥伴的目標網域名稱,進行同盟。

    注意

    如果您需要更新合作夥伴的網域,您必須刪除設定,並以使用新網域的識別提供者重新設定同盟。

    Screenshot of the domain configuration page

如何移除同盟?

您可以移除同盟設定。 如果您這麼做,已兌換其邀請的同盟來賓使用者就無法登入。 但是,您可以藉由重設其兌換狀態,讓他們再次存取您的資源。 若要在 Azure AD 入口網站中移除 IdP 的設定:

  1. 移至 Azure 入口網站。 在左窗格中,選取 [Azure Active Directory]。

  2. 選取 [外部身分識別]。

  3. 選取 [所有識別提供者]。

  4. 在 [SAML/WS-Fed 識別提供者] 下,捲動至清單中的識別提供者,或使用搜尋方塊。

  5. 選取 [網域] 資料行中的連結以檢視 IdP 的網域詳細資料。

  6. 選取 [刪除設定]。

    Screenshot of deleting a configuration.

  7. 選取 [確定] 以確認刪除。

您也可以使用 Microsoft Graph API samlOrWsFedExternalDomainFederation 資源類型來移除同盟。

後續步驟

深入瞭解當外部使用者以各種身分識別提供者登入時的邀請兌換體驗