Loading
识别您的用户并管理访问
目录
选择筛选器

          没有结果
          没有结果
          以下是一些搜索提示

          检查关键字的拼写。
          使用更普遍的搜索词。
          选择更少的筛选器,并扩大搜索范围。

          搜索所有 Salesforce 帮助
          登录流示例

          登录流示例

          您可以使用登录流来定制登录体验,并将业务流程与 Salesforce 身份验证集成。常见用例包括登录时收集和更新用户数据,配置多重身份验证,或者集成第三方强身份验证方法。

          所需的 Edition

          适用于 Salesforce Classic 和 Lightning Experience
          适用于:EssentialsProfessionalEnterprisePerformanceUnlimitedDeveloper Edition

          让我们来看看登录流的三个常见用例:

          • 在登录过程中收集和更新用户数据
          • 应用定制的多重身份验证 (MFA)
          • 整合第三方强认证机制

          在登录时收集和更新用户数据

          该登录流要求用户确认或更新他们的电话号码,然后在用户帐户中更新。

          1. 查询用户电话号码的用户对象(如果存在)。
          2. 显示号码,并要求用户确认或更新它们。
          3. 如果提供,用新号码更新用户对象。

          创建流

          1. 转到https://help.salesforce.com/articleView?id=flow_builder.htm&language=zh_CN
          2. 从工具箱中的“管理器”选项卡,单击新建资源,并创建存储用户 ID 的变量。

            登录事件将上下文属性列表传递给流。在流开始时,将在适当输入变量中填充相应属性的值。要在流中使用这些属性,使用 LoginFlow_ATTRIBUTE_NAME 格式定义本地文本变量。例如,您可以使用 LoginFlow_UserId,以验证登录用户的 ID 并查询关联的用户对象。

            为流定义用户 ID 变量

            在添加每个属性后,将显示在“管理器”选项卡中。

            支持以下输入变量。

            • 登录流登录类型
            • LoginFlow_LoginSubType
            • 登录流 IP 地址
            • 登录流用户代理
            • 登录流平台
            • 登录流应用程序
            • 登录流社区
            • 登录流会话级别
            • 登录流用户 ID

            您也可以在流中将这些属性存储为输出变量。

            • LoginFlow_FinishLocation(类型文本)— 此变量决定流完成时将用户发送到哪里。
            • LoginFlow_ForceLogout(类型布尔值)— 当此变量设置为 true 时,用户将立即注销。
          3. 在“管理器”选项卡中,单击新建资源创建记录变量,以存储用户的值。
            定义记录变量
          4. 添加获取记录元素,以查找尝试登录的用户。
            获取记录元素使用 LoginFlow_UserId 变量,查找用户记录。
          5. 指定要存储在字段中的用户属性,例如,PhoneMobilePhone
            在相同的获取记录元素中,将用户的字段存储在{!user}记录变量中。
          6. 创建欢迎屏幕,以请用户确认文件中的电话号码。
            创建欢迎屏幕
          7. 要设置屏幕中每个电话组件的默认值,将设置为 {!user} 记录变量中的适当字段。对于电话,这是 {!user.Phone}。对于手机,这就是{!user.mobilePhone}。
          8. 要存储每个电话组件的用户条目,请将组件的存储输出值部分中的设置为与上一步相同的字段。
            电话屏幕组件将值设置为输入和输出。
          9. 添加在 {!user} 记录变量中使用值的更新记录元素,以更新用户的电话号码。鉴于您将每个电话屏幕组件的输出存储到 {!user} 记录变量中的字段,因此流使用这些值更新用户。
            更新记录元素
          10. 将元素相互连接。
            登录流示例中的步骤
          11. 为登录流命名,并保存。
            流属性
          12. 将登录流连接到用户简档。最佳做法是使用测试简档创建专用测试用户。
            备注
            备注 在确定登录流正常工作之前,不要将登录流与管理员简档相关联。否则,如果失败,则无法登录到您的组织。
          13. 注销,并以测试用户身份登录,以测试流。

          当您测试欢迎流示例时,以下是使用 Lightning Experience 时的外观。

          欢迎屏幕示例

          配置多重身份验证 (MFA)

          此示例实施登录流,该流使用 Salesforce 支持的 MFA 方法增强了基于时间的一次性密码 (TOTP) 身份验证。TOTP 算法从共享密钥和当前时间计算一次性密码。

          该流执行以下操作。

          • 如果用户尚未注册,则生成新密钥,并提示用户使用快速响应 (QR) 代码注册密钥。在用户提供有效的 TOTP 令牌之后,密钥被存储在用户记录中。密钥将被重复用于将来的登录。
          • 如果用户已注册,仅提示用户输入 TOTP 令牌。
          警告
          警告 在 Lightning Runtime 中启用渲染流时,使用登录流的用户可以在完成流前访问 Salesforce 功能。未经授权的用户访问存在安全风险。如果您使用自定义登录流来强制执行安全性,我们建议您不要启用此设置。

          用户可以使用基于时间的身份验证应用程序(例如 Salesforce Authenticator 或 Google Authenticator)扫描 QR 代码并生成 TOTP 令牌。

          您可以通过添加公司徽标和公司颜色来增强该流并定制用户体验。您甚至可以添加和执行不同的政策。例如,您可以构建基于 IP 的 MFA 过程,仅当 IP 地址超出特定范围时才需要第二个身份验证因素。

          本示例使用 TwoFactorInfo 对象和 Auth.SessionManagement Apex 类自定义和管理 Salesforce 支持的基于标准的 TOTP 多重身份验证。

          1. 查找当前用户的 TwoFactorInfo 对象。如果用户未注册,则生成密钥。
          2. 确定用户是否已经注册了 TOTP。
          3. 如果用户已经注册,则提示用户提供 TOTP 令牌。
          4. 如果用户未注册,则提示用户注册 QR 代码并提供 TOTP 令牌。
          5. 验证 TOTP 令牌。如果令牌有效,则登录流结束,用户登录。
          6. 如果 TOTP 令牌无效,将用户返回到步骤 2。
          TOTP 流步骤

          配置 TOTP 流

          1. 创建变量。
            • Secret – 存储所有多因素操作的密钥。
            • Qr_url - 储密钥的 QR 代码编码的 URL。
            • IsTokenValid - 存储验证结果。

            Secretqr_url 是文本变量,IsTokenValid 是布尔值变量。

            TOTP 创建变量
          2. 要为未使用 TOTP 注册的用户生成新密码,将 Apex 操作(原有)元素拖到画布,并选择 TOTPPlugin 原有 Apex 操作。
            TOTP 插件设置

            Apex 操作是扩展流标准功能的 Apex 类。您可以使用 Apex 操作执行复杂计算,对外部服务进行 API 调用等。

            TOTPPlugin 访问 Salesforce TOTP 方法,使用 QR 代码生成基于时间的密钥,并验证 TOTP。登录流示例包中提供了 TOTPPlugin 的 Apex 类。

            原有 Apex 操作包含这些输入参数。

            • OTP_INPUT - 用户提供的 TOTP 令牌。
            • OTP_REGISTRATION_INPUT - 用户首次注册时提供的 TOTP 令牌。
            • SECRET_INPUT - 用于生成 TOTP 的密钥。

            将返回以下输出值。

            • SECRET_OUTPUT - 由插件生成的密钥。
            • QR_URL_OUTPUT - 密钥的 QR 编码。
            • IsValid_OUTPUT – 如果验证成功,将返回 true。否则,将返回 false

            如果用户尚未注册,配置此 TOTPPlugin 实例,以生成新密钥和 QR 码。在这种情况下,没有输入传递。

            TOTP 插件输入

            QR 代码的密钥和 URL 存储在 qr_urlsecret 变量中。

            TOTP 插件输出
          3. 配置决策元素注册用户。

            此决策验证是否密码为空。如果不为空,用户必须注册。所以将注册定义为决定的结果。否则,用户已经注册,只提供 TOTP 令牌。将默认结果的标签更改为获取 TOTP

            注册决策因素
          4. 配置 Get TOTP 屏幕。

            已注册用户会路由到此屏幕,并要求提供 TOTP 令牌。稍后,在流中,您可以使用用户通过引用文本组件的 API 名称输入的 TOTP 令牌 (OTP_input)。

            从用户的验证器应用程序中请求令牌的屏幕元素。
          5. 配置注册屏幕。请用户扫描 QR 码,初始化 TOTP 客户端应用程序,并输入 TOTP 令牌。
            获得注册令牌屏幕
          6. 要验证用户输入的 TOTP 令牌,配置 TOTPPlugin 原有 Apex 操作的其他实例。

            TOTPPlugin 原有操作支持其中两个用例。

            • 用户来自注册屏幕。用户必须扫描 QR 代码并提供 TOTP 令牌。TOTP 令牌和密钥都被传递给 TOTPPlugin 进行验证。TOTPPlugin 根据密钥验证 TOTP 令牌。如果有效,密钥将在用户记录中注册并用于将来的登录。
            • 用户来自“获取令牌”屏幕。用户已经注册,所以只提供 TOTP。TOTP 令牌通过 TokenInput 参数传递给 TOTPPlugin 进行验证。
            TOTP 验证输入

            isTokenValid 参数返回验证状态,然后保存在 isTokenValid 流变量中。

            TOTP 验证输出
          7. 通过使用两种可能结果配置其他决策元素,确定是否登录用户。
            • 如果 IsTokenValidtrue,令牌有效。
            • 否则,令牌无效。

            如果验证成功,则用户进行到流结束,点击下一步,登录到应用程序。如果验证失败,流会将用户重定向回流中的第 2 步。在第 2 步中,要求注册用户提供新的 TOTP 令牌。如果用户还没有注册,则要求用户注册并提供新的 TOTP 令牌。

            TOTP 登录决策
          8. 将元素相互连接。
            • 若要将“注册”决策连接到“注册”屏幕时,请选择“注册”结果。
            • 若要将“注册”决策连接到“获取 TOTP”屏幕,请选择“获取 TOTP”结果。
            • 若要将“登录”决策连接到“注册”决策,请选择“令牌无效”结果。
          9. 保存登录流,激活它,并将其与用户简档连接。

          整合第三方强认证方法

          您可以使用登录流,通过 API 与外部第三方认证提供商进行交互。

          例如,Yubico 使用名为 YubiKey 的物理安全密钥提供强身份验证。Yubico 还在 GitHub 上提供了示例 Apex 库和登录流。该库提供 Apex 类来验证 YubiKey 一次性密码 (OTP)。这些类允许 Salesforce 用户在登录时使用 YubiKey 作为第二个身份验证因素。有关详细信息,请参阅 yubikey-salesforce-client

          您还可以实施第三方 SMS 或语音传送服务,如 Twilio 或 TeleSign,以实施基于 SMS 的多重身份验证和身份验证流。有关详细信息,请参阅部署第三方基于 SMS 的多重身份验证

          登录流示例包

          登录流示例包是非受管软件包,可将不同登录流安装到您的 Salesforce 组织。它包含以下示例。

          • 电子邮件确认 - 发送带有验证码的电子邮件。
          • SF-TOTP — 启用 TOTP 多重身份验证。
          • 条件多因素 - 对来自可信 IP 地址的用户跳过多重身份验证。
          • 设备激活 - 使用电子邮件或多重身份验证确认用户身份。
          • 接受服务条款 - 在继续之前,请求用户同意条款。
           
          正在加载
          Salesforce Help | Article