作为身份治理解决方案,ADManager Plus可实现跨集成企业应用程序的用户生命周期管理。即使您的应用程序未在预定义列表中,只要其支持REST API、SOAP API和Graph API,即可与ADManager Plus集成。完成集成后,您便能跨应用程序自动化并协调关键身份生命周期流程。
将自定义应用程序集成到ADManager Plus主要涉及两个步骤:
ADManager Plus提供五种授权方式来授权API请求。请根据您的安全和运营需求选择合适的方法并进行配置。
您需要应用程序的API端点才能将对象及其必要详细信息导入ADManager Plus。所需API信息可在应用程序的API文档中查找,或联系您所集成应用程序的支持团队获取。ADManager Plus提供两种端点配置类型:
根据组织目标,可单独或同时配置以下选项:
请按以下各部分所述步骤操作,立即启动 ADManager Plus 的身份生命周期管理流程。

若请求无需授权,请选择"无认证"作为授权类型,然后点击"配置"。此操作将使授权详情不与API客户端共享。
若选择API 密钥作为授权类型,请分别在密钥和 值字段中输入密钥名称与值。通过“添加到”下拉菜单将密钥关联至头部或查询参数,然后点击配置。更多详情请参阅应用程序的 API 文档。
若选择基本认证作为授权类型,请填写用户名和密码后点击配置。
若选择承载者作为授权类型,请在令牌字段中输入应用程序的API密钥并点击配置。API密钥可通过应用程序API文档中所述步骤获取。
若选择OAuth 2.0作为授权类型,请指定以下信息:
示例:http://{主机名}/OAuthCode.do。主机名即安装ADManager Plus实例的机器名称。
集成新应用时,需在API提供商的OAuth配置中设置此项。
在将自定义应用程序集成到ADManager Plus时,您现在可选择通过API端点获取认证令牌进行授权。此功能支持<API密钥>和<承载者>两种授权类型。要使用此选项,
注意:此选项也会在入站和出站 webhook 的"选择宏"窗口中作为宏列出。

入站Webhook可实现数据从自定义应用程序向ADManager Plus的传输。配置时需在"端点设置"和"响应设置"部分填写必要信息。

注意:若响应类型为XML,请转至响应设置部分将响应类型设为XML。随后返回端点设置选项卡,选择包含解析XML响应所需属性路径的CSV文件。
注意:请按以下步骤配置高级设置。
在响应超时字段中以毫秒为单位指定最大等待时间。
启用“重复调用此端点”开关,配置持续运行直至从集成应用程序获取全部数据的条件。
从第一个下拉列表中选择操作类型。在相邻下拉框中填写分页参数,以便按顺序获取数据集直至完整数据集被提取。在值字段中输入分页参数的具体数值。
您还可通过"重复调用条件"选项设置等待API响应的时限。
启用响应解析器开关可配置如何处理端点响应,并通过自定义函数修改数据。默认情况下,所有关联到所选对象的权限均包含在内。
用于修改或移除接收响应中不需要字段的自定义函数。
在参数字段中使用宏指定数据应从响应头、响应正文、响应状态码或任何自定义输入中获取。
设置完成后,点击"保存"或
"测试并保存"。响应窗口将显示所有请求的元素。

注意:
配置入站Webhook后,可在ADManager Plus的计划自动化中将其作为数据源执行各类身份管理操作。操作路径:进入自动化 管理,点击+创建新自动化,在选择对象部分使用"选择更多"选项。此功能可对通过入站Webhook导入的对象列表执行单次或周期性自动化操作。
某些API配置中可能需要设置多个相互依赖的端点。例如:首个端点获取组织内所有员工ID,随后需针对响应中每个员工ID调用另一个API以获取员工详细信息。 此类场景下,请将首个API配置为基础端点(默认类型),并通过"端点配置"部分的高级选项将第二个端点设为依赖端点。
在API 端点配置下切换“高级”按钮至开启状态,当端点依赖于前一个 API 端点时填写相关信息。

