将 Facebook 添加为外部 ID 的标识提供者

提示

本文介绍如何将 Facebook 添加为用于 B2B 协作的标识提供者。 如果你的租户配置了客户身份验证和访问控制管理,请参阅面向客户的将 Facebook 添加为标识提供者

你可以将 Facebook 添加到自助注册用户流中,这样用户即可使用自己的 Facebook 帐户来登录应用程序。 必须先为租户启用自助注册,然后才能允许用户使用 Facebook 登录。 将 Facebook 添加为标识提供者后,设置应用的用户流,并选择“Facebook”作为登录方式之一。

将 Facebook 添加为应用程序的登录选项之一后,用户可以在“登录”页上输入他们用于登录 Facebook 的电子邮件,或者依次选择“登录选项”、“使用 Facebook 登录”。 无论哪种情况,他们都会重定向到 Facebook 登录页进行身份验证。

Facebook 用户的登录选项

注意

用户只能使用其 Facebook 帐户通过支持自助服务注册和用户流的应用进行注册。 用户无法通过 Facebook 帐户被邀请或兑换邀请。

在 Facebook 开发人员控制台中创建应用

必须在 Facebook 开发人员控制台中创建应用,才能将 Facebook 帐户用作标识提供者。 如果还没有 Facebook 帐户,可以在 https://www.facebook.com/ 处注册。

注意

本文档是使用创建时提供商的开发人员页面的状态创建的,可能会发生更改。

  1. 使用 Facebook 开发人员帐户凭据登录面向开发人员的 Facebook
  2. 如果尚未注册,请注册为 Facebook 开发人员:选择页面右上角的“入门”,接受 Facebook 的策略,然后完成注册步骤。
  3. 选择“创建应用”。 此步骤要求你接受 Facebook 平台政策并完成在线安全检查。
  4. 选择“通过 Facebook 登录进行身份验证并向用户请求数据”>“下一步”。
  5. 在“您在构建游戏吗?”下,选择“否,我不是在构建游戏”,然后选择“下一步”。
  6. 添加应用名称和有效的应用联系人电子邮件。 如果你有企业帐户,则还可以添加企业帐户。
  7. 选择“创建应用” 。
  8. 在创建应用后,转到“仪表板”。
  9. 选择“应用设置”>“基本信息”。
    1. 复制“应用程序 ID”的值。 然后,选择“显示”,复制“应用密码”的值。 使用这两个值将 Facebook 配置为租户中的标识提供者。 “应用程序密码”是一个非常重要的安全凭据。
    2. 为“隐私策略 URL”输入一个 URL,例如 https://www.contoso.com/privacy。 策略 URL 是继续提供应用程序的隐私信息的页面。
    3. 为“服务条款 URL”输入一个 URL,例如 https://www.contoso.com/tos。 策略 URL 是你为应用程序继续提供条款和条件的页面。
    4. 输入用户数据删除 URL,例如 https://www.contoso.com/delete_my_data。 用户数据删除 URL 是为了让用户能够请求删除其数据而保留的页面。
    5. 选择“类别”(例如“业务”和“网页”)。 Facebook 需要此值,但 Microsoft Entra ID 不会使用此值。
  10. 在页面底部,选择“添加平台”,选择“网站”,然后选择“下一步”。
  11. 在“网站 URL”中,输入网站的地址,例如 https://contoso.com
  12. 选择“保存更改”。
  13. 在左侧选择“用例”,然后选择“身份验证和帐户创建”旁边的“自定义”。
  14. 在“Facebook 登录”下选择“转到设置”。
  15. 在“有效的 OAuth 重定向 URI”中,输入以下 URI,将 <tenant-ID> 替换为你的 Microsoft Entra 租户 ID,将 <tenant-name> 替换为你的 Microsoft Entra 租户名称:
  • https://login.microsoftonline.com/te/<tenant-ID>/oauth2/authresp
  • https://login.microsoftonline.com/te/<tenant-subdomain>.onmicrosoft.com/oauth2/authresp
  • https://<tenant-name>.ciamlogin.com/<tenant-ID>/federation/oidc/www.facebook.com
  • https://<tenant-name>.ciamlogin.com/<tenant-name>.onmicrosoft.com/federation/oidc/www.facebook.com
  • https://<tenant-name>.ciamlogin.com/<tenant-ID>/federation/oauth2
  • https://<tenant-name>.ciamlogin.com/<tenant-name>.onmicrosoft.com/federation/oauth2
  1. 选择“保存更改”并在页面顶部选择“应用”,然后选择你刚才创建的应用。
  2. 在页面左侧选择“用例”,然后选择“身份验证和帐户创建”旁边的“自定义”。
  3. 通过在“权限”下选择“添加”来添加电子邮件权限。
  4. 在页面顶部选择“返回”
  5. 此时,只有 Facebook 应用程序所有者可以登录。 由于已注册应用,因此可以使用 Facebook 帐户登录。 为了让用户可以使用 Facebook 应用程序,请从菜单中选择“上线”。 按照列出的所有步骤完成所有要求。 你可能需要完成数据处理问题和企业验证,以验证你的企业实体或组织的身份。 有关详细信息,请参阅 Meta 应用开发

