基础说明
本文档用于开发者对接 IDaaS 应用同步的能力,并详细列明了具体事件参数。
若您希望了解对接原理和调用流程,请参考 账户同步接入概述。
我们可以将所有 IDaaS 中通讯录事件分为三大类。
一、测试事件
管理员在完成应用同步配置后,可通过【测试连接】按钮,检查配置是否成功。
使用该功能,应用能够接收特殊的测试事件。
二、增量事件
增量事件指由 IDaaS 中发生的变化自动触发的操作。
通常用于 IDaaS 和应用之间数的持续、增量的同步。
三、全量事件
全量事件指管理员从 IDaaS 页面明确手动触发的同步操作。
通常用于将 IDaaS 中数据一次性导入至应用中。
事件清单
事件模块 | 事件类型 | 类型代码 |
测试事件 | 测试连接 | urn:alibaba:idaas:app:event:common:test |
通讯录 增量事件 | 账户创建 | urn:alibaba:idaas:app:event:ud:user:create |
账户删除 | urn:alibaba:idaas:app:event:ud:user:delete | |
账户基础信息更新 | urn:alibaba:idaas:app:event:ud:user:update_info | |
账户密码更新 | urn:alibaba:idaas:app:event:ud:user:update_password | |
账户禁用 | urn:alibaba:idaas:app:event:ud:user:disable | |
账户启用 | urn:alibaba:idaas:app:event:ud:user:enable | |
账户锁定 | urn:alibaba:idaas:app:event:ud:user:lock | |
账户解锁 | urn:alibaba:idaas:app:event:ud:user:unlock | |
账户移动 | urn:alibaba:idaas:app:event:ud:user:update_primary_ou | |
组织创建 | urn:alibaba:idaas:app:event:ud:organizational_unit:create | |
组织删除 | urn:alibaba:idaas:app:event:ud:organizational_unit:delete | |
组织更新 | urn:alibaba:idaas:app:event:ud:organizational_unit:update | |
组织移动 | urn:alibaba:idaas:app:event:ud:organizational_unit:update_parent_organizational_unit | |
组创建 | urn:alibaba:idaas:app:event:ud:group:create | |
组基础信息更新 | urn:alibaba:idaas:app:event:ud:group:update | |
组删除 | urn:alibaba:idaas:app:event:ud:group:delete | |
组添加成员 | urn:alibaba:idaas:app:event:ud:group:add_user | |
组移除成员 | urn:alibaba:idaas:app:event:ud:group:remove_user | |
通讯录 全量事件 | 全量推送组织 | urn:alibaba:idaas:app:event:ud:organizational_unit:push |
全量推送账户 | urn:alibaba:idaas:app:event:ud:user:push | |
全量推送组 | urn:alibaba:idaas:app:event:ud:group:push |
数据安全性
所有的账户/组织事件,IDaaS 均会将完整的账户/组织信息作为参数,传递给事件监听方。
若数据中有敏感信息,推荐通过 HTTPs 加密通道或勾选【业务数据加密】,对传输过程进行保护。
测试连接
测试配置信息的连通性,验证验签和加密能力。
一键测试时是单独的事件订阅类型:urn:alibaba:idaas:app:event:common:test
该事件仅支持在控制台中通过一键测试使用,不支持接口调用。
请求参数验签后 payload
示例:
{
"iss": "urn:alibaba:idaas:app:event",
"sub": "idaas_rhhoqmlnyu3cv7ow657gyvurky",
"aud": "app_mjavzivahje6zxkbc4i2bierdu",
"exp": 1648711369,
"iat": 1648709570,
"jti": "bNRrCYrqXjqe8B1xweqlZw",
"dataEncrypted": false,
"cipherData": "",
"plainData": {
"instanceId": "idaas_rhhoqmlnyu3cv7ow657gyvurky",
"aliUid": 151971404963****,
"eventVersion": "V1.0",
"eventData": [
{
"eventId":"evnt_aaaac766x2somw2ptotoyk6ag6bmfkt5xpqprpq",
"eventType":"urn:alibaba:idaas:app:event:common:test",
"eventTime":"1648709509849",
"bizId":"evnt_aaaac766x2somw2ptotoyk6ag6bmfkt5xpqprpq",
"bizData":"{\"bizData\":\"req_xxxxxxxxxxsdfsdfsfd\"}"
}
]
}
}
应用成功接收后,应用侧必须在返回请求,并确保字段 successEvents
中 eventId
与请求中保持一致。
否则测试请求将失败。
{
"successEvents": [
{
"eventId": "evnt_aaaac766x2somw2ptotoyk6ag6bmfkt5xpqprpq",
"eventCode": "SUCCESS",
"eventMessage": "SUCCESS"
}
],
"skippedEvents": [
{
"eventId": "",
"eventCode": "",
"eventMessage": ""
}
],
"failedEvents": [
{
"eventId": "",
"eventCode": "",
"eventMessage": ""
}
],
"retriedEvents": [
{
"eventId": "",
"eventCode": "",
"eventMessage": ""
}
]
}
账户创建
通过该事件订阅员工入职。
事件类型:urn:alibaba:idaas:app:event:ud:user:create
解析后的 bizData
示例:
{
"password": "ssGp96",
"userId": "user_4alcbywzc7jyl23lu2srljsw7i",
"username": "zhangsan",
"displayName": "张三",
"passwordSet": true,
"phoneRegion": "",
"phoneNumber": "155****5620",
"phoneVerified": false,
"email":"zh***@163.com",
"emailVerified": false,
"userExternalId": "user_4alcbywzc7jyl23lu2srljsw7i",
"userSourceType": "build_in",
"userSourceId": "idaas_rhhoqmlnyu3cv7ow657gyvurky",
"status": "enabled",
"accountExpireTime": "-1",
"registerTime": "1648531553621",
"lockExpireTime": "-1",
"createTime": "1648531553621",
"updateTime": "1648531553621",
"description": "",
"customFields": [
{
"fieldName": "test_custom_field",
"fieldValue": "test_value"
}
],
"primaryOrganizationalUnitId": "ou_bvluxnp2ef36uupdwob6km34a4",
"organizationalUnits": [
{
"organizationalUnitId": "ou_bvluxnp2ef36uupdwob6km34a4",
"organizationalUnitName": "研发部",
"primary": true
}
]
}
参数说明:
参数 | 字段类型 | 说明 |
userId | String | 用户唯一id |
username | String | 用户名 |
displayName | String | 显示名称,一般为用户姓名 |
passwordSet | boolean | 是否设置密码 |
phoneRegion | String | 手机号区号 |
phoneNumber | String | 手机号 |
phoneVerified | boolean | 手机号是否验证过,暂时不进行验证。 |
String | 邮箱 | |
emailVerified | boolean | 邮箱是否验证过,暂时不进行验证。 |
userExternalId | String | 外部id。若是自建账户则和 userId 一致;若是外部同步的账户,则为来源的用户id。如来源是钉钉,则为钉钉的userId。 |
userSourceType | String | 来源类型,若为自建账户,则为 "build_id"。 |
userSourceId | String | 来源类型 id |
password | String | 密码。若同步应用开启同步密码,且用户设置密码,会传该值 |
status | String | 状态:enabled-启用,disabled-禁用 |
accountExpireTime | Long | 用户过期时间 |
registerTime | Long | 注册时间 |
lockExpireTime | Long | 锁定到期时间。即到该时间点则解锁 |
createTime | Long | 创建时间 |
updateTime | Long | 修改时间 |
description | String | 描述 |
customFields | List | 扩展字段列表 |
-fieldName | String | 字段名称标识 |
-fieldValue | String | 字段值 |
primaryOrganizationalUnitId | String | 所属主组织机构 |
organizationalUnits | List | 所属组织机构列表 |
-organizationalUnitId | String | 所属组织机构唯一id |
-organizationalUnitName | String | 所属组织机构名称。 |
-primary | boolean | 所属主组织机构。true-所属主组织机构,false-非主组织机构 |
账户删除
当员工离职时,通讯录发生变更,可订阅该事件。
事件类型:urn:alibaba:idaas:app:event:ud:user:delete
解析后的 bizData
示例:同账户创建。
账户基础信息更新
若员工基本信息发生变更。如手机号,邮箱,姓名等发生变更,应用需要及时收到变更的信息,可通过订阅该事件。
事件类型:urn:alibaba:idaas:app:event:ud:user:update_info
解析后的 bizData
示例:同账户创建。
账户密码更新
当账户密码发生变更时,如:管理员重置密码,用户修改密码。应用可通过订阅此事件,收到账户最新密码。
注意:在订阅该事件时,同时还需要配置同步范围,才会生效。否则不同步。请参考 账户同步 - IDaaS 同步到应用。 |
事件类型:urn:alibaba:idaas:app:event:ud:user:update_password
解析后的 bizData
示例:同账户创建。
账户启用
账户状态发生变更,从禁用状态修改为启用状态,可订阅该事件。
事件类型:urn:alibaba:idaas:app:event:ud:user:enable
解析后的bizData
示例:同账户创建。
账户禁用
账户状态发生变更,从启用状态修改为禁用状态,可订阅该事件。
事件类型:urn:alibaba:idaas:app:event:ud:user:disable
解析后的bizData
示例:同账户创建。
账户锁定
账户状态发生变更,如输错多次密码,导致账号锁定,暂不可用,可订阅该事件。
事件类型:urn:alibaba:idaas:app:event:ud:user:lock
解析后的bizData
示例:同账户创建。
账户解锁
账户状态发生变更,由锁定状态变为正常状态,可订阅该事件。
事件类型:urn:alibaba:idaas:app:event:ud:user:unlock
解析后的bizData
示例:同账户创建。
账户移动
账户所属主组织机构变更,可订阅该事件。
事件类型:urn:alibaba:idaas:app:event:ud:user:update_primary_ou
解析后的bizData
示例:同账户创建
组织创建
可通过该事件订阅创建组织机构。
事件类型:urn:alibaba:idaas:app:event:ud:organizational_unit:create
解析后的bizData
示例:
{
"organizationalUnitId": "ou_dqdvxesykpfhig2kvgrzpeoeyu",
"organizationalUnitName": "组织部",
"parentId": "ou_dqdvxesykpdfasdfaseoeyu",
"organizationalUnitExternalId": "ou_dqdvxesykpfhig2kvgrzpeoeyu",
"organizationalUnitSourceType": "build_in",
"organizationalUnitSourceId": "idaas_rhhoqmlnyu3cv7ow657gyvurky",
"createTime": "1648451475209",
"updateTime": "1648451475209",
"description":"自建"
}
参数说明:
参数 | 字段类型 | 说明 |
organizationalUnitId | String | 组织唯一id |
organizationalUnitName | String | 组织名称。 |
parentId | String | 父级组织机构id |
organizationalUnitExternalId | String | 外部id,若组织是自建的则是 organizationalUnitId。若是外部同步进来的,如来源于钉钉,则是钉钉的部门id。 |
organizationalUnitSourceType | String | 来源类型 |
organizationalUnitSourceId | String | 来源类型id |
createTime | Long | 创建时间 |
updateTime | Long | 修改时间,同lastUpdatedTime |
description | String | 描述 |
组织删除
可通过该事件订阅删除组织机构。
事件类型:urn:alibaba:idaas:app:event:ud:organizational_unit:delete
解析后的bizData
示例:同组织创建。
组织更新
可通过该事件订阅修改组织机构基础信息,如组织机构名称。
事件类型:urn:alibaba:idaas:app:event:ud:organizational_unit:update
解析后的bizData
示例:同组织创建。
组织移动
可通过该事件订阅组织机构更新父组织机构。
事件类型:urn:alibaba:idaas:app:event:ud:organizational_unit:update_parent_organizational_unit
解析后的bizData
示例:同组织创建。
组创建
可通过该事件订阅组创建。
事件类型:urn:alibaba:idaas:app:event:ud:group:create
解析后的 bizData
示例
{
"groupId": "group_yvx3ugdi3yzaehnsd3uqzb4xha",
"groupName": "test_2024",
"groupExternalId": "test_2024"
}
参数说明:
参数 | 字段类型 | 说明 |
groupId | String | 组唯一标识 |
groupName | String | 组显示名称 |
groupExternalId | String | 组外部Id |
allMembers | List | 组当前全部成员 |
memberId | String | 用户唯一标识 |
memberName | String | 用户显示名称 |
组基础信息更新
可通过该事件订阅组基础信息更新。
事件类型:urn:alibaba:idaas:app:event:ud:group:update
解析后的 bizData
示例:同组创建。
组删除
可通过该事件订阅组删除。
事件类型:urn:alibaba:idaas:app:event:ud:group:delete
解析后的 bizData
示例:同组创建。
组添加成员
可通过该事件订阅组添加成员。
事件类型:urn:alibaba:idaas:app:event:ud:group:add_user
解析后的 bizData
示例
{
"addedMembers": [
{
"memberId": "user_zakg7oeeaftqqff2bzcv7wpqs4",
"memberName": "小明"
}
],
"groupId": "group_yvx3ugdi3yzaehnsd3uqzb4xha",
"groupName": "test_2024_test",
"groupExternalId": "test_2024"
}
参数说明:
参数 | 字段类型 | 说明 |
groupId | String | 组唯一标识 |
groupName | String | 组显示名称 |
groupExternalId | String | 组外部Id |
addedMembers | List | 需要添加的成员 |
-memberId | String | 用户唯一标识 |
-memberName | String | 用户显示名称 |
组移除成员
可通过该事件订阅组移除成员。
事件类型:urn:alibaba:idaas:app:event:ud:group:remove_user
解析后的 bizData
示例
{
"removedMembers": [
{
"memberId": "user_zakg7oeeaftqqff2bzcv7wpqs4",
"memberName": "小明"
}
],
"groupId": "group_yvx3ugdi3yzaehnsd3uqzb4xha",
"groupName": "test_2024_test",
"groupExternalId": "test_2024"
}
参数说明:
参数 | 字段类型 | 说明 |
groupId | String | 组唯一标识 |
groupName | String | 组显示名称 |
groupExternalId | String | 组外部Id |
removedMembers | List | 需要移除的成员 |
-memberId | String | 用户唯一标识 |
-memberName | String | 用户显示名称 |
全量推送组织机构
事件类型:urn:alibaba:idaas:app:event:ud:organizational_unit:push
解析后的 bizData
示例:同组织创建。
全量推送账户
事件类型:urn:alibaba:idaas:app:event:ud:user:push
解析后的 bizData
示例:同账户创建。
全量推送组
可通过该事件订阅全量推送组。
事件类型:urn:alibaba:idaas:app:event:ud:group:push
解析后的 bizData
示例
{
"allMembers": [
{
"memberId": "user_zakg7oeeaftqqff2bzcv7wpqs4",
"memberName": "小明"
},
{
"memberId": "user_zakg7oeea1234ff2bzcexample",
"memberName": "张三"
}
],
"groupId": "group_yvx3ugdi3yzaehnsd3uqzb4xha",
"groupName": "test_2024",
"groupExternalId": "test_2024"
}
参数说明:
参数 | 字段类型 | 说明 |
groupId | String | 组唯一标识 |
groupName | String | 组显示名称 |
groupExternalId | String | 组外部Id |
allMembers | List | 组当前全部成员 |
-memberId | String | 用户唯一标识 |
-memberName | String | 用户显示名称 |