Loading
保护您的 Salesforce 组织
目录
选择筛选器

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

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

          搜索所有 Salesforce 帮助
          自动化用户的完整 MFA 挑战

          自动化用户的完整 MFA 挑战

          Salesforce 要求对所有 UI 登录进行多重身份验证 (MFA),包括来自自动化用户的登录。对于自动化用例,例如机器人流程自动化 (RPA),您可以使用生成基于时间的一次性密码 (TOTP) 的第三方身份验证应用程序以编程方式完成 MFA。

          所需的 Edition

          适用于:Salesforce Classic 和 Lightning Experience
          适用于:所有版本

          当您将第三方身份验证应用程序连接到用户帐户时,Salesforce 会共享可以生成 TOTP 的密钥。使用此密钥,您可以编写使用 TOTP 完成 MFA 的脚本,而无需任何人工交互。

          重要
          重要 请勿对拥有系统管理员简档或修改所有数据、查看所有数据、自定义应用程序或作者 Apex 用户权限的用户帐户使用编程 TOTP 质询。从 2026 年 6 月开始,这些帐户需要使用防网络钓鱼 MFA 方法(密钥,例如内置身份验证程序或安全密钥)。当防网络钓鱼 MFA 要求被强制执行时,这些用户帐户不能使用身份验证程序应用程序。

          以下是如何连接第三方身份验证应用程序并获取可以生成 TOTP 的密钥。获取密钥是一个手动过程,您需要完成一次。

          备注
          备注 Salesforce Authenticator 不支持这些步骤。
          1. 登录自动化用户帐户。
          2. 转到用户的个人设置,然后单击高级用户详细信息
          3. 查找“应用程序注册:一次性密码身份验证程序”设置,然后单击连接
            包含“应用程序注册:突出显示的一次性密码身份验证程序”设置
          4. 在连接身份验证程序的屏幕上,单击我无法扫描二维码
            连接身份验证应用程序屏幕,其中突出显示了二维码链接
            Salesforce 会将您定向到使用密钥连接应用程序的页面。
          5. 在连接身份验证程序应用程序前,复制密钥并安全存储。将此密钥视为密码,并确保遵循 Salesforce 最佳实践来存储敏感数据。
            连接身份验证应用程序屏幕,突出显示密钥
          6. 按照屏幕上的说明将应用程序连接到 Salesforce。

          要以编程方式完成 TOTP 挑战,请编写使用密钥生成 TOTP 的脚本。包括检索自动生成的 TOTP 并完成 UI 登录的方法。以下是使用 npm 开源 otplib 库的 JavaScript 示例。在此示例中,密钥存储在 AUTOMATION_TOTP_SECRET 变量中。此代码示例仅用于演示 — 请确保编写并测试您自己的自定义代码。

          // This example assumes the otplib package has been installed ($ npm i otplib)
          const { authenticator } = require('otplib');
          
          // Store the Base32 secret securely (environment variable, secrets manager, etc.)
          // This should be the "Key" shown in the UI after clicking "I Can't Scan the QR Code"
          const TOTP_SECRET = process.env.AUTOMATION_TOTP_SECRET;
          
          function getTotpCode() {
            if (!TOTP_SECRET) {
              throw new Error('Missing AUTOMATION_TOTP_SECRET');
            }
          
            // otplib's authenticator expects a Base32 secret by default;
            // 30s step, 6 digits, SHA1 are the common defaults
            return authenticator.generate(TOTP_SECRET);
          }
          
          // Example usage in an auth flow:
          async function completeMfaChallenge({ enterCode }) {
            const code = getTotpCode();
            await enterCode(code); // customer supplies their UI interaction
          }
          
          module.exports = { getTotpCode, completeMfaChallenge };
          
           
          正在加载
          Salesforce Help | Article