使用 Microsoft Entra ID 为 Salesforce 配置自动用户预配

本文的目的是说明如何在 Salesforce 和 Microsoft Entra ID 中执行步骤,以便自动将用户帐户从 Microsoft Entra ID 在 Salesforce 进行预配和取消预配。

先决条件

本文中概述的方案假定你已具有以下项:

  • Salesforce.com 租户。

  • Salesforce 帐户用户名和密码,以及令牌。 有关如何获取令牌,请参阅 配置自动用户帐户预配 。 在未来,如果您重置帐户密码,Salesforce 将为您提供一个新的 token,并且您需要编辑 Salesforce 的预配设置。

  • Salesforce 中用于集成用户的自定义用户配置文件。 在 Salesforce 门户中创建自定义配置文件后,请编辑该配置文件的管理权限以启用以下选项:

    • API 已启用。

    • 管理用户:启用此选项会自动启用以下功能:分配权限集、管理内部用户、管理 IP 地址、管理登录访问策略、管理密码策略、管理配置文件和权限集、管理角色、管理共享、重置用户密码和解锁用户、查看所有用户、查看角色和层次结构、查看设置和配置。

    另请参阅 Salesforce 创建或克隆用户角色 文档。

    注意

    将权限直接分配给此配置文件。 不要通过权限集添加权限。

重要

如果使用 Salesforce.com 试用帐户,则无法配置自动用户预配。 在购买试用帐户之前,试用帐户没有启用必要的 API 访问权限。 可以使用免费的 开发人员帐户 来完成本文,从而绕过此限制。

如果使用 Salesforce 沙盒环境,请参阅 Salesforce 沙盒集成文章

计划将用户分配到 Salesforce

Microsoft Entra ID 使用名为“分配”的概念来确定哪些用户应收到对所选应用的访问权限。 在自动用户帐户预配的上下文中,只同步“分配”到 Microsoft Entra ID 中的应用程序的用户和组。

在配置和启用预配服务之前,需要确定 Microsoft Entra ID 中的哪些用户或组需要访问 Salesforce 应用。

将用户分配到 Salesforce 的重要提示

  • 建议将单个 Microsoft Entra 用户分配到 Salesforce 以测试预配配置。 以后可以通过 “分配用户”中所述的机制分配更多用户和/或组。

  • 将用户分配到 Salesforce 时,必须选择有效用户角色。 “默认访问权限”角色不可用于预配。 请注意,某些角色可能需要 Salesforce 中的许可。

    注意

    在预配过程中,Microsoft Entra 从 Salesforce 导入个人资料。 从 Salesforce 导入的配置文件在 Microsoft Entra ID 中显示为应用程序角色,因此可以在Microsoft Entra ID 中分配用户时选择。 如果要将用户分配到自定义配置文件,请在将用户分配到应用程序之前等待从 Salesforce 导入配置文件。 请注意,执行角色导入时,不应在Microsoft Entra ID 中手动编辑应用程序角色。

标识 Salesforce 中的现有用户

在与 Microsoft Entra 集成之前,Salesforce 帐户可能已有一个或多个用户,由 Salesforce 管理员或其他进程创建。 可以使用 Salesforce 导出数据功能来确定哪些用户已存在。 有关详细信息,请参阅 从 Salesforce 导出备份数据。 从 Salesforce 导出时,请确保 User 数据包含在导出的数据集中,并选择允许组织中的所有用户名称的导出文件编码,例如 Unicode (UTF-8)

从 Salesforce 导出数据后,可以提取 User.csv 文件并在 Excel 或 PowerShell 中打开,以查看 Salesforce 中已有的活动用户列表。

import-csv .\User.csv | where {$_.IsActive -eq '1'}  | sort UserName | ft UserName

启用自动化用户预配

本部分指导你将Microsoft Entra ID 连接到 Salesforce 的用户帐户预配 API - v40

提示

还可以选择按照 Azure 门户中提供的说明为 Salesforce 启用基于 SAML 的单一 Sign-On。 可以独立于自动预配配置单一登录,尽管这两个功能互相补充。

配置用户帐户自动预配

