Authing | 爲什麼所有軟件都應該使用單點登錄來管理用戶?

<div align=center><img src="https://cdn.authing.cn/blog/2...; width="500" /> </div>

一、什麼是單點登錄?

<div align=center><img src="https://cdn.authing.cn/blog/2...; width="300" /> </div>
單點登錄(Single Sign On),簡稱爲 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO 的定義是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。

二、使用 SSO 帶來的「業務優勢」

1)提高用戶的效率

用戶不再被多次登錄困擾,也不需要記住多個 ID 和密碼。另外,用戶忘記密碼並求助於支持人員的情況也會減少。

2)提高開發人員的效率

SSO 爲開發人員提供了一個通用的身份驗證框架。實際上,如果 SSO 機制是獨立的,那麼開發人員就完全不需要爲身份驗證操心。他們可以假設,只要對應用程序的請求附帶一個用戶名,身份驗證就已經完成了。

3)簡化管理

如果應用程序加入了單點登錄協議,管理用戶帳號的負擔就會減輕。簡化的程度取決於應用程序,因爲 SSO 只處理身份驗證。所以,應用程序可能仍然需要設置用戶的屬性(比如訪問特權)。

這些都屬於業務上的優勢,除了業務上的優勢外,還有軟件架構層面的優勢。

三、使用 SSO 帶來的「軟件架構層面的優勢」

1)向下兼容

單點登錄是一種比普通的賬號密碼登錄更加規範化的解決方案,如果有一天你的業務擴大,想要聚合所有平臺的用戶,那麼提前用上了單點登錄的你會使整個過程變得非常容易。有太多前期的用戶系統做的很不規範,系統壯大後需要投入大量人力物力來進行遷移的案例出現。造成軟件前期不使用單點登錄的主要原因是單點登錄的複雜性,如果單點登錄的複雜性和實施成本能被降低,那麼我相信很多人都願意直接使用

再類比一下,使用單點登錄對你的系統向下兼容就好像 C++ 可以兼容 C 語言一樣,你在用 C++ 時,使用面向對象編程的同時,不會耽誤你面向過程編程。相反,如果你使用了 C 語言,在理論上你當然也可以面向對象編程,只不過過程過於複雜,異常痛苦,甚至不符合 C 語言的設計思想。爲什麼要將不合適的東西強行扭成合適的呢?這就是單點登錄相較於普通登錄方式最本質的區別。

教科書爲了讓你快速上手,所以選擇 C 語言開始;PHP 爲了讓你快速上手,選擇讓你學習最簡單的單向「用戶名 - 密碼」登錄開始。但是我們都知道,軟件最好從一開始就使用面向對象編程,那麼任何的互聯網應用,從一開始就使用「單點登錄」也是同樣的道理。

<div align=center><img src="https://cdn.authing.cn/blog/2...; width="400" /> </div>

2)簡化遷移遷出流程

假設你的軟件從一開始就沒有考慮過使用單點登錄,那麼當你的業務拓展成功並且有多個平臺後,多平臺用戶的 Merge 就會變成很大的一個難點,比如如何確定註冊到 A 平臺的郵箱和 B 平臺的郵箱是同一個、用戶的密碼如何重置、如何確定 Merge 完成後的用戶信息沒有任何損失等等。

如果你從一開始就使用了單點登錄,那麼這些問題都將不復存在。將用戶從平臺中遷移出來將像導出 Excel 到 CSV 一樣簡單。

<div align=center><img src="https://cdn.authing.cn/blog/2...; /> </div>

3)強化管理和安全流程

進行身份認證的目的是爲了授權用戶可訪問哪些資源,單點登錄都有十分規範化的權限授權系統,RBAC 是業內比較認可的授權管理方案。單點登錄系統一般都自帶開發者友好和組織友好的 RBAC 方案,可以讓開發者快速實現中心化授權體系。

除此之外,用戶的歷史活動爲判定可信度提供了豐富的分析素材。系統可以通過挖掘用戶的歷史操作構建其行爲基線,然後通過比較當前操作和其行爲基線來計算用戶的信任評分。

通過比較當前用戶的地理位置座標可以發現是否有異常,比如一個用戶的設備在一個較小的時間窗口內突然出現在某個用戶不可能達到的座標;再比如用戶有多個設備,但其報告了不一樣的地理位置。但是必須注意,地理位置是存在偏差的,所以地理位置的權重不應該過高,而是作爲一種參考。

成熟的單點登錄系統都會提供這些功能,除此之外還有可定製的加密算法、用戶密碼泄漏檢測等多維化功能,保障整個系統的管理安全和流程安全。

<div align=center><img src="https://cdn.authing.cn/blog/2...; /> </div>

四、如何低成本的實現單點登錄 ?

前面我們講了爲什麼所有軟件都應該使用單點登錄來管理用戶,那麼如何最低成本的實現單點登錄呢?這裏就要介紹下 Authing 了。

Authing 是一款身份認證雲,提供了開發者優先和極易拓展的開發平臺,簡化了身份管理的流程,使用 Authing 可以用極短的時間和極低的成本實現單點登錄(用戶量數十萬的應用從遷移進 Authing 到上線到生產環境只需要兩天),如果你對此感興趣,可以查看這篇文章:用 Authing 10 分鐘實現單點登錄

最後,希望這篇文章能對你的下一次軟件開發有幫助~

相關閱讀

歡迎關注 Authing 技術專欄

Authing 社區

什麼是 Authing?

Authing 提供專業的身份認證和授權服務。
我們爲開發者和企業提供用以保證應用程序安全所需的認證模塊,這讓開發人員無需成爲安全專家。
你可以將任意平臺的應用接入到 Authing(無論是新開發的應用還是老應用都可以),同時你還可以自定義應用程序的登錄方式(如:郵箱/密碼、短信/驗證碼、掃碼登錄等)。
你可以根據你使用的技術,來選擇我們的 SDK 或調用相關 API 來接入你的應用。當用戶發起授權請求時,Authing 會幫助你認證他們的身份和返回必要的用戶信息到你的應用中。

<div align=center>Authing 在應用交互中的位置</div>

歡迎關注 Authing 技術專欄

Authing 社區

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章