博客 / 詳情

返回

登錄系統演進、便捷登錄設計與實現

作者 | 百度APP技術中台吧

導讀 

隨着互聯網、物聯網和移動終端等技術的迅猛發展,登錄認證面臨着新的挑戰和需求。雖然登錄認證在信息系統中是傳統且古老的組成部分,但未來的發展前景依然廣闊。不論是用户登錄、PC端、移動端還是智能設備的訪問,身份認證在保障業務操作安全、資金安全、系統間通信和與外部系統集成等多個方面起到至關重要的作用。隨着認證方式的不斷演進,從最初的cookie和session,發展到如今的多端登錄、多因子認證以及API令牌等多種認證手段。同時,用户終端設備的不斷升級也推動着認證方式和手段的不斷創新。

本文探討登錄認證技術的演進歷程,並介紹在終端設備上實現便捷登錄的設計與實現方法,以供各位同學參考。我們希望通過這篇分享,能夠幫助讀者深入瞭解和應用新型的登錄認證技術。

全文4467字,預計閲讀時間12分鐘。

01 登錄認證發展歷史

賬號系統作為一家企業的核心繫統,承載着日益增長的業務需求。以百度為例,簡化的結構如下:
image.png
其賬號中心提供支撐服務,支持百度系內100+業務,包括百度APP、網盤、地圖、貼吧等,具備全面的賬號能力,這對賬號系統提出了更高的要求和挑戰,那麼企業賬號管理是如何一步一步發展到這一階段,下面將分階段簡要介紹賬號中心的發展過程:

1.1 單體應用時期

軟件系統的建設初期,大多需求都是針對具體的領域中的業務,所以在建設過程中專注於系統業務的快速實現,對於登錄認證的實現,往往都採用簡單的賬號密碼進行登錄,並在登錄後返回服務器的用户數據,其交互流程如下:

image.png

在這種單一賬號密碼認證方式下,將用户信息存儲在Cookie中的做法確實存在安全隱患,即使引入了httponly、secure、samesite等屬性設置也難以完全解決泄露風險。因此,隨着對安全性要求的提高,逐漸引入了token機制來加強認證和授權過程。

1.2 Token驗證機制

Token機制的主要原理是在用户登錄成功後,後端服務器生成一個加密的token,並將其返回給客户端,客户端在後續的請求中將該token攜帶在請求中。這種方式可以避免暴露用户信息,同時提高了安全性:

image.png

在這個階段,已經按照功能模塊對業務進行了初步劃分,即賬號功能模塊與其他各個功能模塊解耦,實現了模塊獨立化。這樣的設計有利於系統的可維護性、擴展性和靈活性。

1.3 多業務統一賬號中心

在將單一業務拆分成多個或新業務成立時,各業務系統都需要賬號登錄認證能力。為了實現能力複用、專注於業務劃分,並確保各系統自身業務特點的建設,設計中不入侵各系統實現認證成為必要要求。為解決這一挑戰,進入多應用賬號中台階段。該階段的關鍵步驟包括:

1.設計統一認證方案: 制定一套統一的認證協議或標準,以確保各業務系統與認證中台之間的通信和數據交互規範。這樣的設計有助於確保認證系統的穩定性和兼容性,同時簡化了不同業務系統之間的集成和溝通。

2.搭建認證中心: 建立獨立的認證中心繫統,負責統一管理用户身份、處理登錄請求、頒發令牌等任務。認證中心的建立能集中處理用户身份的統一管理和認證流程,實現高效管理,為各業務系統提供穩定可靠的認證服務。

3.業務系統集成認證中心: 業務系統在需要認證的場景調用認證中心提供的接口進行認證,避免自行實現認證邏輯,減少耦合。通過與認證中心進行集成,業務系統可以快速、簡便地獲取認證服務,大大提高了系統的可維護性和靈活性。

4.統一管理用户身份和權限: 認證中心統一管理用户身份信息和權限,確保各系統之間的用户身份一致。權限變更只需在用户中心進行,無需逐個系統修改。這種集中式的用户身份和權限管理方式有助於降低系統維護成本,並簡化管理流程,同時提高了系統的安全性和一致性。

