自动预配是指在用户需要访问的云应用程序中创建用户标识和角色。 除了创建用户标识之外,自动预配还包括在状态或角色更改时维护和删除用户标识。 在开始部署之前,可以查看本文,了解 Microsoft Entra 预配的工作原理并获取配置建议。
Microsoft Entra 预配服务通过连接到应用程序供应商或本地预配代理提供的跨域标识管理系统 (SCIM) 2.0 用户管理 API 终结点,将用户预配到 SaaS 应用和其他系统。 此 SCIM 终结点允许 Microsoft Entra ID 以编程方式创建、更新和删除用户。 对于所选应用程序,预配服务还可以创建、更新和删除与标识相关的额外对象,例如组。 用于在 Microsoft Entra ID 与应用程序之间进行预配的通道被加密,使用 HTTPS TLS 1.2。
图 1:Microsoft Entra 预配服务
图 2:从 Microsoft Entra ID 到常用 SaaS 应用程序的“出站”用户预配工作流
图 3:从常用人力资源管理(HCM)应用程序到Microsoft Entra ID 和 Windows Server Active Directory 的“入站”用户预配工作流
使用 SCIM 2.0 进行预配
Microsoft Entra 预配服务使用 SCIM 2.0 协议 进行自动预配。 该服务连接到应用程序的 SCIM 终结点,并使用 SCIM 用户对象架构和 REST API 自动预配和取消预配用户和组。 Microsoft Entra 库中的大多数应用程序都提供了基于 SCIM 的预配连接器。 开发人员使用 Microsoft Entra ID 中的 SCIM 2.0 用户管理 API 为其与预配服务集成的应用生成终结点。 有关详细信息,请参阅 生成 SCIM 终结点并配置用户预配。 本地预配代理还会将 Microsoft Entra SCIM 操作转换为 LDAP、 SQL、 REST 或 SOAP、 PowerShell、对 自定义 ECMA 连接器的调用。
若要为当前没有自动Microsoft Entra 预配连接器的应用请求一个 Microsoft Entra 自动预配连接器,请参阅 Microsoft Entra 应用程序请求。
授权
Microsoft Entra ID 需要凭据才能连接到应用程序的用户管理 API。 在为应用程序配置自动用户预配时,需要输入有效的凭据。 对于画廊应用程序,可以参考应用教程以找到应用程序的凭据类型和具体需求。 对于非图库应用程序,您可以参考 SCIM 文档以了解凭据类型和要求。 在 Microsoft Entra 管理中心,可以通过 Microsoft Entra ID 使用提供的凭据尝试连接应用的设置程序来验证凭据。
映射属性
为第三方 SaaS 应用程序启用用户预配时,Microsoft Entra 管理中心通过属性映射控制其属性值。 映射确定预配或更新用户帐户时,Microsoft Entra ID 与目标应用程序之间流动的用户属性。
Microsoft Entra 用户对象和每个 SaaS 应用的用户对象之间有一组预配置的属性和属性映射。 某些应用管理其他类型的对象以及用户,例如组。
设置预配时,请务必查看和配置定义哪些用户(或组)属性的属性映射和工作流从Microsoft Entra ID 流向应用程序。 查看并配置匹配属性(使用此属性匹配对象),该属性用于唯一标识和匹配两个系统之间的用户/组。
可以根据业务需求自定义默认的属性映射。 因此,可以更改或删除现有属性映射或者创建新的属性映射。 有关详细信息,请参阅 自定义 SaaS 应用程序的用户预配属性映射。
将预配配置到 SaaS 应用程序时,表达式映射是可指定的属性映射类型之一。 对于这些映射,必须编写类似于脚本的表达式,以便将用户的数据转换为 SaaS 应用程序更可接受的格式。 有关详细信息,请参阅 编写属性映射的表达式。
范围
任务分配范围
对于从 Microsoft Entra ID 到 SaaS 应用程序的出站预配,依赖 用户或组分配 是确定哪些用户处于预配范围的最常用方法。 由于用户分配还用于启用单一登录,因此同一方法可用于管理访问和预配。 基于分配的范围不适用于入站预配方案。
群组 使用 Microsoft Entra ID P1 或 P2 许可证计划,可以使用组来分配对 SaaS 应用程序的访问权限。 然后,当预配范围设置为 “仅同步分配的用户和组”时,Microsoft Entra 预配服务会根据他们是否是分配给应用程序的组的成员来预配或取消预配用户。 除非应用程序支持组对象,否则不会预配组对象本身。 确保分配给应用程序的组的属性“SecurityEnabled”设置为“True”。
动态组。 Microsoft Entra 用户预配服务可以在 动态成员身份组中读取和预配用户。 请记住以下注意事项和建议:
动态组可能会影响从 Microsoft Entra ID 到 SaaS 应用程序的端到端预配的性能。
在 SaaS 应用程序中,动态组中用户被配置或移除配置的速度取决于动态组评估成员变更的速度。 有关如何检查动态组的处理状态的信息,请参阅 检查成员资格规则的处理状态。
当用户失去动态组中的成员身份时,它被视为取消预配事件。 为动态成员身份组创建规则时,请考虑此方案。
嵌套组。 Microsoft Entra 用户预配服务无法读取或预配嵌套组中的用户。 该服务只能读取和配置那些作为被明确分配的组的直接成员的用户。 这种“基于组的应用程序分配”的限制也会影响单一登录(请参阅 使用组管理对 SaaS 应用程序的访问权限)。 而是直接在包含需要预配的用户的组中分配或其他 范围 。
基于属性的范围
可以使用范围筛选器来定义基于属性的规则,以确定哪些用户已预配到应用程序。 此方法通常用于从 HCM 应用程序到 Microsoft Entra ID 和 Active Directory 的入站预配。 范围筛选器被配置为每个 Microsoft Entra 用户预配连接器中属性映射的组成部分。 有关配置基于属性的范围筛选器的详细信息,请参阅 使用范围筛选器进行基于属性的应用程序预配。
B2B(来宾)用户
可以使用 Microsoft Entra 用户预配服务将 Microsoft Entra ID 中的 B2B(来宾)用户预配到 SaaS 应用程序。 但是,对于 B2B 用户使用 Microsoft Entra ID 登录到 SaaS 应用程序,必须手动配置 SaaS 应用程序,以使用 Microsoft Entra ID 作为安全断言标记语言 (SAML) 标识提供者。
为 B2B(来宾)用户配置 SaaS 应用时,请遵循以下一般准则:
- 对于大多数应用,用户设置需要手动进行。 还必须在应用中手动创建用户。
- 对于支持自动设置的应用,例如 Dropbox,会从应用创建单独的邀请。 用户必须确保接受每个邀请。
- 在用户属性中,为了缓解来宾用户中的用户配置文件磁盘(UPD)被破坏的任何问题,请始终将用户标识符设置为 user.mail。
注释
B2B 协作用户的 userPrincipalName 将外部用户的电子邮件地址 alias@theirdomain 显示为 "alias_theirdomain#EXT#@yourdomain"。 当将 userPrincipalName 属性作为源属性包含在属性映射中,并且正在预配 B2B 用户时,#EXT# 和您的域将从 userPrincipalName 中剥离,因此仅使用其原始别名@域名进行匹配或预配。 如果需要提供完整的用户主体名称(包括 #EXT# 和域),请将 userPrincipalName 替换为 originalUserPrincipalName 作为源属性。
userPrincipalName = alias@theirdomain
originalUserPrincipalName = alias_theirdomain#EXT#@yourdomain
预配周期:初始和增量
当Microsoft Entra ID 为源系统时,预配服务使用 增量查询跟踪 Microsoft Graph 数据中的更改 ,以监视用户和组。 预配服务先在源系统和目标系统上运行初始周期,然后进行定期的增量周期。
初始周期
启动预配服务后,第一个周期将:
从源系统查询所有用户和组,检索 属性映射中定义的所有属性。
使用任何配置的 分配 或 基于属性的范围筛选器筛选返回的用户和组。
分配用户或在预配范围内时,服务将使用指定的 匹配属性查询目标系统以查找匹配用户。 示例:如果源系统中的 userPrincipal 名称是匹配的属性并映射到目标系统中的 userName,则预配服务会查询与源系统中 userPrincipal 名称值匹配的目标系统。
如果在目标系统中找不到匹配的用户,则会使用从源系统返回的属性创建该用户。 创建用户帐户后,预配服务将检测并缓存新用户的目标系统的 ID。 此 ID 用于对该用户运行所有将来的操作。
如果找到匹配的用户,则会使用源系统提供的属性对其进行更新。 匹配用户帐户后,预配服务将检测并缓存新用户的目标系统的 ID。 此 ID 用于对该用户运行所有将来的操作。
如果属性映射包含“reference”属性,则服务会在目标系统上执行更多更新,以创建和链接引用的对象。 例如,用户可能在目标系统中具有“Manager”属性,该属性链接到在目标系统中创建的另一个用户。
在初始周期结束时保留水印,该标记为以后的增量周期提供起点。
某些应用程序(如 ServiceNow、G Suite 和 Box)不仅支持预配用户,还支持预配组及其成员。 在这些情况下,如果在 映射中启用了组预配,预配服务将同步用户和组,然后同步动态成员身份组。
增量周期
初始周期后,所有其他周期都将:
查询源系统,查找自上次存储水印以来更新的任何用户和组。
使用任何配置的 分配 或 基于属性的范围筛选器筛选返回的用户和组。
分配用户或在预配范围内时,服务将使用指定的 匹配属性查询目标系统以查找匹配用户。
如果在目标系统中找不到匹配的用户,则会使用从源系统返回的属性创建该用户。 创建用户帐户后,预配服务将检测并缓存新用户的目标系统的 ID。 此 ID 用于对该用户运行所有将来的操作。
如果找到匹配的用户,则会使用源系统提供的属性对其进行更新。 如果它是匹配的新分配帐户,预配服务将检测并缓存新用户的目标系统的 ID。 此 ID 用于对该用户运行所有将来的操作。
如果属性映射包含“reference”属性,则服务会在目标系统上执行更多更新,以创建和链接引用的对象。 例如,用户可能在目标系统中具有“Manager”属性,该属性链接到在目标系统中创建的另一个用户。
如果以前在预配范围内的用户已从范围中删除,包括未分配,则服务会通过更新禁用目标系统中的用户。
如果在源系统中禁用或软删除以前处于预配范围内的用户,则服务会通过更新禁用目标系统中的用户。
如果在源系统中硬删除以前处于预配范围内的用户,该服务将删除目标系统中的用户。 在 Microsoft Entra ID 中,用户在软删除后 30 天永久删除。
在增量周期结束时保留新的水印,该标记为后面的增量周期提供起点。
注释
可以选择在映射部分中使用目标对象操作复选框禁用Create、Update或Delete操作。 在更新期间禁用用户的逻辑也通过来自 accountEnabled 等字段的属性映射进行控制。
预配服务会以教程中针对每个应用程序定义的时间间隔无限期运行接连的增量周期。 增量周期一直持续到其中一个事件发生:
- 该服务使用 Microsoft Entra 管理中心或使用相应的 Microsoft Graph API 命令手动停止。
- 使用 Microsoft Entra 管理中心中的 “重启”预配 选项或使用相应的Microsoft图形 API 命令触发新的初始周期。 该操作清除任何存储的水印,并导致重新评估所有源对象。 此外,该操作不会中断源对象和目标对象之间的链接。 若要中断链接,请对请求使用 Restart synchronizationJob :
POST https://microsoftgraph.chinacloudapi.cn/beta/servicePrincipals/{id}/synchronization/jobs/{jobId}/restart
Authorization: Bearer <token>
Content-type: application/json
{
"criteria": {
"resetScope": "Full"
}
}
- 由于属性映射或范围筛选器发生更改,触发新的初始周期。 此操作还会清除任何存储的水印,并导致重新评估所有源对象。
- 预配过程由于错误率高而进入隔离区(见示例),并停留在隔离区超过四周。 在这种情况下,会自动禁用该服务。
错误和重试
如果目标系统中的错误阻止在目标系统中添加、更新或删除单个用户,则会在下一个同步周期中重试该操作。 不断重试错误,逐渐缩减重试频率。 常见故障可能包括:
- 在源系统中没有填充必要属性的用户,而该属性是在目标系统中所需的。
- 在源系统中具有某个属性值的用户,该值在目标系统中有唯一约束,而另一个用户记录中存在相同的值。
通过调整源系统中受影响用户的属性值或调整属性映射来解决这些故障,以免造成冲突。
Quarantine
如果针对目标系统进行的大多数或全部调用都因错误(例如管理员凭据无效)而失败,则预配作业将进入“隔离”状态。 预配摘要报告中指示此状态,如果电子邮件通知是在 Microsoft Entra 管理中心配置的,则通过电子邮件指示此状态。
隔离时,增量周期的频率逐渐减少到每天一次。
预配作业在修复所有导致问题的错误后解除隔离,并启动下一个同步周期。 如果预配作业保持隔离状态超过四周,则会禁用预配作业。 在此处了解有关 隔离状态的详细信息。
预配需要多长时间
性能取决于预配作业是运行初始预配周期还是增量循环。 有关预配需要多长时间以及如何监视预配服务的状态的详细信息,请参阅 检查用户预配的状态。
如何判断用户是否已正确预配
用户预配服务运行的所有操作都会记录在 Microsoft Entra 预配日志中。 日志包括对源和目标系统执行的所有读取和写入操作,以及每次操作期间读取或写入的用户数据。 有关如何在 Microsoft Entra 管理中心读取预配日志的信息,请参阅 预配报告指南。
取消预配
Microsoft Entra 预配服务通过在删除用户访问时取消预配帐户来保持源和目标系统同步。
预配服务支持删除和禁用(有时称为软删除)用户。 禁用和删除的确切定义因目标应用的实现而异,但通常禁用表示用户无法登录。 删除表示用户已完全从应用程序中删除。 对于 SCIM 应用程序,禁用表示请求将用户的 活动 属性设置为 false。
将应用程序配置为禁用用户
请确认已选中更新的复选框。
请确认您的应用程序中active的映射。 如果使用的是应用库中的应用程序,则映射可能略有不同。 在这种情况下,请使用图库应用的默认映射。
配置应用程序以删除用户
此方案触发禁用或删除:
- 在 Microsoft Entra ID 中,用户被软删除(即发送到回收站,且 AccountEnabled 属性设置为 false)。 在Microsoft Entra ID 中删除用户后 30 天,该用户将从租户中永久删除。 此时,预配服务会发送 DELETE 请求以永久删除应用程序中的用户。 在 30 天时段内,可以随时 手动删除用户,从而向应用程序发送删除请求。
- 用户已被从 Microsoft Entra ID 的回收站中永久删除或移除。
- 用户被取消应用分配。
- 用户从在範围之内变为超出范围(不再通过范围筛选器)。
默认情况下,Microsoft Entra 预配服务软删除或禁用超出作用域的用户。
当发生这四个事件之一且目标应用程序不支持软删除时,预配服务会发送 DELETE 请求以永久删除应用中的用户。
如果您在属性映射中看到IsSoftDeleted,则其用于确定用户的状态,以及是否使用active = false发送更新请求以软删除用户。
取消预配事件
下表介绍了如何使用 Microsoft Entra 预配服务配置取消预配操作。 这些规则是为非图库/自定义应用程序制定的,但通常也适用于图库中的应用程序。 改进后的翻译是: 然而,图库应用程序的行为可能会有所不同,因为它们已针对应用程序的具体需求进行了优化。 例如,如果目标应用程序不支持软删除,则 Microsoft Entra 预配服务可能会发送硬删除请求来删除用户,而不是发送软删除。
| 情景 | 如何在 Microsoft Entra ID 中配置 |
|---|---|
| 用户从应用取消分配、在 Microsoft Entra ID 中软删除或阻止登录。 你不希望做任何事情。 |
isSoftDeleted从属性映射中删除,/或将跳过范围删除属性设置为 true。 |
用户被从应用取消分配,在 Microsoft Entra ID 中被软删除,或被阻止登录。 你想要将特定属性 true 设置为或 false. |
请将 isSoftDeleted 映射到您想要设置为 false 的属性。 |
| 在 Microsoft Entra ID 中禁用用户、从应用取消分配用户、在 Microsoft Entra ID 中软删除用户,或阻止用户登录。 你想要向目标应用程序发送 DELETE 请求。 | 目前,只有部分需要此功能的图库应用程序得到支持。 客户无法配置它。 |
| 在 Microsoft Entra ID 中,一个用户被删除。 你不希望在目标应用程序中执行任何操作。 | 确保未选择“删除”作为属性配置体验中的目标对象操作之一。 |
| 在 Microsoft Entra ID 中,用户被删除。 你想要在目标应用程序中设置特性的值。 | 不支持。 |
| 在 Microsoft Entra ID 中删除了一个用户。 想要删除目标应用程序中的用户 | 确保在属性配置体验中将 Delete 选为目标对象操作之一。 |
已知的限制
- 当用户或组从应用中取消分配,并且不再通过预配服务管理时,会发送禁用请求。 此时,服务不会管理用户,在从目录中软删除用户时不会发送删除请求。
- 不支持预配在 Microsoft Entra ID 中禁用的用户。 在预配之前,它们必须在Microsoft Entra ID中处于活动状态。
- 当用户从软删除转到活动状态时,Microsoft Entra 预配服务会在目标应用中激活用户,但不会自动还原动态成员身份组。 目标应用程序应维护处于非活动状态的用户的动态成员身份组。 如果目标应用程序不支持维护非活动状态,可以重启预配以更新动态成员身份组。
Recommendation
开发应用程序时,始终支持软删除和硬删除。 它帮助客户在用户被意外禁用时恢复其账户。