本部分的目的是概述如何对 Salesforce 启用 Active Directory 用户帐户的用户预配。

  1. 以至少云应用程序管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到 Entra ID>企业应用

  3. 如果已为 Salesforce 配置单一登录,请使用搜索字段搜索 Salesforce 实例。 否则,请选择“添加”并在应用程序库中搜索“Salesforce”。 从搜索结果中选择 Salesforce,并将其添加到应用程序列表。

  4. 选择 Salesforce 实例,然后选择“预配”选项卡。

  5. 将“预配模式”设置为“自动”。

    屏幕截图显示了 Salesforce 预配页,其中“预配模式”设置为“自动”和其他可以设置的值。

  6. 在“管理员凭据”部分中,提供以下配置设置:

    1. 在“管理员用户名”文本框中,键入在 Salesforce.com 中已分配“系统管理员”配置文件的 Salesforce 帐户名称。

    2. 在“管理员密码”文本框中,键入此帐户的密码。

  7. 若要获取 Salesforce 安全令牌,请打开新选项卡并登录到同一个 Salesforce 管理员帐户。 在页面右上角,选择名称,然后选择“设置”。

    屏幕截图显示已选择“设置”链接。

  8. 在左侧导航窗格中,选择 “我的个人信息 ”以展开相关部分,然后选择“ 重置我的安全令牌”。

    屏幕截图显示从“我的个人信息”中选择了“重置我的安全令牌”。

  9. “重置安全令牌 ”页上,选择“ 重置安全令牌 ”按钮。

    屏幕截图显示了“Rest 安全令牌”页,其中包含说明性文本和“重置安全令牌”选项

  10. 查看与此管理员帐户关联的电子邮件收件箱。 查找来自 Salesforce.com 的包含新安全令牌的电子邮件。

  11. 复制令牌,转到 Microsoft Entra 窗口,然后将令牌粘贴到“机密令牌”字段中。

  12. 如果 Salesforce 实例位于 Salesforce 政府云上,则应输入 租户 URL 。 否则,这是可选的。 使用 https://<your-instance>.my.salesforce.com 格式输入租户 URL,并将 <your-instance> 替换为 Salesforce 实例的名称。

  13. 选择“测试连接”以确保 Microsoft Entra ID 可以连接到 Salesforce 应用。

  14. 在“通知电子邮件”字段中输入应收到预配错误通知的用户或组的电子邮件地址,并选中下面的复选框。

  15. 选择“保存”。

  16. 在“映射”部分下,选择“将 Microsoft Entra 用户同步到 Salesforce”。

  17. 在“属性映射”部分,查看从 Microsoft Entra ID 同步到 Salesforce 的用户属性。 请注意,选为“匹配”属性的属性将用于匹配 Salesforce 中的用户帐户以执行更新操作。 选择“保存”按钮以提交任何更改 。

  18. 若要为 Salesforce 启用 Microsoft Entra 预配服务,请在“设置”部分将“预配状态”更改为“打开”

  19. 选择“保存”。

注意

在 Salesforce 应用程序中预配用户后,管理员需要为其配置特定于语言的设置。 有关语言配置的详细信息,请参阅 本文

这会开始将“用户和组”部分中分配的任何用户和/或组初始同步到 Salesforce。 初始同步执行的时间比后续同步长,只要服务正在运行,大约每隔 40 分钟就会进行一次同步。

监测

可以使用“同步详细信息”部分监视进度并跟踪指向预配活动日志的链接,这些日志描述了预配服务对 Salesforce 应用执行的所有操作。

有关如何读取Microsoft Entra 预配日志的详细信息,请参阅 有关自动用户帐户预配的报告

分配用户

测试完成后,并且用户已成功预配到 Salesforce,则需要确保需要 Salesforce 的任何其他用户都分配到应用程序角色。 这包括当前在 Salesforce 中具有活动帐户的任何用户,如 “标识 Salesforce 中的现有用户”部分所述。 可以按照此处的说明之一将这些用户和任何其他授权用户分配到 Microsoft Entra 中的 Salesforce 应用程序:

当分配给应用程序的用户在 Microsoft Entra ID 中更新时,这些更改会自动同步到 Salesforce。

常见问题

  • 如果在向 Salesforce 配置时遇到问题,请确保满足以下条件:
    • 使用的凭据具有对 Salesforce 的管理员访问权限。
    • 你正在使用的 Salesforce 版本支持 Web 访问(如 Developer、Enterprise、Sandbox 和 Unlimited Edition of Salesforce)。
    • 为用户启用了 Web API 访问权限。
  • Microsoft Entra 预配服务支持预配用户的语言、区域设置和时区。 这些属性位于默认属性映射中,但没有默认源属性。 请确保选择默认的源属性,并且源属性的格式为 SalesForce 预期的格式。 例如,英语(美国) 的 localeSidKey 为 en_US。 查看 此处 提供的指南以确定正确的 localeSidKey 格式。 可以在 此处找到 languageLocaleKey 格式。 除了确保格式正确外,可能需要确保为用户启用语言,如 此处所述。
  • SalesforceLicenseLimitExceeded: 无法在 Salesforce 中创建用户,因为此用户没有可用的许可证。 为目标应用程序购买其他许可证,或 查看用户分配 ,以确保分配正确的用户。
  • SalesforceDuplicateUserName: 无法预配用户,因为它具有在另一个 Salesforce.com 租户中重复的 Salesforce.com“用户名”。  在 Salesforce.com 中,'Username' 属性的值在所有 Salesforce.com 租户中都必须是唯一的。  默认情况下,用户在 Microsoft Entra ID 中的 userPrincipalName 将成为其在 Salesforce.com 中的“Username”。  可以使用两个选项。  一种选择是在这另一个 Salesforce.com 租户中查找并重命名具有重复 'Username' 的用户(如果也管理这个租户)。  另一种选择是删除 Microsoft Entra 用户对你目录集成到的 Salesforce.com 租户的访问权限。 我们将在下一次同步尝试时重试此操作。
  • SalesforceRequiredFieldMissing: Salesforce 要求用户具有某些属性才能成功创建或更新用户。 此用户缺少其中一个所需的属性。 确保在要预配到 Salesforce 的所有用户上填充了电子邮件和别名等属性。 可以使用 基于属性的范围筛选器限定没有这些属性的用户的范围。
  • 预配到 Salesforce 的默认属性映射包括 SingleAppRoleAssignments 表达式,以将 Microsoft Entra ID 中的 appRoleAssignments 映射到 Salesforce 中的 ProfileName。 确保用户在 Microsoft Entra ID 中没有多个应用角色分配,因为属性映射仅支持预配一个角色。 如果您有一个用户组,并且该用户组被分配了一个角色,那么该组的成员无法直接被分配到具有不同角色的 Salesforce 应用程序。
  • Salesforce 要求电子邮件更新在进行更改之前手动批准。 因此,您可能会在预配日志中看到多个条目来更新用户的电子邮件(直到电子邮件更改获得批准)。

其他资源