遵循"入站webhook配置"章节所述全部步骤。当消息类型设置为JSON且需根据特定条件从响应数组中提取数据时,ADManager Plus支持通过JSON条件解析实现此功能。
此功能可从API的JSON响应中筛选所需数据,该响应包含目标键值的数组,随后可映射至对应的LDAP属性。映射格式可根据需求配置为单条件或多条件。
条件语法
使用以下格式定义条件:
<数组对象键路径>[?(('<条件键路径>')='<条件值>')].<待获取值路径>
<数组对象键路径>[?(('<条件键路径>')='<条件值>')&(('<条件键路径>')='<条件值>')].<待获取值路径>
| <数组对象键的路径> | JSON数组对象的路径,以键值结尾 |
| <条件路径 key > | 数组对象中用于条件的键的路径 |
| <条件值> | 条件路径中待匹配的值 |
| <待获取值的路径> | 需要获取的值的路径(位于数组对象之后) |
示例 JSON 响应:
{
"data": [
{
"id": 443,
"name": "TestUser",
"employee_id": 443,
"address": [
{
"职位": {
"城市": {
"名称": "城市名1",
"是否住宅": "false"
},
"电话": {
"号码": 999888777,
"是否住宅": "true"
}
}
},
{
"position": {
"city": {
"name": "cityname2",
"isHome": "true"
},
"phone": {
"number": 5556666444,
"isHome": "false"
}
}
}
],
"items": [
{
"category": "department",
"reference": "department_reference",
"data": [
{
"value": "teamname1",
"type": "primary"
},
{
"value": "teamname2",
"type": "secondary",
"details": [
{
"id": "oldteamid",
"type": "old"
},
{
"id": "newteamid",
"type": "new"
}
]
}
]
},
{
"category": "group",
"reference": "group_reference",
"data": [
{
"value": "groupname1",
"type": "primary"
},
{
"value": "groupname2",
"type": "secondary",
"details": [
{
"id": "oldgroupid",
"type": "old"
},
{
"id": "newgroupid",
"type": "new"
}
]
}
]
}
]
}
]
}
根据单一条件从 JSON 数组中检索值。当需要从数据集中筛选并提取仅满足单一匹配条件的特定信息时,此方法非常有用。该条件作为简单过滤器,确保仅选取数组中相关的对象。
示例:要从 示例响应中 获取cityname2 值,需将条件路径data[].address[].position.city. isHome设为true,并将目标数组路径设为data[].address[].position.city.name。
语法:data[].address[?(('position.city.isHome')='true')].position.city.name
说明:
输出:该条件匹配数组中的第二个项,因此返回值为cityname2。
通过应用多重条件从JSON数组中检索值并映射至LDAP属性。此方法适用于复杂或嵌套数据场景,需满足多重条件才能精确映射值至LDAP属性。通过逻辑与(&)或或(|)运算符组合条件,可筛选出满足所有指定条件的对象。
示例: 从 示例响应中 获取值groupname2, 需设置条件路径data[].items[].category = 'group' 且 data[].items[].data[].type = 'secondary',并将目标 数组路径设为data[].items[].data[].value。
语法:data [].items[?(('category')='group')&(('data[].type')='secondary')].data[].value
说明:
输出:该条件匹配数组中的第二个项,因此返回值为groupname2。
注:
示例:
data[].items[?(('category')='group')&(('data[].type')='secondary')&(('details[].type')='new')].details[].id
示例:
data[].items[?(('category')='contact')|(('category')='group')].reference
在 ADManager Plus 中,基于条件的解析可通过两种方式配置。 方法1(推荐)提供更高灵活性:可为同一JSON数组定义多个带不同条件的格式映射,并在LDAP属性间复用。方法2则直接在终端节点配置,每个JSON数组路径仅允许设置一个条件,且仅能从数组中提取单个值。此方法限制更严格但配置更简单。
方法1:[推荐]
注意:使用此方法时,可为每个需要映射的LDAP属性创建多个格式。
方法 2:
除以下步骤外,需遵循入站Webhook配置部分的所有步骤。当消息类型设置为XML时,ADManager Plus需要响应解析器CSV文件。该文件可帮助从端点的XML响应中过滤所需数据,随后将过滤后的属性关联至AD LDAP属性。
CSV文件应包含如下三列:
例如,如下图所示,示例CSV文件中突出显示的columnName Worker ID值,是从示例XML响应中突出显示的属性Worker_ID(值:100001)提取的。该值后续可映射至ADLDAP属性employeeID。
示例CSV文件:

示例XML响应:

点击此处下载示例CSV文件。
基于值的索引
基于值的索引是一种通过对数据值应用特定条件来高效定位和检索数据的技术。该方法允许用户创建特定的xPath表达式,从而高效查找符合定义条件的条目。
如下方图片所示,示例CSV文件中Company列的值取自Organization_Name属性(值:company1),该属性在第二张图片中被高亮显示。 由于存在多个Worker__Organization_Data条目,需添加附加条件(Organization_Subtype_ID='company')以指定正确的Worker_Organization_Data。这意味着最终值是基于与另一个特定值关联的条件选取的。


该xPath通过检查Organization_Subtype_ID是否等于Company来过滤Worker_Organization_Data下的数据,随后返回匹配条件的组织名称。
创建条件的步骤如下:
此方法可基于定义条件创建精确的xPath并生成结果。
外发Webhook可将通过ADManager Plus在AD中进行的变更推送至自定义应用程序。配置外发Webhook步骤如下:

注意:在Webhook响应窗口中,可通过编辑选项修改API调用获取的属性值数据类型或格式。
例如:集成应用使用的日期格式可能与ADManager Plus不一致。此时可在响应窗口通过编辑选项修改日期格式。

为所需操作配置外发Webhook后,可在编排模板中将其作为模块使用。配置完成的编排模板可通过事件驱动自动化、计划自动化或自动化策略执行,也可直接应用于目标用户,在管理 > 高级管理 > 编排下对其执行系列操作。
