天天看點

【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的大概設定和驗證。