将 Facebook 帐户配置为标识提供者

现在,可以设置 Facebook 客户端 ID 和客户端密码,方法是在 Microsoft Entra 管理中心中输入它,或使用 PowerShell 进行设置。 可以通过以下方法测试 Facebook 配置:通过在已启用了自助服务注册的应用上的用户流进行注册。

要在 Microsoft Entra 管理中心配置 Facebook 联合身份验证,请执行以下步骤

提示

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

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

  2. 浏览到“标识”>“外部标识”>“所有标识提供者”,然后选择“Facebook”。

  3. 对于“客户端 ID”,输入之前创建的 Facebook 应用的“应用 ID”。

  4. 对于“客户端机密”,请输入前面记下的“应用机密”。

    显示“添加社交标识提供者”页的屏幕截图。

  5. 选择“保存”。

使用 PowerShell 配置 Facebook 联合身份验证

  1. 安装最新版本的 Microsoft Graph PowerShell

  2. 运行以下命令:

    Connect-MgGraph -Scopes "IdentityProvider.ReadWrite.All"
    
  3. 根据登录提示使用托管的全局管理员帐户登录。

  4. 运行以下命令:

    $params = @{
       "@odata.type" = "microsoft.graph.socialIdentityProvider"
       displayName = "Facebook"
       identityProviderType = "Facebook"
       clientId = "[Client ID]"
       clientSecret = "[Client secret]"
    }
    
    New-MgIdentityProvider -BodyParameter $params
    

    你可能需要为租户启用自助注册

    注意

    使用在 Facebook 开发者控制台中创建的应用客户端 ID 和客户端密码。 有关详细信息,请参阅 New-MgIdentityProvider 一文。

如何删除 Facebook 联合身份验证?

可以删除 Facebook 联合身份验证设置。 这样做的话,任何已经在用户流中使用 Facebook 帐户注册的用户都将无法再登录。

要在 Microsoft Entra 管理中心删除 Facebook 联合身份验证,请执行以下步骤:

  1. 至少以外部标识提供者管理员身份登录到 Microsoft Entra 管理中心
  2. 浏览到“标识”>“外部标识”>“所有标识提供者”。
  3. 选择“Facebook”行,然后选择“删除”。
  4. 选择“是”以确认删除。

使用 PowerShell 删除 Facebook 联合身份验证:

  1. 安装最新版本的 Microsoft Graph PowerShell

  2. 运行以下命令:

    Connect-MgGraph -Scopes "IdentityProvider.ReadWrite.All"
    
  3. 根据登录提示,使用托管的全局管理员帐户登录。

  4. 输入以下命令:

    Remove-MgIdentityProvider -IdentityProviderBaseId "Facebook-OAUTH"
    

    注意

    有关更多信息,请参阅 Remove-MgIdentityProvider

后续步骤