Skip to main content

应用使用敏感权限

如果你的应用需要使用敏感权限,可以参考本文。本文介绍了什么是敏感权限、应用开发者如何使用敏感权限以及管理员使用敏感权限的体验。

一、关键概念介绍

什么是敏感权限

  • 钉钉开放平台中有一些特殊的权限,应用一旦获取了这些权限,就可以调用该权限下关联的 OpenAPI ,进行一些敏感的操作,比如钉钉通讯录写操作。
  • 目前钉钉开通平台对外开放的敏感权限点有:
权限点code权限点介绍可操作权限点的角色
1qyapi_manage_addresslist通讯录数据管理权限全组织通讯录管理员
  • 在应用运行态中,只有拥有特定角色的人,才可以操作敏感权限点。例如,只有【全组织通讯录管理员】才可以操作【通讯录数据管理权限】。角色对权限点的操作包括:授权和解除授权。

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

  • 目前钉钉开放平台只对外开放了 qyapi_manage_addresslist 这一敏感权限点,可以操作该权限点的角色为【全组织通讯录管理员】。只有全组织通讯录管理员才可以授予应用和解除应用获取的【通讯录数据管理权限】。
  • 如何查询哪些人是【全组织通讯录管理员】:进入OA后台,点击权限管理。全组织通讯录管理员必须满足两个条件:
    1. 拥有通讯录基础管理权限
    2. 管理范围必须是全组织 oa后台全组织通讯录管理员

二、应用开发者体验

2-1 应用开发态关联权限点

  • 你首先需要在开发者后台,把敏感权限点 qyapi_manage_addresslist 关联到应用上,这样应用才可以调用敏感权限下的 OpenAPI —— 设定角色成员管理范围。

配置qyapi_manage_addresslist

  • 如果你没有在开发者后台找到敏感权限点 qyapi_manage_addresslist ,请先联系钉钉开放平台的运营同学 @筱迷,说明你的业务需求;评估通过后,平台会为你的开发者组织开放敏感权限。

2-2 应用调用 OpenAPI

应用首先获取 Access Token ,然后调用 OpenAPI ,返回200。这里的开发者体验和使用普通权限点一样,就不过多赘述。

2-3 应用调用 OpenAPI,返回了403

当调用 OpenAPI 返回403时,说明应用使用者组织没有授予权限给应用或者组织解除了原来授予给应用的权限。此时开发者可以通过获取应用的访问凭证 ,触达组织管理员,让管理员再次进行授权。

三、组织管理员体验

3-1 应用开通授权

  • 普通权限在应用开通时就会由管理员授予应用。
  • 敏感权限较为特殊,组织管理员在开通应用时,并不会授予应用敏感权限。
  • 敏感权限需要管理员进入工作台主动完成手动授权。

3-2 工作台授权

3-2-1 在钉钉客户端授权

以移动端为例:

  • Step 1:点击工作台右上角的【齿轮】进入企业管理。然后点击【应用&模板】进入应用管理。找到想要管理的应用,点击【设置】,进入该应用的管理页。

工作台授权入口

  • Step 2:管理员可以看到授权管理中有待授权的红点,点击进入。你可以看到待授权的敏感权限清单,和应用开通时已经授予的基础权限清单。你可以在外层直接点击授权,也可以进入敏感权限清单,进行单个权限授权。

工作台授权敏感权限

  • Step 3-1:点击授权,即可完成授权。

管理员授权

  • Step 3-2:如果你不是全组织通讯录管理员,下方窗口会让你选择处理人,点击联系管理员,就会发单聊消息卡片给到全组织通讯录管理员。
用户向全组织通讯录管理员发送授权申请全组织通讯录管理员看到的授权消息卡片
向管理员发送授权申请授权卡片
  • Step 4:解除授权。如果你不希望应用继续获取组织的敏感权限,可以选择随时解除授权。

管理员解除授权

Note

目前只支持敏感权限的解除授权,基础权限的解除授权在规划中,敬请期待。

3-2-2 在OA后台授权

  • Step 1:组织或通讯录管理员角色登录OA后台 www.oa.dingtalk.com ,在【工作台】的【应用管理】下搜索需要授权的应用名称,找到对应需要授权的应用,点击【设置】进入应用的管理页面。

OA后台应用管理

  • Step 2:在【应用权限】下有【查看】和【更新授权】等授权管理相关的操作。

OA后台授权

3-3 在OA后台查看审计日志

你可以在组织的OA后台查看组织对敏感权限的操作,包括“同意应用获取权限”和“撤回同意应用获取的权限”。

OA后台权限审计日志

四、常见问题

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

A:三方应用开发者可以引导组织管理员到后台完成手动授权。见上文3.2。