配置标识提供者
直接联合身份验证现在称为 SAML/WS-Fed 标识提供者 (IdP) 联合身份验证。 可以与其标识提供者 (IdP) 支持安全断言标记语言 (SAML) 2.0 或 WS 联合身份验证 (WS-Fed) 协议的任何组织建立联合身份验证。 在使用合作伙伴的 IdP 设置 SAML/WS-Fed IdP 联合时,该域中的新来宾用户可以使用其自己的 IdP 托管组织帐户登录到你的 Microsoft Entra 租户,并开始与你协作。 来宾用户无需创建单独的 Microsoft Entra 帐户。
来宾用户何时使用 SAML/WS-Fed IdP 联合进行身份验证?
与组织的 SAML/WS-Fed 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 进行登录。
安全断言标记语言 2.0 配置
可以将 Microsoft Entra B2B 配置为与使用 SAML 协议的标识提供者联合,具体要求如下。
注意
不能在 Microsoft Entra ID 上对直接联合的目标域进行 DNS 验证。
必需的安全断言标记语言 2.0 属性和声明
下表显示了必须在第三方标识提供者中配置的特定属性和声明的要求。 若要建立直接联合,必须从标识提供者的 SAML 2.0 响应中接收以下属性。 可以通过链接到联机安全令牌服务 XML 文件或手动输入来配置这些属性。
来自 IdP 的 SAML 2.0 响应的必需属性:
Attribute | 值 |
---|---|
AssertionConsumerService | https://login.microsoftonline.com/login.srf |
读者 | urn:federation:MicrosoftOnline |
颁发者 | 合作伙伴 IdP 的颁发者 URI,例如 https://www.example.com/exk10l6w90DHM0yi... |
IdP 颁发的 SAML 2.0 令牌的必需声明:
Attribute | 值 |
---|---|
NameID 格式 | urn:oasis:names:tc:SAML:2.0:nameid-format:persistent |
emailaddress | https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress |
WS 联合身份验证配置
可以将 Microsoft Entra B2B 配置为与使用 WS-Fed 协议的标识提供者联合,具体要求如下。 目前,已通过 Microsoft Entra ID 对两个 WS-Fed 提供者的兼容性进行测试,包括 AD FS 和 Shibboleth。
不能在 Microsoft Entra ID 上对直接联合的目标域进行 DNS 验证。 身份验证 URL 域必须与目标域相匹配,或者必须是所允许标识提供者的域。
需要 WS 联合身份验证属性和声明
下表显示了必须在第三方 WS-Fed 标识提供者中配置的特定属性和声明的要求。 若要建立直接联合,必须从标识提供者的 WS-Fed 消息中接收以下属性。 可以通过链接到联机安全令牌服务 XML 文件或手动输入来配置这些属性。
来自 IdP 的 WS-Fed 消息中的必需属性:
Attribute | 值 |
---|---|
PassiveRequestorEndpoint | https://login.microsoftonline.com/login.srf |
读者 | urn:federation:MicrosoftOnline |
颁发者 | 合作伙伴 IdP 的颁发者 URI,例如 https://www.example.com/exk10l6w90DHM0yi... |
IdP 颁发的 WS-Fed 令牌的必需声明:
Attribute | 值 |
---|---|
ImmutableID | https://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID |
emailaddress | https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress |
将 Google 添加为 B2B 来宾用户的标识提供者
通过与 Google 建立联合身份验证,可以允许受邀用户使用自己的 Gmail 帐户登录到共享的应用和资源,而无需创建 Microsoft 帐户。
注意
Google 联合专为 Gmail 用户设计。 要与 G Suite 域进行联合身份验证,请使用直接联合身份验证。
Google 用户体验是什么?
向 Google Gmail 用户发送邀请时,来宾用户应使用包含租户上下文的链接访问共享的应用或资源。 他们的体验根据是否已登录到 Google 而异:
- 系统会提示未登录 Google 的来宾用户登录。
- 系统将提示已登录 Google 的来宾用户选择他们要使用的帐户。 他们必须选择你在邀请他们时所用的帐户。
看到“标题过长”错误的来宾用户可以清除其 Cookie 或打开专用或隐身窗口,然后尝试重新登录。
弃用 WebView 登录支持
Google 将弃用嵌入式 Web-view 登录支持(从 2021 年 9 月 30 日开始)。 如果你的应用使用嵌入式 Web 视图对用户进行身份验证,并且你使用 Google 联合身份验证与 Microsoft Entra B2C 或 Microsoft Entra B2B 进行外部用户邀请或自助注册,则 Google Gmail 用户将无法进行身份验证。
以下是将影响 Gmail 用户的已知场景:
- Windows 上的 Microsoft 应用(例如 Teams 和 Power Apps)。
- 使用 WebView 控件、WebView2 或陈旧的 WebBrowser 控件进行身份验证的 Windows 应用。 这些应用应迁移到使用 Web 帐户管理器 (WAM) 流。
- 使用 WebView UI 元素的 Android 应用程序。
- 使用 UIWebView/WKWebview 的 iOS 应用程序。
- 使用 Microsoft 身份验证库的应用。
此更改不会影响:
- Web 应用
- 通过网站访问的 Microsoft 365 服务(例如 SharePoint Online、Office Web Apps 和 Teams Web 应用)
- 使用系统 web-view 进行身份验证的移动应用(iOS 上的 SFSafariViewController、Android 上的自定义标签)。
- Google Workspace 标识,例如,将基于 SAML 的联合与 Google Workspace 结合使用时。
- 使用 Web 帐户管理器(WAM)或 Web 身份验证代理 (WAB) 的 Windows 应用。
登录终结点
Teams 完全支持所有设备上的 Google 来宾用户。 Google 用户可以从 https://teams.microsoft.com 等常见终结点登录到 Teams。
其他应用程序的常见终结点可能不支持 Google 用户。 Google 来宾用户必须使用包含租户信息的链接登录。 以下是示例:
https://myapps.microsoft.com/?tenantid= your tenant ID
https://portal.azure.com/ your tenant ID
https://myapps.microsoft.com/ your verified domain .onmicrosoft.com
如果 Google 来宾用户尝试使用 https://myapps.microsoft.com
或 https://portal.azure.com
等链接,则会遇到错误。
也可以为 Google 来宾用户提供指向应用程序或资源的直接链接,前提是该链接包含租户信息。 例如: https://myapps.microsoft.com/signin/x/ application ID?tenantId= your tenant ID
步骤 1:配置 Google 开发人员项目
首先,在 Google 开发人员控制台中创建一个新项目,以获取可在稍后添加到 Microsoft Entra ID 的客户端 ID 和客户端密码。
转到 Google API (https://console.developers.google.com ),并使用 Google 帐户登录。 我们建议使用共享团队 Google 帐户。
如果系统提示接受服务条款,请接受它。
创建新项目:在仪表板上,选择“创建项目”,为该项目命名(例如 Microsoft Entra B2B),然后选择“创建”:
在“API 和服务”页上,在新项目下选择“查看”。
在 API 卡上选择“转到 API 概述”。 选择“OAuth 同意屏幕”。
依次选择“外部”、“创建”。
在“OAuth 同意屏幕”上,输入“应用程序名称”:
滚动到“授权域”部分,然后输入“microsoftonline.com”:
选择“保存”。
选择“凭据”。 在“创建凭据”菜单上,选择“OAuth 客户端 ID”:
在“应用程序类型”下,选择“Web 应用程序”。 为应用程序提供合适的名称,例如 Microsoft Entra B2B。 在“已授权的重定向 URI”下,输入以下 URI:
https://login.microsoftonline.com
https://login.microsoftonline.com/te/ tenant ID /oauth2/authresp
(其中租户 ID 是你在 Azure 中的租户 ID)
选择“创建” 。 复制客户端 ID 和客户端密码。 你将在 Azure 门户中添加标识提供者时用到它们。
步骤 2:在 Microsoft Entra ID 中配置 Google 联合身份验证
现在,你将设置 Google 客户端 ID 和客户端密码。 可以使用 Azure 门户或 PowerShell 执行此操作。 务必通过邀请自己来测试 Google 联合身份验证配置。 使用 Gmail 地址,并尝试使用受邀的 Google 帐户兑换邀请。
在 Azure 门户中配置 Google 联合身份验证
转到 Azure 门户。 在左侧窗格中,选择“Microsoft Entra ID”。
选择“外部标识”。
选择“所有标识提供者”,然后选择 Google 按钮。
输入之前获得的客户端 ID 和客户端密码。 选择“保存”:
如何删除 Google 联合?
可以删除 Google 联合设置。 如果这样做,那么已兑现邀请的 Google 来宾用户将无法登录。 不过,你可以通过从目录中删除用户并重新邀请,再次向用户授予对资源的访问权限。
在 Microsoft Entra ID 中删除 Google 联合身份验证
转到 Azure 门户。 在左侧窗格中,选择“Microsoft Entra ID”。
选择“外部标识”。
选择“所有标识提供者”。
在 Google 行上,选择省略号 (...),然后选择“删除”。
选择“是”确认删除。
添加 Facebook 作为外部标识的标识提供者
可以将 Facebook 添加到自助注册用户流(预览版),这样用户就可以使用自己的 Facebook 帐户来登录应用程序。 允许用户使用 Facebook 登录,你需要为租户启用自助注册。 将 Facebook 添加为标识提供者后,设置应用的用户流,并选择“Facebook”作为登录方式之一。
注意
用户只能使用其 Facebook 帐户通过支持自助服务注册和用户流的应用进行注册。 用户无法通过 Facebook 帐户被邀请或兑换邀请。
在 Facebook 开发人员控制台中创建应用
必须在 Facebook 开发人员控制台中创建应用,才能将 Facebook 帐户用作标识提供者。 如果还没有 Facebook 帐户,可以在 https://www.facebook.com/ 处注册。
注意
在下面的第 9 步和第 16 步中使用以下 URL。
- 对于“站点 URL”,输入应用程序的地址,例如 。
- 对于“有效 OAuth 重定向 URI”,输入“”。 可以在 Microsoft Entra ID 概述屏幕中找到你的
tenant-ID
。
- 使用 Facebook 帐户凭据登录 Facebook 开发人员。
- 如果以前没有登录过,需要以 Facebook 开发人员身份注册。 选择页面右上角的“开始使用”,接受 Facebook 的策略,然后完成注册步骤。
- 依次选择“我的应用”和“创建应用”。
- 输入“显示名称”和有效的“联系人电子邮件”。
- 选择“创建应用 ID”。 你必须接受 Facebook 平台策略,并完成联机安全检查。
- 选择“设置”,然后选择“基本”。
- 选择“类别”(例如“业务”和“网页”)。 Facebook 需要此值,但不用于 Microsoft Entra ID。
- 在页面底部,选择“添加平台”,然后选择“网站”。
- 在“站点 URL”中,输入相应的 URL(如上所述)。
- 在“隐私策略 URL”中,输入用于维护应用隐私信息的页面的 URL(例如“”)。
- 选择“保存更改”。
- 在页面的顶部,复制“应用 ID”的值。
- 选择“显示”,然后复制“应用密码”的值。 使用这两个值将 Facebook 配置为租户中的标识提供者。 “应用机密”是必不可少的安全凭据。
- 依次选择“产品”旁边的加号,以及“Facebook 登录”下的“设置”。
- 选择“Facebook 登录”下的“设置”。
- 在“有效 OAuth 重定向 URI”中,输入相应的 URL(如上所述)。
- 选择页面底部的“保存更改”。
- 要使 Facebook 应用程序可用于 Microsoft Entra ID,请选择页面右上角的“状态”选择器,并将其切换为“开”以将应用程序公开,然后选择“切换模式”。 此时,“状态”应从“开发”变为“实时”。
将 Facebook 帐户配置为标识提供者
现在将设置 Facebook 客户端 ID 和客户端密码,在 Microsoft Entra 管理中心中输入或使用 PowerShell 均可。 可以通过以下方法测试 Facebook 配置:通过在已启用了自助服务注册的应用上的用户流进行注册。
在 Microsoft Entra ID 屏幕中配置 Facebook 联合身份验证
以 Microsoft Entra 租户的全局管理员身份登录到 Azure 门户。
在“Azure 服务”下,选择“Microsoft Entra ID”。
在左侧菜单中,选择“外部标识”。
依次选择“所有标识提供者”和“Facebook”。
对于“客户端 ID”,输入之前创建的 Facebook 应用的“应用 ID”。
对于“客户端密码”,输入已记录的“应用密码”。
选择“保存”。
如何删除 Facebook 联合身份验证?
可以删除 Facebook 联合身份验证设置。 这样做的话,任何已经在用户流中使用 Facebook 帐户注册的用户都将无法再登录。
在 Microsoft Entra ID 中删除 Facebook 联合身份验证:
- 转到 Azure 门户。 在左侧窗格中,选择“Microsoft Entra ID”。
- 选择“外部标识”。
- 选择“所有标识提供者”。
- 在“Facebook”行上,选择上下文菜单(“...”),然后选择“删除”。
- 选择“是”以确认删除。