image.png

通過引入中台,我們可以實現認證能力的複用,降低各業務系統間的耦合度,更專注於業務邏輯的實現,提升系統的安全性和可維護性。

1.4 外部合作OAuth授權

隨着公司集團業務的不斷拓展,與外部第三方展開合作已成為必然趨勢。在授權第三方使用百度的商業服務時,可能涉及到通過百度賬號授權登錄外部應用程序,而這一過程通常採用OAuth授權流程。OAuth是一個關於授權的開放網絡標準,在全球範圍內得到廣泛應用,目前最新的版本是2.0版。

在OAuth的架構中,設立了一個授權層,用於在“客户端”與“服務提供商”之間進行連接。這意味着,客户端無法直接登錄服務提供商,而必須通過授權層進行連接。這樣一來,用户與客户端之間就得到了有效的區分。客户端登錄授權層所使用的令牌(access token)與用户的密碼不同。在用户登錄時,可以指定授權層令牌的權限範圍和有效期,以確保安全性和控制權限。

OAuth 2.0定義了四種授權方式:

1.授權碼模式(authorization code)

2. 簡化模式(implicit)

3. 密碼模式(resource owner password credentials)

4. 客户端模式(client credentials)

其中,授權碼模式(authorization code)是功能最完整、流程最嚴密的授權模式。它通過客户端的後台服務器與“服務提供商”的認證服務器進行互動,這是它的特點。

在百度OAuth體系中,通常遵循授權碼模式。以下是一次移動端流程的簡要描述(Web流程內重定向流程有些許差異):

image.png

1.5 統一登錄分散認證階段

面對不同產品線安全級別存在差異,以及使用相同登錄憑證可能導致整個百度集團產品線受到影響的問題,這確實是一個嚴峻的挑戰。儘管各個應用的安全等級不同,但實施時卻是並行的,這意味着一旦某個應用存在安全問題,可能牽扯到整個集團的安全。

在這種情況下,為了有效控制安全風險,可以考慮在統一認證憑證token的基礎上,根據不同業務新增sub_token進行區分產品認證。這種做法有以下優勢:

安全隔離: 通過為不同產品線新增sub_token,可以實現對不同產品線的安全隔離。即使某個產品線的token泄露,攻擊者也只能獲取到與該產品線相關的sub_token,而無法影響其他產品線的安全。

細粒度控制: 每個sub_token可以針對具體的產品線或業務場景進行配置,包括權限範圍、有效期等。這樣可以實現對不同業務的細粒度控制,提高了安全性。

快速應對風險: 當某個產品線出現安全問題時,可以快速作出響應,封禁受影響的 sub_token,從而降低了整體風險。

降低攻擊影響: 即使某個sub_token被攻擊者獲取,由於其僅適用於特定的產品線或業務場景,攻擊者對其他產品線的影響將大大降低。

通過引入sub_token,可以在確保統一認證憑證的基礎上,進一步加強對不同產品線的安全管理和控制,有效降低了整個集團面臨的安全風險。

image.png

02 便捷登錄方案

隨着技術的不斷髮展,軟件功能的優化已成為行業的主要趨勢。在保障安全的前提下,簡化用户登錄流程成為優化方向的首要任務。傳統的賬號密碼登錄方式需要用户手動輸入用户名和密碼,這一過程耗時且繁瑣。即便是手機號短信驗證碼登錄,用户仍需點擊獲取短信,查看驗證碼後再切迴應用輸入,涉及多個步驟。以下將介紹三種僅需一步操作即可完成的登錄方式,以期為用户提供更便捷的體驗。

2.1 運營商手機號一鍵登錄

用户可以使用自己手機號碼作為登錄憑證,實現一鍵登錄,這種登錄方式通常與用户的手機號碼關聯,無需記憶繁瑣的用户名和密碼,提高了用户體驗和登錄效率,實現通常依賴於運營商的身份認證系統,通過向運營商發送請求等方式,驗證用户sim卡。一旦驗證通過,系統即可信任用户的手機號卡號,無需再次輸入密碼或其他信息。完整的一鍵登錄設計一般為以下流程:

