天天看点

【Teams】什么是RSC,即资源级别的权限?

    众所周知,在基于Teams平台开发应用,调用Graph API的时候,都会有一系列权限需要申请,当然,权限也有很多粒度和资源访问范围。

    最新的Teams也推出了team级别的权限访问(RSC),为第三方的多租户应用提供更多的可能,实际上是Teams和GraphAPI的集成,能让应用访问组织内某个团队内的某些数据,这个粒度其实还是很细的。比如某团队的owner可以允许第三方应用访问甚至修改自己的团队数据,比如创建频道等。当然这里的权限也有很多,如下图:

【Teams】什么是RSC,即资源级别的权限?

这里可以看到,团队的owner可以提升的权限还是很多的。目前可以打开Developer Preview以查看此功能,根据官方文档,RSC目前只能作用于Teams客户端内部的应用。

那么,如何进行设置呢?

1. 登录azure portal,导航到AAD -> 企业应用 -> 用户设置下边,如图。

【Teams】什么是RSC,即资源级别的权限?

2. 通过Azure AD portal注册应用。参考这里:https://docs.microsoft.com/zh-cn/graph/auth-register-app-v2

3. 确认应用权限,Azure AD portal -> Azure Active Directory -> App Registrations -> 应用的API Permissions,如下:

【Teams】什么是RSC,即资源级别的权限?

注:如果只有RSC权限,那么将其他权限删除即可,如果还有非RSC的权限需要,那按需保留即可。

4. 获取AccessToken,这部分没啥多说的,appid,secret,redirecturi。

5. 更新我们的manifest文件,列出需要team的owner提升的权限。如下(为manifest文件添加一个key,名称为webApplicationInfo):

"webApplicationInfo": {

    "id": "{应用id}",

    "resource": "{这里自己定义一个字符串就行。RSC流程不需要,但是必须填,不然报错}",

    "applicationPermissions": [

      "TeamSettings.Read.Group",

      "ChannelMessage.Read.Group",

      ...

    ]

  }

6. 直接将app打包安装到teams里即可。

如果需要验证,则右键安装的team,从team的链接中copy出groupid,登录到Graph Explorer,调用接口https://graph.microsoft.com/beta/groups/{copy出来的groupid}/permissionGrants,返回的数据中clientAppId即为我们自己的appid。

以上就是RSC的大概设置和验证。