Teams中的SSO

Single Sign-On,也就是常說的SSO,在很多場景下會用到,不光是微軟系列應用,其他的應用可能也會有類似的邏輯。

SSO單點登錄,也就是通過用戶的一次性鑑別登錄。

當用戶在身份認證服務器上登錄一次以後,即可獲得訪問單點登錄系統中其他關聯繫統和應用軟件的權限,同時這種實現是不需要管理員對用戶的登錄狀態或其他信息進行修改的,這意味着在多個應用系統中,用戶只需一次登錄就可以訪問所有相互信任的應用系統。

這種方式有什麼好處呢?

簡而言之,這樣減少了由登錄產生的時間消耗,也輔助了用戶管理。

Teams中的SSO現在還處於Developer Preview階段,不過我們可以先了解起來,真正release的時候,我們可以用起來。

實際上,邏輯就是:

當用戶通過work或者school賬號登陸Teams以後,我們可以利用SSO來認證用戶,進而進入自己的Tab頁,

也就是說,當用戶已經在桌面上許可了app,那麼就不需要再進行重複登陸了,其實是自動登陸。

那麼Teams裏的SSO的具體流程是什麼樣的呢?先看個流程圖

在這裏插入圖片描述

  1. 這裏用的是javascript的SDK,通過調用getAuthToken方法,爲Tab應用獲取auth token。

  2. 如果這是用戶第一次訪問Tab應用,用戶會被提示授權【如果需要授權的話】或者類似於兩步驗證的流程。

  3. Teams從Azure AD接口爲當前用戶獲取Tab的token。

  4. Azure AD發送token給Teams。

  5. Teams再發送token給Tab應用,也就是當作getAuthToken方法的返回值。

  6. Tab應用裏的js可以解析token, 並且可以拿到一系列信息,比如用戶郵箱地址。

注意:這裏是拿不到graph scope裏相關的數據,比如說OneDrive/ Mail相關的數據。但是有workaround的方法,這裏不做闡述。下次有機會跟大家解釋。

以上就是大概SSO在Teams裏的流程,希望下次有時間能做個示例再跟大家分享一下。

發佈了18 篇原創文章 · 獲贊 12 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章