image.png

這種登錄方式的優點包括方便快捷、安全可靠,減少了用户忘記密碼或被盜號的風險。同時也降低了應用或網站的開發和維護成本,提高了用户的使用黏性和留存率。但需要注意的是,運營商手機號一鍵登錄需要企業的系統支持用户綁定手機號,同時企業應注意用户相關隱私政策和條款,並向用户聲明。

2.2 可信設備歷史登錄

歷史賬號一鍵登錄是指用户無需重複輸入賬號和密碼,而是通過一鍵點擊即可完成登錄操作。這種登錄方式利用了用户過去登錄過的賬號信息,通過存儲和驗證機制,實現了用户登錄過程的簡化和加速。

用户無需反覆輸入賬號和密碼,只需點擊一次即可完成登錄,大大提升了登錄過程的便捷性和速度。通過減少用户的操作步驟,簡化了登錄流程,從而提升用户的使用體驗和滿意度。雖然簡化了登錄過程,歷史賬號可以一鍵登錄,但仍然需要經過安全身份驗證機制,以確保用户賬號的安全,例如遇到安全風險進行面部識別、雙因素認證等技術手段。

2.3 人臉驗證登錄

顧名思義,用户使用智能設備進行人臉驗證,在與底圖比對驗證通過後,派發賬號的登錄信息,這個過程有兩個核心環節:①知道要派發哪個賬號  ②用户的人臉底圖收集。

對於環節①,一般設計都是用户主動輸入自己的賬號,自動觸發檢測當前賬號是否支持人臉登錄,或者使用歷史登錄過的賬號自動觸發檢測,即:

image.png

而服務端檢測用户賬號是否支持人臉登錄,一般需要用户主動開啓刷臉登錄方式,而在開啓刷臉登錄時,需要用户進行人臉驗證錄入底圖,這樣在下次使用人臉驗證時,變可以使用錄入的底圖進行比對。當然,對於安全性要求較高的業務,可以引導用户進行實名,之後的刷臉登錄訪問公安網進行三要素比對(收費),而百度內部同時支持這兩種流程,下面是一次完整流程:

image.png

總的來説,在設計登錄方式時,必須綜合考慮多個因素,包括安全性、便捷性和用户隱私保護。採取相應的措施來應對潛在的風險是至關重要的。通過平衡這些因素,可以為用户提供一個既安全又方便的登錄體驗。

03 展望

未來的企業登錄系統設計將融合先進技術與用户友好性,迎來全新的時代。隨着 AI 技術的飛速發展,登錄系統將變得更智能化。系統能夠學習用户的行為模式,智能識別異常登錄嘗試,並及時採取措施保護賬户安全。同時,個性化的用户界面和交互設計將為用户提供定製化體驗,滿足不同需求。

在合規性和隱私保護方面,隨着全球數據保護法規的不斷加強,未來的登錄系統將更注重用户數據隱私保護,並提供透明的隱私政策,使用户清晰瞭解數據使用和保護方式。

此外,公安部領導的CTID(公民身份識別)技術有望實現所有用户賬號的全面打通。當這一時代來臨,CTID技術將確保跨平台一致的登錄體驗,無論是在桌面、移動應用還是其他智能設備上,用户身份都能得到統一且安全的保障。也許不遠的未來,公民身份一鍵登錄所有應用的概念或將成為現實。

綜上所述,未來的企業登錄系統將是安全、智能、用户友好且高度集成的。它將提升企業運營效率,為用户帶來更便捷、更安全的登錄體驗。隨着技術不斷演進,未來的登錄系統將不再是簡單的安全屏障,而是企業與用户互動的重要橋樑。

——————END——————

推薦閲讀

一文帶你完整了解Go語言IO基礎庫

百度交易中台之系統對賬篇

揭秘百度數倉融合計算引擎

教不會你算我輸系列 | 手把手教你HarmonyOS應用開發

漫談數據分佈可視化分析

user avatar paddle 頭像 u_16213648 頭像
2 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.