Loading
保护您的 Salesforce 组织
将功能动态添加到身份验证提供商

将功能动态添加到身份验证提供商

为获得身份验证提供商功能的最大灵活性,请创建自己的 URL 参数转发允许列表。使用允许列表,您可以在运行时将允许列表参数动态添加到客户端配置 URL,并将其转发到第三方提供商。例如,将用户的语言首选项转发到第三方提供商,以便提供商的登录页面以用户所需的语言显示。

所需的 Edition

适用于:EnterprisePerformanceUnlimitedDeveloper Edition
所需用户权限
要查看身份验证提供商设置: 查看设置和配置
要编辑身份验证提供商设置: 自定义应用程序和管理验证提供商权限

当您通过调用客户端配置 URL 初始化身份验证提供商单点登录流时,Salesforce 会生成授权 URL,其中用户被重定向到第三方提供商。当您将 URL 转发参数列入允许列表时,您可以在调用时将其动态添加到客户端配置 URL 中。然后,该参数会作为授权 URL 的一部分转发到第三方提供商。

因为您可以将任何 URL 参数加入允许列表,所以您可以使用此功能来动态调用第三方提供商的不同体验。

例如,使用此功能控制第三方提供商登录页面的语言。想象一下 Experience Cloud 站点,用户通过单击按钮来选择他们的语言首选项。然后,他们被重定向到站点的登录页面,在那里他们可以选择通过第三方提供商登录 Google。您想要将用户的语言首选项转发到 Google,以便 Google 知道为登录页面显示什么语言。因此,您将 ui_locales 参数列入允许列表。然后,您开发站点,以便当用户选择他们的语言首选项时,您的站点将其存储在 Cookie 中。如果用户选择使用 Google 登录,您的站点会从 Cookie 中提取值,将其存储在 ui_locales 参数中,并将参数动态添加到身份验证提供商单点登录初始化 URL。然后,ui_locales 参数会作为授权 URL 的一部分从 Salesforce 转发到 Google。此时,用户将被重定向到 Google 的登录页面。由于 ui_locales 参数,登录页面以首选语言显示。

以下是如何使用此功能添加功能的另一个示例。假设您有一个登录页面,用户可以选择单击按钮登录 Google。您知道一些用户有多个 Google 帐户,Google 可以在他们完成登录之前提示他们选择一个帐户。您希望帮助用户跳过这一步,因此您可以在登录页面上添加一个选项,让他们可以在使用 Google 登录之前输入电子邮件地址。然后,您将 login_hint 参数列入允许列表。如果用户输入电子邮件地址,您可以使用 login_hint 参数来存储它。然后,当他们单击使用 Google 登录的选项时,您可以将 login_hint 参数动态添加到单点登录初始化 URL。参数会转发到授权 URL。当用户被定向到 Google 时,Google 已经知道他们想要使用哪个帐户。

要将身份验证提供商转发参数列入允许列表,请使用元数据 API。以下是如何使用 Salesforce CLI 通过元数据 API 和允许列表ui_localeslogin_hint参数创建 Google 身份验证提供商的示例。在您开始之前,请确保您已经安装了 Salesforce CLI

  1. 将您的组织启用为 Dev Hub
  2. 创建 Salesforce DX 项目
  3. 授权贵组织
  4. 构建临时组织定义文件
  5. 要验证是否正确创建了临时组织,请运行此 CLI 命令。
    sf org open -o <your scratch org name>
    .
  6. 在 Salesforce DX 项目目录中,创建名为 AuthProviders 的目录。
  7. AuthProviders 目录中,使用此内容创建名为 package.xml 的文件。
    <Package xmlns="http://soap.sforce.com/2006/04/metadata">
        <types>
            <members>*</members>
            <name>AuthProvider</name>
        </types>
        <version>62.0</version>
    </Package>
    
  8. AuthProviders 目录中,创建名为 authproviders 的子目录。
  9. authproviders 子目录中,使用此内容创建名为 <yourauthprovidername>.authprovider 的文件。
    <AuthProvider xmlns="http://soap.sforce.com/2006/04/metadata">
        <friendlyName>MyAuthProvider</friendlyName>
        <includeOrgIdInIdentifier>false</includeOrgIdInIdentifier>
        <isPkceEnabled>true</isPkceEnabled>
        <providerType>Google</providerType>
        <requireMfa>false</requireMfa>
        <sendAccessTokenInHeader>false</sendAccessTokenInHeader>
        <sendClientCredentialsInHeader>false</sendClientCredentialsInHeader>
        <sendSecretInApis>true</sendSecretInApis>
        <paramForwardAllowlist>
            <description>Stores the user's language preferences</description>
            <param>ui_locales</param>
        </paramForwardAllowlist>
        <paramForwardAllowlist>
            <description>Stores the user's email address</description>
            <param>login_hint</param>
        </paramForwardAllowlist>
    </AuthProvider>
  10. 要将身份验证提供商部署到临时组织,导航回 Salesforce DX 项目目录并运行此 CLI 命令。
    sf project deploy start --metadata dir AuthProviders
    在执行命令时,它会使用允许列表中的 ui_localeslogin_hint 参数在您的组织中创建身份验证提供商。将这些参数添加到客户端配置 URL,并根据需要自定义提供商的功能。
 
正在加载
Salesforce Help | Article