使用 SAML/WS-Fed 标识提供者进行联合身份验证

适用于:带白色勾号的绿色圆圈。 员工租户 带灰色 X 号的白色圆圈。 外部租户(了解详细信息

注意

Microsoft Entra 外部 ID 中的“直接联合”现在称为“SAML/WS-Fed 标识提供者 (IdP) 联合”。

本文介绍如何与其标识提供者 (IdP) 支持 SAML 2.0 或 WS-Fed 协议的任何组织建立联合。 与合作伙伴的 IdP 建立联合时,该域中的新来宾用户可以使用其自己的 IdP 管理的组织帐户登录到 Microsoft Entra 租户,并开始与你合作。 来宾用户无需创建单独的 Microsoft Entra 帐户。

重要

  • 现在,你可以设置 SAML/WS-Fed IdP 与 Microsoft Entra ID 验证域的联合。 已验证的域必须位于与设置联合身份验证的位置不同的租户中。 配置后,可以通过在跨租户访问设置中配置邀请“兑换订单”来确保用户使用联合 IdP 而不是 Microsoft Entra ID 登录,从而实现入站 B2B 协作。
  • 对于新的 SAML/WS-Fed IdP 联合身份验证,我们不再支持 IdP 允许列表。 设置新的外部联合身份验证时,请参阅步骤 1:确定合作伙伴是否需要更新其 DNS 文本记录
  • 在 Microsoft Entra ID 发送的联合身份验证 SAML 请求中,证书颁发者 URL 是租户终结点。 对于任何新联合,建议所有合作伙伴将基于 SAML 或 WS-联合 IdP 的受众设置为租户终结点。 请参阅 SAML 2.0WS-Fed 必需属性和声明部分。 使用全局终结点配置的任何现有联合将继续工作,但如果外部 IdP 在 SAML 请求中需要全局颁发者 URL,则新联合身份验证将停止工作。
  • 我们删除了单个域的限制。 现在可以将多个域与单个联合配置相关联。
  • 我们删除了要求身份验证 URL 域与目标域相匹配或来自允许的 IdP 的限制。 有关详细信息,请参阅步骤 1:确定合作伙伴是否需要更新其 DNS 文本记录

来宾用户何时使用 SAML/WS-Fed IdP 联合进行身份验证?

设置与组织的 SAML/WS-Fed IdP 联合后:

  • 如果联合的域不是 Microsoft Entra ID 验证域,则邀请的任何新来宾用户都将使用该 SAML/WS-Fed IdP 进行身份验证。

  • 如果域已经过 Microsoft Entra ID 验证,则你还需要在跨租户访问设置中配置兑换顺序设置(预览版),让入站 B2B 协作优先使用联合 IdP 进行兑换。 然后,邀请的任何新来宾用户都将使用该 SAML/WS-Fed IdP 进行身份验证。

特别要注意的是,建立联合并不会更改已兑换邀请的来宾用户的身份验证方法。 下面是一些示例:

  • 来宾用户已从你处兑换邀请,之后你与组织的 SAML/WS-Fed IdP 建立了联合。 这些来宾用户继续使用在你设置联合身份验证之前使用的相同身份验证方法。
  • 你与组织的 SAML/WS-Fed IdP 建立了联合并邀请了来宾用户,合作伙伴组织随后迁移到 Microsoft Entra ID。 只要你的租户中存在联合策略,已兑换邀请的访客用户将继续使用联合 SAML/WS-Fed IdP。
  • 你删除与组织的 SAML/WS-Fed IdP 的联合。 当前使用 SAML/WS-Fed IdP 的任何来宾用户都无法登录。

在上述任何方案中,都可以通过重置来宾用户的兑换状态来更新其身份验证方法。

SAML/WS-Fed IdP 联合与域命名空间(如 contoso.com 和 fabrikam.com)相关联。 使用 AD FS 或第三方 IdP 建立联合时,组织会将一个或多个域命名空间与这些 IdP 相关联。

最终用户体验

使用 SAML/WS-Fed IdP 联合,来宾用户使用其自己的组织帐户登录到 Microsoft Entra 租户。 当用户访问共享资源并提示登录时,他们会重定向到其 IdP。 成功登录后,用户会返回到 Microsoft Entra ID 来访问资源。 如果 Microsoft Entra 会话过期或失效,并且联合 IdP 已启用 SSO,则用户会体验 SSO。 如果联合用户的会话有效,则不会提示用户再次登录。 否则,用户将重定向到其 IdP 进行登录。

登录终结点

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/X/<application ID?tenantId=<your tenant ID>

常见问题

能否使用经 Microsoft Entra ID 验证的域设置 SAML/WS-Fed IdP 联合?

是的,现在可以设置 SAML/WS-Fed IdP 与其他 Microsoft Entra ID 验证域的联合。 这包括其中的租户已经历管理员接管的已验证域。 如果联合的域已经过 Microsoft Entra ID 验证,则你还需要在入站 B2B 协作的跨租户访问设置中配置兑换顺序设置(预览版),以确保在受邀用户登录时使用联合 IdP 而不是 Microsoft Entra ID 兑换其邀请。

目前,不支持跨云的兑换顺序设置。 如果联合的域是其他 Microsoft 云中经过 Microsoft Entra ID 验证的域,则 Microsoft Entra 兑换始终优先。

是否可以与非管理的(经电子邮件验证)租户所在的域建立 SAML/WS-Fed IdP 联合?

是,可以使用 Microsoft Entra ID 中未经 DNS 验证的域(包括非托管的(经电子邮件验证的或“病毒性的”)Microsoft Entra 租户)设置 SAML/WS-Fed IdP 联合。 当用户使用当前不存在的域兑换 B2B 邀请或执行 Microsoft Entra ID 的自助注册时,将创建此类租户。

能否设置与同一租户中多个域的联合?

是的,我们目前支持同一个租户中多个域的 SAML/WS-Fed IdP 联合。

签名证书过期时是否需要续签该证书?

如果在 IdP 设置中指定元数据 URL,Microsoft Entra ID 会在签名证书过期时自动续订该证书。 但是,如果出于任何原因在过期之前轮换证书,或未提供元数据 URL,Microsoft Entra ID 将无法续订该证书。 在这种情况下,你需要手动更新签名证书。

如果同时启用了 SAML/WS-Fed IdP 联合和电子邮件一次性密码身份验证,那么哪个方法优先?

与合作伙伴组织建立 SAML/WS-Fed IdP 联合时,对于该组织中的新来宾用户而言,它将优先于电子邮件一次性密码身份验证。 如果来宾用户在建立 SAML/WS-Fed IdP 联合之前使用一次性密码身份验证兑换了邀请,则他们将继续使用一次性密码身份验证。

是否由于部分同步的租户导致了 SAML/WS-Fed IdP 联合地址登录问题?

否。在此场景中,应使用电子邮件一次性密码功能。 “部分同步的租户”指的是合作伙伴 Microsoft Entra租户,其中本地用户标识未完全同步到云。 其标识尚不存在于云中但尝试兑换 B2B 邀请的来宾无法登录。 使用一次性密码功能,此来宾可以登录。 SAML/WS-Fed IdP 联合功能可以解决以下情况:来宾具有其自己的 IdP 托管的组织帐户,但组织没有 Microsoft Entra。

为组织配置 SAML/WS-Fed IdP 联合后,是否需要向每位来宾发送单独邀请,并且需要来宾兑换邀请?

邀请新来宾时,你仍需要发送邀请或提供直接链接,以便来宾可以完成兑换步骤。 对于现有来宾,不一定需要发送新邀请。 现有来宾将继续使用在设置联合身份验证之前他们使用的身份验证方法。 如果你希望这些来宾开始使用联合身份验证进行身份验证,则可以重置其兑换状态。 然后,他们下次访问你的应用或使用你的邀请中的链接时,他们将重复兑换过程,并开始使用联合身份验证作为身份验证方法。

是否有方法向 SAML 标识提供者发送已签名的请求?

目前,Microsoft Entra SAML/WS-Fed 联合功能不支持向 SAML 标识提供者发送已签名的身份验证令牌。

配置 SAML/Ws-Fed 标识提供者需要哪些权限?

你至少要是外部标识提供者管理员才能配置 SAML/Ws-Fed 标识提供者。

联合身份验证是否消除了在目录中为 B2B 协作用户创建来宾帐户的需求?

否。 无论使用的身份验证或联合方法如何,都会为目录中的 B2B 协作用户创建来宾帐户。 借助此用户对象,可以授予对应用程序的访问权限、分配角色和定义安全组中的成员身份。

步骤 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 域不匹配,因此,合作伙伴需要为其 DNS 配置添加身份验证 URL 的文本记录。
  2. 如果根据上一步需要进行 DNS 更改,则要求合作伙伴向其域的 DNS 记录中添加 TXT 记录,如下例所示:

    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 配置

可以将 Microsoft Entra ID B2B 配置为与使用 SAML 协议的 IdP 联合,具体要求列在本部分中。 有关在 SAML IdP 和 Microsoft Entra ID 之间建立信任的详细信息,请参阅使用 SAML 2.0 标识提供者 (IdP) 进行 SSO

注意

现在可以设置 SAML/WS-Fed IdP 与其他 Microsoft Entra ID 验证域的联合。 有关详细信息,请参阅常见问题部分。

SAML 2.0 的必需属性和声明

下表显示了必须在第三方 IdP 中配置的特定属性和声明的要求。 若要建立联合,必须从 IdP 的 SAML 2.0 响应中接收以下属性。 可以通过链接到联机安全令牌服务 XML 文件或手动输入来配置这些属性。

备注

请确保该值与要设置外部联合的云匹配。

来自 IdP 的 SAML 2.0 响应的必需属性:

Attribute
AssertionConsumerService https://login.microsoftonline.com/login.srf
受众 https://login.microsoftonline.com/<tenant ID>/(建议)将 <tenant ID> 替换为要设置联合的 Microsoft Entra 租户的租户 ID。

在 Microsoft Entra ID 发送的联合身份验证 SAML 请求中,证书颁发者 URL 是租户终结点,例如 https://login.microsoftonline.com/<tenant ID>/。 对于任何新联合,建议所有合作伙伴将基于 SAML 或 WS-联合 IdP 的受众设置为租户终结点。 使用全局终结点配置的任何现有联合(例如 urn:federation:MicrosoftOnline)将继续运行,但如果外部 IdP 需要 Microsoft Entra ID 发送的 SAML 请求中的全局证书颁发者 URL,则新的联合将停止运行。
颁发者 合作伙伴 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 配置

可以将 Microsoft Entra B2B 配置为与使用 WS-Fed 协议的 IdP 联合。 本部分讨论了这些要求。 目前,已通过 Microsoft Entra ID 对两个 WS-Fed 提供者的兼容性进行测试,包括 AD FS 和 Shibboleth。 有关通过 Microsoft Entra ID 在 WS-Fed 兼容的提供者之间建立信赖方信任的详细信息,请参阅 Microsoft Entra 标识提供者兼容性文档中提供的“使用 WS 协议的 STS 集成论文”。

注意

现在可以设置 SAML/WS-Fed IdP 与其他 Microsoft Entra ID 验证域的联合。 有关详细信息,请参阅常见问题部分。

WS-Fed 的必需属性和声明

下表显示了必须在第三方 WS-Fed IdP 中配置的特定属性和声明的要求。 若要建立联合,必须从 IdP 的 WS-Fed 消息中接收以下属性。 可以通过链接到联机安全令牌服务 XML 文件或手动输入来配置这些属性。

备注

请确保该值与要设置外部联合的云匹配。

来自 IdP 的 WS-Fed 消息中的必需属性:

Attribute
PassiveRequestorEndpoint https://login.microsoftonline.com/login.srf
受众 https://login.microsoftonline.com/<tenant ID>/(建议)将 <tenant ID> 替换为要设置联合的 Microsoft Entra 租户的租户 ID。

在 Microsoft Entra ID 发送的联合身份验证 SAML 请求中,证书颁发者 URL 是租户终结点,例如 https://login.microsoftonline.com/<tenant ID>/。 对于任何新联合,建议所有合作伙伴将基于 SAML 或 WS-联合 IdP 的受众设置为租户终结点。 使用全局终结点配置的任何现有联合(例如 urn:federation:MicrosoftOnline)将继续运行,但如果外部 IdP 需要 Microsoft Entra ID 发送的 SAML 请求中的全局证书颁发者 URL,则新的联合将停止运行。
颁发者 合作伙伴 IdP 的颁发者 URI,例如 http://www.example.com/exk10l6w90DHM0yi...

IdP 颁发的 WS-Fed 令牌的必需声明:

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

步骤 3:在 Microsoft Entra ID 中配置 SAML/WS-Fed IdP 联合

接下来,配置与 Microsoft Entra ID 中的步骤 1 中配置的 IdP 的联合。 可以使用 Microsoft Entra 管理中心或 Microsoft 图形 API。 联合策略生效之前可能需要 5-10 分钟。 在此期间,不要尝试兑换联合域的邀请。 需要以下属性:

  • 合作伙伴 IdP 的颁发者 URI
  • 合作伙伴 IdP 的被动身份验证终结点(仅支持 https)
  • 证书

要在 Microsoft Entra 管理中心内配置联合身份验证

提示

本文中的步骤可能因开始使用的门户而略有不同。

  1. 至少以外部标识提供者管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到标识>外部标识>所有标识提供者

  3. 选择“自定义”选项卡,然后选择新增>SAML/WS-Fed

    显示用于添加新 SAML 或 WS-Fed IdP 的按钮的屏幕截图。

  4. 在“新建 SAML/WS-Fed IdP”页上,输入以下内容:

    • 显示名称 - 输入一个名称来帮助标识合作伙伴的 IdP。
    • 标识提供者协议 - 选择 SAMLWS-Fed
    • 联合 IdP 的域名 - 输入合作伙伴的 IdP 目标域名以进行联合。 在此初始配置期间,只需输入一个域名。 以后你可以添加更多域。

    显示新的 SAML 或 WS-Fed IdP 页的屏幕截图。

  5. 选择用于填充元数据的方法。 如果你有包含元数据的文件,可通过选择“分析元数据文件”并浏览文件来自动填充字段。 或者,可以选择“手动输入元数据”并输入以下信息

    • 合作伙伴 SAML IdP 的颁发者 URI,或合作伙伴 WS-Fed IdP 的实体 ID
    • 合作伙伴 SAML IdP 的被动身份验证终结点,或合作伙伴 WS-Fed IdP 的被动请求者终结点
    • 证书 - 签名证书 ID。
    • 元数据 URL - IdP 元数据的位置,用于自动续签签名证书。

    显示元数据字段的屏幕截图。

    注意

    元数据 URL 是可选的,但我们强烈建议使用。 如果提供元数据 URL,Microsoft Entra ID 可以在签名证书过期时自动续订该证书。 如果出于任何原因在过期之前轮换证书,或未提供元数据 URL,Microsoft Entra ID 将无法续订该证书。 在这种情况下,你将需要手动更新签名证书。

  6. 选择“保存”。 标识提供者已添加到“SAML/WS-Fed 标识提供者”列表中。

    显示包含新条目的 SAML/WS-Fed 标识提供者列表的屏幕截图。

  7. (可选)若要将更多域名添加到此联合标识提供者,请执行以下操作:

    1. 选择“域”列中的链接。

      显示用于将域添加到 SAML/WS-Fed 标识提供者的链接的屏幕截图。

    2. 在“联合 IdP 的域名”旁边键入域名,然后选择“添加”。 针对你要添加的每个域重复上述操作。 完成后,选择“完成”

      显示域详细信息窗格中的“添加”按钮的屏幕截图。

使用 Microsoft Graph API 配置联合

可以使用 Microsoft Graph API samlOrWsFedExternalDomainFederation 资源类型来设置与支持 SAML 或 WS-Fed 协议的标识提供者的联合。

步骤 4:为 Microsoft Entra ID 验证域配置兑换顺序

如果域已经过 Microsoft Entra ID 验证,请在入站 B2B 协作的跨租户访问设置中配置兑换顺序设置。 将 SAML/WS-Fed 标识提供者移动到“主要标识提供者”列表的顶部,以优先使用联合 IdP 兑换。

注意

可配置兑换功能的 Microsoft Entra 管理中心设置当前正在向客户推出。 在管理中心提供设置之前,可以使用 Microsoft Graph REST API(beta 版本)配置邀请兑换订单。 请参阅示例 2:更新 Microsoft Graph 参考文档中的默认邀请兑换配置

步骤 5:在 Microsoft Entra ID 中测试 SAML/WS-Fed IdP 联合

现在,邀请新的 B2B 来宾用户来测试联合设置。 有关详细信息,请参阅在 Microsoft Entra 管理中心中添加 Microsoft Entra B2B 协作用户

如何更新证书或配置详细信息?

在“所有标识提供者”页上,可以查看已配置的 SAML/WS-Fed 标识提供者的列表及其证书到期日期。 在此列表中,可以续签证书和修改其他配置详细信息。

  1. 至少以外部标识提供者管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到标识>外部标识>所有标识提供者

  3. 选择自定义选项卡。

  4. 滚动到列表中的标识提供者或使用搜索框。

  5. 若要更新证书或修改配置详细信息:

    • 在标识提供者的“配置”列中,选择“编辑”链接。
    • 在配置页上,修改以下任何详细信息:
      • 显示名称 - 合作伙伴组织的显示名称。
      • 标识提供者协议 - 选择 SAMLWS-Fed
      • 被动身份验证终结点 - 合作伙伴 IdP 的被动请求方终结点。
      • 证书 - 签名证书 ID。 若要续签,请输入新的证书 ID。
      • 元数据 URL - 包含合作伙伴元数据的 URL,用于自动续签签名证书。
    • 选择“保存”

    IDP 配置详细信息的屏幕截图。

  6. 若要编辑与合作伙伴关联的域,请选择“域”列中的链接。 在域详细信息窗格中:

    • 若要添加域,请在“联合 IdP 的域名”旁边键入域名,然后选择“添加”。 针对你要添加的每个域重复上述操作。
    • 若要删除某个域,请选择该域旁边的删除图标。
    • 完成后,选择“完成”

    域配置页的屏幕截图。

    注意

    若要删除与合作伙伴的联合,请仅保留一个域并删除其他所有域,然后按照下一部分中的步骤操作。

如何删除联合?

可以删除联合配置。 如果这样做,已兑换邀请的联合来宾用户不再能登录。 但可以通过重置这些用户的兑换状态,让这些用户能够再次访问你的资源。 要在 Microsoft Entra 管理中心中移除 IdP 的配置,请执行以下操作:

  1. 至少以外部标识提供者管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到标识>外部标识>所有标识提供者

  3. 选择“自定义”选项卡,然后滚动到列表中的标识提供者或使用搜索框

  4. 选择“域”列中的链接以查看 IdP 的域详细信息。

  5. 仅保留“域名”列表中的一个域,并删除其他所有域。

  6. 选择“删除配置”,然后选择“完成”

    删除配置的屏幕截图。

  7. 选择“确定”以确认删除。

还可以使用 Microsoft Graph API samlOrWsFedExternalDomainFederation 资源类型删除联合。

后续步骤

详细了解外部用户使用各种标识提供程序登录时的邀请兑换体验