使用 SAML/WS-Fed 标识提供者进行联合身份验证
适用于: 员工租户
外部租户(了解详细信息)
Microsoft Entra 租户可以直接与使用 SAML 或 WS-Fed 标识提供者 (IdP) 的外部组织联合。 然后,外部组织中的用户可以使用其 IdP 管理的帐户登录到租户,而无需创建新的 Microsoft Entra 凭据。 对于新邀请的用户,SAML/WS-Fed IdP 联合身份验证优先作为主要登录方法。 注册或登录应用时,用户将被重定向到其 IdP,然后在用户成功登录后返回到 Microsoft Entra。
可以将多个域与单个联合配置相关联。 合作伙伴的域可以已经过 Microsoft Entra 验证,也可未经过验证。
要设置 SAML/WS-Fed IdP 联合身份验证,需要同时在租户和外部组织的 IdP 中配置。 在某些情况下,合作伙伴需要更新其 DNS 文本记录。 他们还需要在 IdP 上更新所需的声明和信赖方信任。
注意
此功能目前为外部租户提供预览版,适用于员工租户。
用户何时使用 SAML/WS-Fed IdP 联合身份验证进行身份验证?
设置联合身份验证后,外部用户的登录体验将取决于您的登录设置以及合作伙伴的域是否已通过 Microsoft Entra 验证。
与已验证域和未验证域的联合身份验证
可使用以下方法设置 SAML/WS-Fed IdP 联合身份验证:
- 未经验证的域:这些域尚未在 Microsoft Entra ID 中通过 DNS 验证。 对于未验证的域,外部组织中的用户使用联合的 SAML/WS-Fed IdP 进行身份验证。
- Microsoft Entra ID 验证域:这些域已在 Microsoft Entra ID 内进行验证,包括租户经历了管理员接管的域。 对于已验证的域,Microsoft Entra ID 是邀请兑换期间使用的主要标识提供者。 对于工作人员租户中的 B2B 协作,可以更改兑换订单,使联合 IdP 成为主要方法。
注意
目前,外部租户或跨云环境不支持兑换订单设置。
与非托管(经电子邮件验证的)租户的联合身份验证
可以使用 Microsoft Entra ID 中未经 DNS 验证的域(包括非托管的(经电子邮件验证的或“病毒性的”)Microsoft Entra 租户)设置 SAML/WS-Fed IdP 联合身份验证。 当用户使用当前不存在的域兑换 B2B 邀请或执行 Microsoft Entra ID 的自助注册时,将创建此类租户。
联合身份验证如何影响当前外部用户
设置联合身份验证不会更改已兑换邀请的用户的身份验证方法。 例如:
- 在联合身份验证设置之前兑换邀请的用户继续使用其原始身份验证方法。 例如,在设置联合身份验证之前,使用一次性密码身份验证兑换邀请的用户继续使用一次性密码。
- 使用联合 IdP 兑换邀请的用户继续使用该方法,即使其组织后来迁移到 Microsoft Entra。
- 如果删除联合身份验证,则当前正在使用 SAML/WS-Fed IdP 的用户无法登录。
无需向现有用户发送新邀请,因为它们继续使用其当前登录方法。 但是,对于工作人员租户中的 B2B 协作,可以重置用户的兑换状态。 下次用户访问你的应用时,他们会重复兑换步骤并切换到联合身份验证。 目前,外部租户或跨云环境不支持兑换订单设置。
工作人员租户中的登录终结点
在工作人员租户中设置联合身份验证时,来自联合组织的用户可以使用常用终结点(换句话说,不包含租户上下文的常规应用 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 租户和外部组织的 IdP。
合作伙伴 IdP 要求
根据合作伙伴的 IdP,合作伙伴可能需要更新其 DNS 记录以启用与你的联合。 请参阅 步骤 1:确定合作伙伴是否需要更新其 DNS 文本记录。
Microsoft Entra ID 为外部联合身份验证发送的 SAML 请求中的证书颁发者 URL 现在是租户终结点,而以前它是全局终结点。 与全局终结点的现有联合身份验证将继续工作。 但是,对于新的联合身份验证,请将外部 SAML 或 WS-Fed IdP 的受众设置为租户终结点。 请参阅 SAML 2.0 部分 和 WS-Fed 部分,以了解所需的属性和声明。
签名证书过期
如果在 IdP 设置中指定元数据 URL,Microsoft Entra ID 会在签名证书过期时自动续订该证书。 但是,如果出于任何原因在过期之前轮换证书,或未提供元数据 URL,Microsoft Entra ID 将无法续订该证书。 在这种情况下,你需要手动更新签名证书。
会话过期
如果 Microsoft Entra 会话过期或失效,并且联合 IdP 已启用 SSO,则用户会体验 SSO。 如果联合用户的会话有效,则不会提示用户再次登录。 否则,用户将重定向到其 IdP 进行登录。
其他注意事项
以下是与 SAML/WS-Fed 标识提供者联合时的其他注意事项。
联合身份验证无法解决由部分同步的租户导致的登录问题,在这种情况下,合作伙伴的本地用户标识未完全同步到云端的 Microsoft Entra。 这些用户无法使用 B2B 邀请登录,因此他们需要改用 电子邮件一次性密码 功能。 SAML/WS-Fed IdP 联合身份验证功能适用于具有自有 IdP 管理的组织帐户但没有 Microsoft Entra 的合作伙伴。
联合身份验证并不能取代对目录中 B2B 来宾帐户的需求。 使用 B2B 协作时,无论使用的身份验证或联合方法如何,都会为员工租户目录中的用户创建来宾帐户。 借助此用户对象,可以授予对应用程序的访问权限、分配角色和定义安全组中的成员身份。
目前,Microsoft Entra SAML/WS-Fed 联合功能不支持向 SAML 标识提供者发送已签名的身份验证令牌。
配置 SAML/WS-Fed IdP 联合身份验证
步骤 1:确定合作伙伴是否需要更新其 DNS 文本记录
使用以下步骤来确定合作伙伴是否需要更新其 DNS 记录以启用与您的联合功能。
检查合作伙伴的 IdP 被动身份验证 URL,以查看域是否与目标域或目标域中的主机匹配。 换言之,为
fabrikam.com
设置联合时:- 如果被动身份验证终结点是
https://fabrikam.com
或https://sts.fabrikam.com/adfs
(同一域中的主机),则不需要更改 DNS。 - 如果被动身份验证终结点为
https://fabrikamconglomerate.com/adfs
或https://fabrikam.co.uk/adfs
,则域与 fabrikam.com 域不匹配,因此,合作伙伴需要为其 DNS 配置添加身份验证 URL 的文本记录。
- 如果被动身份验证终结点是
如果根据上一步需要进行 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 文件或手动输入来配置这些属性。
注意
请确保该值与要设置外部联合的云匹配。
表 1. 来自 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... |
表 2. 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 文件或手动输入来配置这些属性。
注意
请确保该值与要设置外部联合的云匹配。
表 3. 来自 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... |
表 4. 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 管理中心内配置联合身份验证
至少以外部标识提供者管理员身份登录到 Microsoft Entra 管理中心。
如果有权访问多个租户,请使用顶部菜单中的 设置 图标
,并从 目录 菜单中切换到租户。
浏览到标识>外部标识>所有标识提供者。
选择“自定义”选项卡,然后选择新增>SAML/WS-Fed。
在“新建 SAML/WS-Fed IdP”页上,输入以下内容:
- 显示名称 - 输入一个名称来帮助标识合作伙伴的 IdP。
- 标识提供者协议 - 选择 SAML 或 WS-Fed。
- 联合 IdP 的域名 - 输入合作伙伴的 IdP 目标域名以进行联合。 在此初始配置期间,只需输入一个域名。 以后你可以添加更多域。
选择用于填充元数据的方法。 如果你有包含元数据的文件,可通过选择“分析元数据文件”并浏览文件来自动填充字段。 或者,可以选择“手动输入元数据”并输入以下信息:
- 合作伙伴 SAML IdP 的颁发者 URI,或合作伙伴 WS-Fed IdP 的实体 ID。
- 合作伙伴 SAML IdP 的被动身份验证终结点,或合作伙伴 WS-Fed IdP 的被动请求者终结点。
- 证书 - 签名证书 ID。
- 元数据 URL - IdP 元数据的位置,用于自动续签签名证书。
注意
元数据 URL 是可选的。 但是,我们强烈建议使用它。 如果提供元数据 URL,Microsoft Entra ID 可以在签名证书过期时自动续订该证书。 如果在过期时间之前出于任何原因或未提供元数据 URL 而轮换证书,Microsoft Entra ID 无法续订。 在这种情况下,你需要手动更新签名证书。
选择“保存”。 标识提供者已添加到“SAML/WS-Fed 标识提供者”列表中。
(可选)若要将更多域名添加到此联合标识提供者,请执行以下操作:
使用 Microsoft Graph API 配置联合
可以使用 Microsoft Graph API samlOrWsFedExternalDomainFederation 资源类型来设置与支持 SAML 或 WS-Fed 协议的标识提供者的联合。
配置兑换订单(工作人员租户中的 B2B 协作)
如果要在工作人员租户中配置联合身份验证,以便与已验证的域进行 B2B 协作,请确保在邀请兑换期间首先使用联合 IdP。 在跨租户访问设置中为入站 B2B 协作配置兑换订单设置。 将 SAML/WS-Fed 标识提供者移动到“主要标识提供者”列表的顶部,以优先使用联合 IdP 兑换。 对于与已验证域进行的 B2B 协作,请将联合 IdP 设为邀请兑换的主要标识提供者。 在邀请兑换期间通过其他标识提供者。
可以通过邀请新的 B2B 来宾用户来测试您的联盟设置。 有关详细信息,请参阅在 Microsoft Entra 管理中心中添加 Microsoft Entra B2B 协作用户。
注意
可配置兑换功能的 Microsoft Entra 管理中心设置当前正在向客户推出。 在管理中心提供设置之前,可以使用 Microsoft Graph REST API(beta 版本)配置邀请兑换订单。 请参阅示例 2:更新 Microsoft Graph 参考文档中的默认邀请兑换配置。
如何更新证书或配置详细信息?
在 所有标识提供者 页上,可以查看配置的 SAML/WS-Fed 标识提供者及其证书到期日期的列表。 在此列表中,可以续签证书和修改其他配置详细信息。
至少以外部标识提供者管理员身份登录到 Microsoft Entra 管理中心。
浏览到标识>外部标识>所有标识提供者。
选择自定义选项卡。
滚动到列表中的标识提供者或使用搜索框。
若要更新证书或修改配置详细信息:
- 在标识提供者的“配置”列中,选择“编辑”链接。
- 在配置页上,修改以下任何详细信息:
- 显示名称 - 合作伙伴组织的显示名称。
- 标识提供者协议 - 选择 SAML 或 WS-Fed。
- 被动身份验证终结点 - 合作伙伴 IdP 的被动请求方终结点。
- 证书 - 签名证书 ID。 若要续签,请输入新的证书 ID。
- 元数据 URL - 包含合作伙伴元数据的 URL,用于自动续签签名证书。
- 选择“保存”。
若要编辑与合作伙伴关联的域,请选择“域”列中的链接。 在域详细信息窗格中:
- 若要添加域,请在“联合 IdP 的域名”旁边键入域名,然后选择“添加”。 针对你要添加的每个域重复上述操作。
- 若要删除某个域,请选择该域旁边的删除图标。
- 完成后,选择“完成”。
如何删除联合?
可以删除联合配置。 如果这样做,已兑换其邀请的联合来宾用户无法再登录。 但可以通过重置这些用户的兑换状态,让这些用户能够再次访问你的资源。 要在 Microsoft Entra 管理中心中移除 IdP 的配置,请执行以下操作:
至少以外部标识提供者管理员身份登录到 Microsoft Entra 管理中心。
浏览到标识>外部标识>所有标识提供者。
选择“自定义”选项卡,然后滚动到列表中的标识提供者或使用搜索框。
选择“域”列中的链接以查看 IdP 的域详细信息。
仅保留“域名”列表中的一个域,并删除其他所有域。
选择“删除配置”,然后选择“完成”。
选择“确定”以确认删除。
还可以使用 Microsoft Graph API samlOrWsFedExternalDomainFederation 资源类型删除联合。
后续步骤
详细了解外部用户使用各种标识提供程序登录时的邀请兑换体验。