衆所周知,在基于Teams平台開發應用,調用Graph API的時候,都會有一系列權限需要申請,當然,權限也有很多粒度和資源通路範圍。
最新的Teams也推出了team級别的權限通路(RSC),為第三方的多租戶應用提供更多的可能,實際上是Teams和GraphAPI的內建,能讓應用通路組織内某個團隊内的某些資料,這個粒度其實還是很細的。比如某團隊的owner可以允許第三方應用通路甚至修改自己的團隊資料,比如建立頻道等。當然這裡的權限也有很多,如下圖:
這裡可以看到,團隊的owner可以提升的權限還是很多的。目前可以打開Developer Preview以檢視此功能,根據官方文檔,RSC目前隻能作用于Teams用戶端内部的應用。
那麼,如何進行設定呢?
1. 登入azure portal,導航到AAD -> 企業應用 -> 使用者設定下邊,如圖。
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,如下:
注:如果隻有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的大概設定和驗證。