适用于 Microsoft Graph 的 Microsoft Identity Manager 连接器
总结
适用于 Microsoft Graph 的 Microsoft Identity Manager 连接器为 Microsoft Entra ID P1 或 P2 客户启用了其他集成方案。 它在 MIM 同步元数据中显示了从 Microsoft Graph API v1 和 beta 获得的附加对象。
涵盖的方案
B2B 帐户生命周期管理
适用于 Microsoft Graph 的 Microsoft Identity Manager 连接器的初始方案是作为一个连接器,帮助外部用户自动化 AD DS 帐户生命周期管理。 在此场景中,组织使用 Microsoft Entra Connect 将员工从 AD DS 同步到 Microsoft Entra ID, 并且该组织还邀请了来宾加入其 Microsoft Entra 目录。 邀请来宾会导致外部用户对象位于该组织的 Microsoft Entra 目录中,该目录不在该组织的 AD DS 中。 然后,组织希望通过 Microsoft Entra 应用程序代理 或其他网关机制授予这些来宾访问本地 Windows 集成身份验证或基于 Kerberos 的应用程序的权限。 Microsoft Entra 应用程序代理要求每个用户都有自己的 AD DS 帐户,以便进行标识和委派。
若要了解如何配置 MIM 同步以自动为来宾创建和维护 AD DS 帐户,阅读本文中的说明后,请继续阅读本文 Microsoft Entra 企业到企业(B2B)与 MIM 2016 和 Microsoft Entra 应用程序代理协作的文章。 本文说明了连接器所需的同步规则。
其他身份管理场景
连接器不仅可以用于将用户和组同步到 Microsoft Entra ID,还可以用于其它特定标识管理方案,如在 Microsoft Entra ID 中创建、读取、更新和删除用户、组和联系人对象。 评估潜在方案时,请记住:此连接器无法在方案中运行,这将导致数据流与 Microsoft Entra Connect 部署发生重叠、实际或潜在的同步冲突。 Microsoft Entra Connect 是建议使用的方法,通过将用户和组从本地目录同步到 Microsoft Entra ID 来实现将本地目录与 Microsoft Entra ID 的集成。 Microsoft Entra Connect 具有更多同步功能,并启用密码和设备写回等方案,MIM 创建的对象无法实现这些方案。 例如,如果要将数据导入 AD DS,请确保 Microsoft Entra Connect 不将其排除在试图将这些对象匹配回 Microsoft Entra 目录的过程中。 此连接器也不能用于更改由 Microsoft Entra Connect 创建的 Microsoft Entra 对象。
准备将连接器用于 Microsoft Graph
授权连接器检索或管理 Microsoft Entra 目录中的对象
连接器需要在 Microsoft Entra ID 中创建 Web 应用/API 应用程序,这样它就可以通过 Microsoft Graph 获得对 Microsoft Entra 对象进行操作的适当权限。
应用程序注册图像
图片 1. 新应用程序注册
在 Azure 门户中,打开已创建的应用程序,并将应用程序 ID 保存为客户端 ID,以便稍后在 MA 的连接页上使用:
通过打开 证书 & 机密来生成新的客户端机密。 设置一些密钥说明并选择最长持续时间。 保存更改并检索客户端密码。 离开页面后,客户端机密值将无法再次查看。
图片 2. 新建客户端密码
通过打开“API 权限”向应用程序授予适当的“Microsoft Graph”权限
图片 3。 添加新 API
选择“Microsoft Graph”应用程序权限。
撤销所有不需要的权限。
应将以下权限添加到应用程序,以允许其使用“Microsoft图形 API”,具体取决于方案:
与对象操作 所需的权限 权限类型 架构检测 Application.Read.All
应用程序 导入组 Group.Read.All
或Group.ReadWrite.All
应用程序 导入用户 User.Read.All
、User.ReadWrite.All
、Directory.Read.All
或Directory.ReadWrite.All
应用程序 有关所需权限的更多详细信息,请参阅 权限参考。
注意
Application.Read.All 权限是架构检测的必需权限,必须授予,无论连接器将处理何种对象类型。
- 为所选权限授予管理员同意。
安装连接器
- 在安装连接器之前,请确保在同步服务器上具有以下内容:
- Microsoft .NET 4.6.2 Framework 或更高版本
- Microsoft Identity Manager 2016 SP2,并且必须使用修补程序 4.4.1642.0 KB4021562 或更高版本。
除了适用于 Microsoft Identity Manager 2016 SP2 的其他连接器外,适用于 Microsoft Graph 的连接器可以从 Microsoft 下载中心下载。
重启 MIM 同步服务。
连接器配置
- 在同步服务管理器 UI 中,选择 连接器,创建。 选择 Graph(Microsoft),创建连接器并为其指定描述性名称。
- 在 MIM 同步服务 UI 中,指定应用程序 ID 并生成客户端密码。 MIM Sync 中配置的每个管理代理都应在 Microsoft Entra ID 中有自己的应用程序,以避免为同一应用程序并行运行导入。
图片 4. “连接”页
连接页(图片 4)包含使用的图形 API 版本和租户名称。 客户端 ID 和客户端密码表示以前在 Microsoft Entra ID 中创建的应用程序的应用程序 ID 和密钥值。
连接器默认为 v1.0 和 Microsoft Graph 全局服务的登录终结点和图形终结点。 如果您的租户位于国家云中,则需要更改配置,以使用国家云的
- 在“全局参数”页上进行任何必要的更改:
图片 5. “全局参数”页
全局参数页包含以下设置:
DateTime 格式 – 用于具有 Edm.DateTimeOffset 类型的任何属性的格式。 在导入期间,所有日期都通过使用该格式转换为字符串。 设置格式适用于任何属性,可以保存日期。
HTTP 超时时间(秒)- 在每次对 Graph 的 HTTP 调用中使用的超时时间(秒)。
在下一个登录时强制更改已创建用户的密码 - 此选项用于将在导出过程中创建的新用户。 如果启用选项,则 forceChangePasswordNextSignIn 属性将设置为 true,否则为 false。
配置连接器架构和操作
- 配置架构。 当与 Graph v1.0 终结点一起使用时,连接器支持以下对象类型列表:
用户
完全/增量导入
导出(添加、更新、删除)
组
完全/增量导入
导出(添加、更新、删除)
将连接器配置为使用 Graph beta 终结点时,可能会显示其他对象类型。
支持的属性类型列表:
Edm.Boolean
Edm.String
Edm.DateTimeOffset
(连接器空间中的字符串)microsoft.graph.directoryObject
(连接器空间中对任何受支持对象的引用)microsoft.graph.contact
上述列表中的任何类型也支持多值属性(集合)。
连接器对锚点使用“id
”属性,并对所有对象使用 DN。 因此,不需要重命名,因为图形 API 不允许对象更改其 id
属性。
访问令牌生存期
Graph 应用程序需要访问令牌才能访问 Graph API。 连接器将为每个导入迭代请求新的访问令牌(导入迭代取决于页面大小)。 例如:
Microsoft Entra ID 包含 10000 个对象
连接器中配置的页面大小为 5000
在这种情况下,导入期间将有两次迭代,其中每个迭代都将返回 5000 个对象以进行同步。因此,将请求两次新的访问令牌。
导出期间,将为必须添加/更新/删除的每个对象请求新的访问令牌。
查询筛选器
图形 API 终结点通过引入 $filter 参数来限制 GET 查询返回的对象量。
若要允许使用查询筛选器来提高完全导入性能周期,请在连接器属性的 架构 1 页上启用 添加对象筛选器 复选框。
之后,在 架构 2 页面上,键入用于筛选用户、组、联系人或服务主体的表达式。
在上面的屏幕截图中,筛选器 startsWith(displayName,'J') 被设置为只读取 displayName 属性值以'J'开头的用户。
确保在连接器属性中选择筛选器表达式中使用的属性。
有关 $filter 查询参数用法的详细信息,请参阅本文:使用查询参数自定义响应。
注意
增量查询终结点当前不提供筛选功能,因此筛选器的使用仅限于完全导入。 如果在启用查询筛选器的情况下尝试启动增量导入,将会遇到错误。
故障排除
启用日志
如果 Graph 中存在任何问题,则可以使用日志本地化问题。 因此,可以以与通用连接器相同的方式启用跟踪。 或者只需在 miiserver.exe.config
(system.diagnostics/sources
部分内)添加以下内容:
<source name="ConnectorsLog" switchValue="Verbose">
<listeners>
<add initializeData="ConnectorsLog"
type="System.Diagnostics.EventLogTraceListener, System, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ConnectorsLogListener" traceOutputOptions="LogicalOperationStack,
DateTime, Timestamp, Callstack" />
<remove name="Default" />
</listeners>
</source>
注意
如果启用了“在单独的进程中运行此管理代理”,则应使用 dllhost.exe.config
而不是 miiserver.exe.config
。
访问令牌过期错误
连接器可能会返回 HTTP 错误 401 未授权,消息“访问令牌已过期”。:
图片 6. “访问令牌已过期。” 错误
导致此问题的可能原因是 Azure 端配置的访问令牌生存期。 默认情况下,访问令牌将在 1 小时后过期。 若要增加到期时间,请参阅本文。
使用 Azure AD PowerShell 模块公共预览版的示例
New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1, "AccessTokenLifetime":"5:00:00"}}') -DisplayName "OrganizationDefaultPolicyScenario" -IsOrganizationDefault $true -Type "TokenLifetimePolicy"