跳转到主要内容
如果你的应用需要调用涉及组织核心数据的敏感接口(如通讯录写操作、多维表读写等),必须经过严格的权限授权流程。本文将系统介绍敏感权限的概念、开发者接入流程、管理员授权体验及常见问题处理,帮助你顺利完成敏感权限的管理。

概念介绍

什么是敏感权限

在钉钉开放平台中,部分权限因涉及企业核心数据或高风险操作,被定义为“敏感权限”。应用需单独申请并获得组织管理员明确授权后,方可调用相关 OpenAPI。 当前开放的主要敏感权限包括:
只有具备指定角色的用户才能对敏感权限进行授权或解除授权操作。例如,“全组织通讯录管理员”是唯一可授权 qyapi_manage_addresslist 权限的角色。
权限点code权限点介绍可操作权限点角色
qyapi_manage_addresslist通讯录数据管理权限全组织通讯录管理员
Notable.Base.Write钉钉多维表写权限 重要 多维表权限点扩容中,暂不支持新增申请,特殊需求请联系产品团队。钉钉文档(知识库)管理员
Notable.Base.Read钉钉多维表读权限 重要 多维表权限点扩容中,暂不支持新增申请,特殊需求请联系产品团队。钉钉文档(知识库)管理员

什么是全组织通讯录管理员

qyapi_manage_addresslist 是用于调用通讯录写类接口的敏感权限点,其授权操作仅限于“全组织通讯录管理员”。 该角色需同时满足两个条件:
  • 拥有通讯录基础管理权限
  • 管理范围必须是全组织
【全组织通讯录管理员】查看路径:进入OA后台,点击权限管理。 什么是全组织通讯录管理员

统一授权套件与 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后台查看组织对敏感权限的操作,包括“同意应用获取权限”和“撤回同意应用获取的权限”。 在OA后台查看审计日志

常见问题

应用调用 OpenAPI,返回了403,应该如何解决?

可能原因及解决方案如下: 确认开发者后台是否已正确申请所需接口权限。
  • 首先确认开发者后台是否申请接口权限。 应用调用 OpenAPI,返回了403,应该如何解决?
  • 检查是否已完成组织侧授权:
    • 引导授权组织管理员前往工作台完成手动授权;
    • 或接入统一授权套件 SDK,实现自动化授权流程。
调用 OpenAPI 返回 403 时,说明应用的授权组织没有授予权限给应用或者组织解除了原来授予给应用的权限。

授权组件的接入需要开发时间,如果开发者来不及接入授权组件怎么办?有没有解决403问题的什么临时方案?

答:三方应用开发者可以引导授权组织管理员到工作台完成手动授权。