概念介绍
什么是敏感权限
在钉钉开放平台中,部分权限因涉及企业核心数据或高风险操作,被定义为“敏感权限”。应用需单独申请并获得组织管理员明确授权后,方可调用相关 OpenAPI。 当前开放的主要敏感权限包括:只有具备指定角色的用户才能对敏感权限进行授权或解除授权操作。例如,“全组织通讯录管理员”是唯一可授权
qyapi_manage_addresslist 权限的角色。| 权限点code | 权限点介绍 | 可操作权限点角色 |
|---|---|---|
| qyapi_manage_addresslist | 通讯录数据管理权限 | 全组织通讯录管理员 |
| Notable.Base.Write | 钉钉多维表写权限 重要 多维表权限点扩容中,暂不支持新增申请,特殊需求请联系产品团队。 | 钉钉文档(知识库)管理员 |
| Notable.Base.Read | 钉钉多维表读权限 重要 多维表权限点扩容中,暂不支持新增申请,特殊需求请联系产品团队。 | 钉钉文档(知识库)管理员 |
什么是全组织通讯录管理员
qyapi_manage_addresslist 是用于调用通讯录写类接口的敏感权限点,其授权操作仅限于“全组织通讯录管理员”。
该角色需同时满足两个条件:
- 拥有通讯录基础管理权限
- 管理范围必须是全组织
统一授权套件与 authCode 说明
- 统一授权套件:是钉钉提供的标准化组织级授权解决方案,适用于第三方应用向客户组织请求敏感权限的场景。通过接入该套件,开发者可引导授权组织完成授权流程,并获取临时授权码(authCode)。
- authCode:即临时授权码,由钉钉在用户确认授权后返回,具有较短生命周期。开发者需使用此 code 调用 接口换取
access_token,进而调用受保护的 OpenAPI。
开发者体验
应用开发态关联权限点
本文以敏感权限点qyapi_manage_addresslist为例。
你首先需要在开发者后台,把敏感权限点qyapi_manage_addresslist关联到应用上,这样应用才可以调用敏感权限下的 OpenAPI —— 设定角色成员管理范围。
如果你在开发者后台没有敏感权限点qyapi_manage_addresslist,你需要联系技术支持,说明你的业务需求,评估通过后,平台会为你的开发者组织开放敏感权限。
权限申请后,开发者需要再接入钉钉统一授权套件,触达授权组织管理员,让授权组织管理员进行授权。否则调用接口将会显示 403。
应用调用 OpenAPI
使用access_token 调用目标 OpenAPI(如创建部门、更新成员等),返回 HTTP 200 表示调用成功。这里的开发者体验和使用普通权限点是一致的。
组织管理员体验
应用开通授权
- 普通权限在应用开通时就会由管理员授予应用;
- 敏感权限不会随应用开通而生效,必须由具备相应角色的管理员进入工作台手动完成授权。
在OA后台查看审计日志
你可以在组织的OA后台查看组织对敏感权限的操作,包括“同意应用获取权限”和“撤回同意应用获取的权限”。
常见问题
应用调用 OpenAPI,返回了403,应该如何解决?
可能原因及解决方案如下: 确认开发者后台是否已正确申请所需接口权限。-
首先确认开发者后台是否申请接口权限。
-
检查是否已完成组织侧授权:
- 引导授权组织管理员前往工作台完成手动授权;
- 或接入统一授权套件 SDK,实现自动化授权流程。