本文介绍配置用户授权源(SOA)的先决条件和步骤。 本文还介绍了如何还原更改和当前功能限制。 有关用户 SOA 的完整概述,请参阅“拥抱云优先”状态:将用户授权源传输到云(预览版)。
先决条件
| Requirement | Description |
|---|---|
| 角色 |
混合管理员 需要调用 Microsoft Graph API 来读取和更新用户的 SOA。 应用程序管理员 或 云应用程序管理员 需要授予用户同意Microsoft Graph 资源管理器或用于调用 Microsoft Graph API 的应用所需的权限。 |
| 权限 | 对于调用 onPremisesSyncBehavior Microsoft 图形 API 的应用, User-OnPremisesSyncBehavior.ReadWrite.All 需要授予权限范围。 有关详细信息,请参阅如何使用 Microsoft Entra 管理中心 同意此权限 。 |
| 所需的许可证 | Microsoft Entra Free 许可证。 |
| 连接同步客户端 | 最低版本为 2.5.76.0。 若要使用联系人 SOA 版本 2.5.79.0。 |
| 云同步客户端 | 最低版本为 1.1.1370.0 |
设置
需要设置 Connect Sync 客户端和 Microsoft Entra 预配代理。
连接同步客户端
下载最新版本的 Connect Sync 版本。
验证 Connect Sync 构建是否安装成功。 转到控制面板中的 程序 ,确认 Microsoft Entra Connect 同步的版本为 2.5.76.0。
云同步客户端
下载版本为 1.1.1370.0 或更高版本的 Microsoft Entra 预配代理。
按照 说明下载云同步客户端。
了解如何标识代理的当前版本。
应用程序同意权限
可以在 Microsoft Entra 管理中心中同意权限。 此高特权作需要应用程序管理员或云应用程序管理员角色。 还可以使用 PowerShell 授予同意。 有关详细信息,请参阅 代表单个用户授予同意。
自定义应用
按照以下步骤向相应的应用授予 User-OnPremisesSyncBehavior.ReadWrite.All 权限。 有关如何将新权限添加到应用注册和授予许可的详细信息,请参阅 更新Microsoft Entra ID 中的应用请求的权限。
注释
若要转移联系人的 SOA,所需的权限为 Contacts-OnPremisesSyncBehavior.ReadWrite.All。
使用 Microsoft Entra 管理中心授予应用权限
以应用程序管理员或云应用程序管理员身份登录到 Microsoft Entra 管理中心。
浏览到 企业应用>应用名称。
选择“授予>租户名称的权限授予管理员同意”。
查看需要同意的权限列表,然后选择“ 接受”。
可以看到你授予的权限列表:
向 Graph 资源管理器授予权限
打开 Graph 资源管理器 ,以 应用程序管理员 或 云应用程序管理员身份登录。
选择配置文件图标,然后选择 “同意权限”。
搜索 User-OnPremisesSyncBehavior,然后选择“ 许可 ”以获取权限。
传输测试用户的 SOA
注释
可以使用 API 终结点 https://graph.microsoft.com/v1.0/contacts 转移联系人 SOA。
按照以下步骤为测试用户传输 SOA:
在 AD 中创建用户。 还可以使用已同步到 Microsoft Entra ID 的现有用户,方法是使用 Connect Sync。
运行以下命令以启动 Connect Sync:
Start-ADSyncSyncCycle验证用户是否以同步用户的身份出现在 Microsoft Entra 管理中心。
使用Microsoft图形 API 传输用户对象的 SOA(isCloudManaged=true)。 打开 Microsoft Graph 资源管理器 ,并使用相应的用户角色(例如用户管理员)登录。
让我们检查现有的 SOA 状态。 我们尚未更新 SOA,因此 isCloudManaged 属性值应为 false。 将以下示例中的 {ID} 替换为用户的对象 ID。 有关此 API 的详细信息,请参阅 Get onPremisesSyncBehavior。 /graph/api/onpremisessyncbehavior-更新
GET https://graph.microsoft.com/beta/users/{ID}/onPremisesSyncBehavior?$select=isCloudManaged
确认同步的用户权限是只读。 由于用户在本地管理,因此对云中用户的任何写入尝试都失败。 对于启用邮件的用户,错误消息有所不同,但仍不允许更新。
注释
如果此 API 失败并出现 403,请使用“ 修改权限 ”选项卡授予对所需 User.ReadWrite.All 权限的许可。
PATCH https://graph.microsoft.com/v1.0/users/{ID}/ { "DisplayName": "User Name Updated" }
在 Microsoft Entra 管理中心中搜索该用户。 验证所有用户字段是否灰显,并且源为 Windows Server AD DS。
现在可以将用户的 SOA 更新为云管理。 在 Microsoft Graph 资源管理器中为要传输到云的用户对象运行以下作。 有关此 API 的详细信息,请参阅 Update onPremisesSyncBehavior。
PATCH https://graph.microsoft.com/beta/users/{ID}/onPremisesSyncBehavior { "isCloudManaged": true }
若要验证更改,请调用 GET 以验证 isCloudManaged 是否为 true。
GET https://graph.microsoft.com/beta/users/{ID}/onPremisesSyncBehavior?$select=isCloudManaged
确认审核日志中的更改。 若要在 Azure 门户中访问审核日志,请打开 “管理Microsoft条目 ID>监视>审核日志,或搜索 审核日志。 选择“ 将颁发机构源从 AD 更改为云 ”作为活动。
检查用户是否可以在云中更新。
PATCH https://graph.microsoft.com/v1.0/users/{ID}/ { "DisplayName": "Update User Name" }
打开Microsoft Entra 管理中心,确认用户 已启用本地同步 的属性为 “是”。
连接同步客户端
运行以下命令以启动 Connect Sync:
Start-ADSyncSyncCycle若要查看传输的 SOA 的用户对象,请在 Synchronization Service Manager 中转到 连接器:
右键单击 Active Directory 域服务连接器。 按相对域名(RDN)设置“CN=<UserName>”搜索用户:
双击搜索的条目,然后选择 Lineage>元宇宙对象属性。
选择连接器,然后双击带有 “CN={字母数字字符<}” 的 >。
可以看到 blockOnPremisesSync 属性在 Microsoft Entra ID 对象上设置为 true。 此属性值表示相应 AD DS 对象中所做的任何更改不会流向 Microsoft Entra ID 对象:
让我们更新本地用户对象。 我们将用户名从 TestUserF1 更改为 TestUserF1.1:
运行以下命令以启动 Connect Sync:
Start-ADSyncSyncCycle打开事件查看器并筛选事件 ID 6956 的应用程序日志。 保留此事件 ID 以通知客户对象未同步到云,因为该对象的 SOA 位于云中。
传输 SOA 后属性的状态
下表说明了在传输对象的 SOA 后 isCloudManaged 和 onPremisesSyncEnabled 属性的状态。
| 管理员步骤 | isCloudManaged 值 | onPremisesSyncEnabled 值 | 说明 |
|---|---|---|---|
| 管理员将对象从 AD DS 同步到 Microsoft Entra ID | false |
true |
当对象最初同步到 Microsoft Entra ID 时,onPremisesSyncEnabled 属性设置为true,isCloudManaged 设置为 false。 |
| 管理员将对象的授权源(SOA)传输到云 | true |
null |
管理员将对象的 SOA 迁移到云后,isCloudManaged 属性将设置为空,true 属性值也将被设置为空。 |
| 管理员回滚 SOA作 | false |
null |
如果管理员将 SOA 转移回 AD 时,isCloudManaged 被设置为 false,而 onPremisesSyncEnabled 被设置为 null,直到同步客户端接管该对象。 |
| 管理员在 Microsoft Entra ID 中创建云本机对象 | false |
null |
如果管理员在 Microsoft Entra ID 中创建一个新的云原生对象, |
| 管理员在 Microsoft Entra ID 中创建云本机对象 | false |
null |
如果管理员在 Microsoft Entra ID 中创建一个新的云原生对象, |
回滚 SOA 更新
重要
请确保您所回滚的用户没有云相关引用。 从 SOA 传输的组中删除云用户,并在将用户回滚到 AD DS 之前从访问包中删除这些组。 同步客户端在下一个同步周期中接管对象。
可以运行此作来回滚 SOA 更新并将 SOA 还原到本地。
PATCH https://graph.microsoft.com/beta/users/{ID}/onPremisesSyncBehavior
{
"isCloudManaged": false
}
注释
isCloudManaged 的更改允许false在下次运行时连接同步接管同步范围内的 AD DS 对象。 直到下次运行 Connect Sync 时,才能在云中编辑对象。 仅在 API 调用和连接同步的下一个计划或强制运行完成后,SOA 的回滚才完成。
验证审核日志中的更改
选择“ 撤消从 AD DS 到云的颁发机构源”更改的活动:
在 Connect Sync 客户端中验证
运行以下命令以启动 Connect Sync:
Start-ADSyncSyncCycle在 同步服务器管理器 中打开对象(详细信息位于 Connect Sync Client 部分)。 可以看到Microsoft Entra ID 连接器对象的状态正在 等待导出确认 , blockOnPremisesSync = false,这意味着该对象 SOA 再次被本地接管。
清除 SOA 转移用户的本地属性
下面是用于访问本地资源的云用户对象上存在的本地 属性 列表:
- onPremisesDistinguishedName
- onPremisesDomainName
- onPremisesSamAccountName
- onPremisesSecurityIdentifier
- onPremisesUserPrincipalName
如果管理员希望在传输 SOA 后访问本地资源,则必须 使用 Microsoft Graph 手动维护这些属性,而不删除这些属性。
在管理单元中限定某个用户用于SOA操作
若要为管理单元中的授权操作确定用户范围,请执行以下步骤:
创建用作用户范围的单元。 有关创建单元的步骤,请参阅: 创建管理单元。
将用户添加到单元。 有关此信息,请参阅: 将用户、组或设备添加到管理单元。
在单元范围内转移用户的 SOA。 有关转移用户的 SOA 的指南,请参阅: 转移测试用户的 SOA。