查询目录数据源配置接口
读取组织已配置的通讯录数据源,查看来源类型、连接状态、同步计划和配置修订号。响应提供凭据是否已配置的标记,不返回连接密钥。
所需权限
| 所需权限 | 资源 | Scope | 资源服务 |
|---|---|---|---|
| 用户同步配置读取(读取) | directory-sync-config | admin.v1.directory-sync-config.read | qwenwork-biz-service |
GET /api/openapi/v1/directory-sync/sources
认证与请求头
使用应用 API Key 调用。当前接口校验上方独立 Scope;读取、管理与执行权限互不包含。
| 名称 | 位置 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|---|
| Authorization | header | string | 是 | 应用 API Key,使用 Bearer 方式传递。 | Bearer qwk_\\* |
| X-Request-Id | header | string | 否 | 可选的调用追踪标识;未传入时由服务端生成。 | req-20260831-001 |
请求参数
此接口没有额外请求参数。
请求示例
将 <BASE_URL> 替换为企业部署的千问办公 API 服务地址,并填写实际参数。示例中的占位值不能直接用于请求。
curl --request GET --url '<BASE_URL>/api/openapi/v1/directory-sync/sources' --header 'Authorization: Bearer <API_KEY>'响应
200 请求成功,返回当前或更新后的数据。
| 名称 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
| sources | array<OpenapifacadeDirectorySource> | 是 | 当前组织的数据源配置列表。 | [{"config_revision":0,"connection_status":"<string>","created_at":"2026-08-27T10:00:00Z","created_by_email":"<string>","created_by_name":"<string>","credential_configured":false,"default_seat":false,"deletion_alert_email":"<string>","deletion_alert_enabled":false,"deletion_alert_threshold":0,"deletion_policy":"<string>","external_id_field":"<string>","external_id_field_locked":false,"id":"<uuid>","last_activity_at":"2026-08-27T10:00:00Z","last_connected_at":"2026-08-27T10:00:00Z","last_connection_error_code":"<string>","modified_at":"2026-08-27T10:00:00Z","name":"<string>","next_run_at":"2026-08-27T10:00:00Z","schedule":"<string>","schedule_anchor_at":"2026-08-27T10:00:00Z","settings":{"connection":{"client_name":"<string>","tls_enabled":false,"url":"<string>"},"department_mapping":{"external_id":"<string>","name":"<string>","order":"<string>","parent_external_id":"<string>","status":"<string>"},"mapping":{"account":"<string>","department_external_id":"<string>","email":"<string>","employee_no":"<string>","external_id":"<string>","name":"<string>","phone":"<string>","status":"<string>"},"scope":{"base_dn":"<string>","mode":"all","org_unit_external_ids":["<string>"],"org_unit_filter":"<string>","user_filter":"<string>"}},"source_type":"<string>","status":"<string>","updated_by_email":"<string>","updated_by_name":"<string>"}] |
| sources[].config_revision | integer · int64 | 是 | 数据源配置修订号,用于检查并发修改。 | 0 |
| sources[].connection_status | string | 是 | 数据源连接的当前状态。 | "<string>" |
| sources[].created_at | string · date-time | 是 | 此记录的创建时间。 | "2026-08-27T10:00:00Z" |
| sources[].created_by_email | string | 否 | 创建者的邮箱。 | "<string>" |
| sources[].created_by_name | string | 否 | 创建者的姓名。 | "<string>" |
| sources[].credential_configured | boolean | 是 | 是否已为此数据源配置连接凭据。 | false |
| sources[].default_seat | boolean | 是 | 是否默认向新同步的用户分配席位。 | false |
| sources[].deletion_alert_email | string | 否 | 接收删除告警的邮箱地址。 | "<string>" |
| sources[].deletion_alert_enabled | boolean | 是 | 是否对同步中的删除情况启用告警。 | false |
| sources[].deletion_alert_threshold | integer · int64 | 是 | 触发删除告警的人数阈值。 | 0 |
| sources[].deletion_policy | string | 是 | 来源用户被删除或停用时的处理策略。 | "<string>" |
| sources[].external_id_field | string | 是 | 当前选作外部用户唯一标识的来源字段。 | "<string>" |
| sources[].external_id_field_locked | boolean | 是 | 外部用户标识字段是否已锁定。 | false |
| sources[].id | string · uuid | 是 | 此记录的唯一标识,查询、更新或删除对应记录时使用。 | "<uuid>" |
| sources[].last_activity_at | string · date-time | 否 | 此数据源最近一次活动的时间。 | "2026-08-27T10:00:00Z" |
| sources[].last_connected_at | string · date-time | 否 | 最近一次成功连接来源系统的时间。 | "2026-08-27T10:00:00Z" |
| sources[].last_connection_error_code | string | 否 | 最近一次连接失败的错误码。 | "<string>" |
| sources[].modified_at | string · date-time | 是 | 此记录最后一次修改的时间。 | "2026-08-27T10:00:00Z" |
| sources[].name | string | 是 | 通讯录数据源的名称。 | "<string>" |
| sources[].next_run_at | string · date-time | 否 | 下一次计划执行同步的时间。 | "2026-08-27T10:00:00Z" |
| sources[].schedule | string | 是 | 同步计划:manual 为手动,daily 为每天,every_6_hours 为每 6 小时。 | "<string>" |
| sources[].schedule_anchor_at | string · date-time | 否 | 计算定时同步计划时使用的起始时间。 | "2026-08-27T10:00:00Z" |
| sources[].settings | OpenapifacadeDirectorySourceSettings | 是 | 数据源的连接、字段映射和同步范围配置。 | {"connection":{"client_name":"<string>","tls_enabled":false,"url":"<string>"},"department_mapping":{"external_id":"<string>","name":"<string>","order":"<string>","parent_external_id":"<string>","status":"<string>"},"mapping":{"account":"<string>","department_external_id":"<string>","email":"<string>","employee_no":"<string>","external_id":"<string>","name":"<string>","phone":"<string>","status":"<string>"},"scope":{"base_dn":"<string>","mode":"all","org_unit_external_ids":["<string>"],"org_unit_filter":"<string>","user_filter":"<string>"}} |
| sources[].settings.connection | OpenapifacadeDirectorySourceConnection | 是 | 数据源的服务连接设置。 | {"client_name":"<string>","tls_enabled":false,"url":"<string>"} |
| sources[].settings.connection.client_name | string | 否 | SCIM 调用方的名称。 最多字符数:255。 | "<string>" |
| sources[].settings.connection.tls_enabled | boolean | 否 | 是否为目录连接启用 TLS 加密。 | false |
| sources[].settings.connection.url | string | 否 | LDAP 等来源服务的连接地址。 最多字符数:2048。 | "<string>" |
| sources[].settings.department_mapping | OpenapifacadeDirectorySourceDepartmentMapping | 是 | 来源部门属性到千问办公部门字段的映射。 | {"external_id":"<string>","name":"<string>","order":"<string>","parent_external_id":"<string>","status":"<string>"} |
| sources[].settings.department_mapping.external_id | string | 是 | 来源数据中用于映射外部唯一标识的属性名称;填写字段名,不是某个成员或部门的实际值。 最多字符数:128。 | "<string>" |
| sources[].settings.department_mapping.name | string | 是 | 来源数据中用于映射名称的属性名称;填写字段名,不是某个成员或部门的实际值。 最多字符数:128。 | "<string>" |
| sources[].settings.department_mapping.order | string | 否 | 来源数据中用于映射排序值的属性名称;填写字段名,不是某个成员或部门的实际值。 最多字符数:128。 | "<string>" |
| sources[].settings.department_mapping.parent_external_id | string | 否 | 来源数据中用于映射上级部门外部标识的属性名称;填写字段名,不是某个成员或部门的实际值。 最多字符数:128。 | "<string>" |
| sources[].settings.department_mapping.status | string | 否 | 来源数据中用于映射状态的属性名称;填写字段名,不是某个成员或部门的实际值。 最多字符数:128。 | "<string>" |
| sources[].settings.mapping | OpenapifacadeDirectorySourceFieldMapping | 是 | 成员属性到千问办公用户字段的映射。 | {"account":"<string>","department_external_id":"<string>","email":"<string>","employee_no":"<string>","external_id":"<string>","name":"<string>","phone":"<string>","status":"<string>"} |
| sources[].settings.mapping.account | string | 否 | 来源数据中用于映射账号的属性名称;填写字段名,不是某个成员或部门的实际值。 最多字符数:128。 | "<string>" |
| sources[].settings.mapping.department_external_id | string | 否 | 来源数据中用于映射所属部门外部标识的属性名称;填写字段名,不是某个成员或部门的实际值。 最多字符数:128。 | "<string>" |
| sources[].settings.mapping.email | string | 否 | 来源数据中用于映射邮箱的属性名称;填写字段名,不是某个成员或部门的实际值。 最多字符数:128。 | "<string>" |
| sources[].settings.mapping.employee_no | string | 否 | 来源数据中用于映射工号的属性名称;填写字段名,不是某个成员或部门的实际值。 最多字符数:128。 | "<string>" |
| sources[].settings.mapping.external_id | string | 是 | 来源数据中用于映射外部唯一标识的属性名称;填写字段名,不是某个成员或部门的实际值。 最多字符数:128。 | "<string>" |
| sources[].settings.mapping.name | string | 是 | 来源数据中用于映射名称的属性名称;填写字段名,不是某个成员或部门的实际值。 最多字符数:128。 | "<string>" |
| sources[].settings.mapping.phone | string | 否 | 来源数据中用于映射手机号的属性名称;填写字段名,不是某个成员或部门的实际值。 最多字符数:128。 | "<string>" |
| sources[].settings.mapping.status | string | 否 | 来源数据中用于映射状态的属性名称;填写字段名,不是某个成员或部门的实际值。 最多字符数:128。 | "<string>" |
| sources[].settings.scope | OpenapifacadeDirectorySourceScope | 是 | 需要从来源目录读取的组织或搜索范围。 | {"base_dn":"<string>","mode":"all","org_unit_external_ids":["<string>"],"org_unit_filter":"<string>","user_filter":"<string>"} |
| sources[].settings.scope.base_dn | string | 否 | LDAP 搜索的根 DN,用于限定读取范围。 最多字符数:2048。 | "<string>" |
| sources[].settings.scope.mode | string | 是 | 同步范围:all 为全部,departments 为指定部门,base_dn 为 LDAP 搜索根,administrative_units 为管理单元。 | "all" |
| sources[].settings.scope.org_unit_external_ids | array | null | 否 | 需要同步的来源部门或管理单元标识列表。 最多项数:200。 | ["<string>"] |
| sources[].settings.scope.org_unit_filter | string | 否 | 筛选来源部门的目录查询条件。 最多字符数:2048。 | "<string>" |
| sources[].settings.scope.user_filter | string | 否 | 筛选来源用户的目录查询条件。 最多字符数:2048。 | "<string>" |
| sources[].source_type | string | 是 | 通讯录来源类型,用于选择钉钉、飞书、企业微信、AD、LDAP、Entra ID 或 SCIM 的接入方式。 | "<string>" |
| sources[].status | string | 是 | 此记录当前所处的状态。 | "<string>" |
| sources[].updated_by_email | string | 否 | 最后修改者的邮箱。 | "<string>" |
| sources[].updated_by_name | string | 否 | 最后修改者的姓名。 | "<string>" |
{
"sources": [
{
"config_revision": 0,
"connection_status": "<string>",
"created_at": "2026-08-27T10:00:00Z",
"created_by_email": "<string>",
"created_by_name": "<string>",
"credential_configured": false,
"default_seat": false,
"deletion_alert_email": "<string>",
"deletion_alert_enabled": false,
"deletion_alert_threshold": 0,
"deletion_policy": "<string>",
"external_id_field": "<string>",
"external_id_field_locked": false,
"id": "<uuid>",
"last_activity_at": "2026-08-27T10:00:00Z",
"last_connected_at": "2026-08-27T10:00:00Z",
"last_connection_error_code": "<string>",
"modified_at": "2026-08-27T10:00:00Z",
"name": "<string>",
"next_run_at": "2026-08-27T10:00:00Z",
"schedule": "<string>",
"schedule_anchor_at": "2026-08-27T10:00:00Z",
"settings": {
"connection": {
"client_name": "<string>",
"tls_enabled": false,
"url": "<string>"
},
"department_mapping": {
"external_id": "<string>",
"name": "<string>",
"order": "<string>",
"parent_external_id": "<string>",
"status": "<string>"
},
"mapping": {
"account": "<string>",
"department_external_id": "<string>",
"email": "<string>",
"employee_no": "<string>",
"external_id": "<string>",
"name": "<string>",
"phone": "<string>",
"status": "<string>"
},
"scope": {
"base_dn": "<string>",
"mode": "all",
"org_unit_external_ids": [
null
],
"org_unit_filter": "<string>",
"user_filter": "<string>"
}
},
"source_type": "<string>",
"status": "<string>",
"updated_by_email": "<string>",
"updated_by_name": "<string>"
}
]
}default 请求失败,返回错误码和错误详情。
| 名称 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
| code | string | 否 | 用于程序判断错误原因的稳定业务错误码。 | "<string>" |
| detail | string | 是 | 便于阅读的错误说明。 | "<string>" |
| details | OpenapiErrorDetails | 否 | 字段校验失败时的详细信息。 | {"field":"<string>","reason":"<string>","suggestion":"<string>"} |
| details.field | string | 否 | 未通过校验的请求字段。 | "<string>" |
| details.reason | string | 否 | 稳定的校验失败原因,用于判断字段为何不合法。 | "<string>" |
| details.suggestion | string | 否 | 建议采用的规范化字段值。 | "<string>" |
| error | string | 是 | 稳定的 HTTP 错误类型。 | "<string>" |
{
"code": "<string>",
"detail": "<string>",
"details": {
"field": "<string>",
"reason": "<string>",
"suggestion": "<string>"
},
"error": "<string>"
}