1)什么是單點登錄(SSO)?
2)SSO常用的協議和技術?
3)SSO 安全嗎?
4)SSO應用模式有幾種?
5)SSO的優點是什么?
6)SSO的缺點是什么?
8)SSO如何提高安全性?
9)SSO如何處理跨域身份驗證?
10)SSO與傳統身份驗證方法有何區別?
11)SSO 和零信任?

什么是單點登錄(SSO)?

單點登錄(SSO,Single Sign-On)是一種用戶認證和授權的解決方案,允許用戶使用一組憑據(如用戶名和密碼)登錄多個相互關聯的應用程序和網站,而不需要在每個應用程序和網站中重新輸入憑據。

SSO 通過在用戶訪問第一個應用程序或網站時進行身份驗證,然后將用戶的身份信息存儲在一個中央位置中,以便于其他應用程序和網站進行訪問。這種方式可以簡化用戶的登錄過程,減少用戶需要記住的憑據數量,提高用戶體驗和工作效率。

SSO常用的協議和技術?

SSO 可通過多種身份驗證協議和技術來實現。

SSO 安全嗎?

是的,SSO 是一種先進且理想的身份訪問管理解決方案。部署后,單點登錄解決方案可幫助組織對企業應用程序和資源進行用戶訪問管理。SSO 解決方案使應用程序用戶更容易設置和記住強密碼。此外,IT 團隊可以使用 SSO 工具監控用戶行為,提高系統彈性,降低安全風險。

SSO應用模式有幾種?

1) 同域名下

一個企業一般情況下只有一個域名,通過二級域名區分不同的系統。比如我們有個域名叫做:a.com,同時有兩個業務系統分別為:app1.a.com和app2.a.com。我們要做單點登錄(SSO),需要一個登錄系統,叫做:sso.a.com。

### 2) 不同域下的單點登錄

不同域下的單點登錄是巧用了Cookie頂域的特性。

.explinks.com/wp-content/uploads/2024/02/image-67-624×1024.png)上圖是CAS官網上的標準流程,具體流程如下:

  1. 用戶訪問app系統,app系統是需要登錄的,但用戶現在沒有登錄。
  2. 跳轉到CAS server,即SSO登錄系統,以后圖中的CAS Server我們統一叫做SSO系統。 SSO系統也沒有登錄,彈出用戶登錄頁。
  3. 用戶填寫用戶名、密碼,SSO系統進行認證后,將登錄狀態寫入SSO的session,瀏覽器(Browser)中寫入SSO域下的Cookie。
  4. SSO系統登錄完成后會生成一個ST(Service Ticket),然后跳轉到app系統,同時將ST作為參數傳遞給app系統。
  5. app系統拿到ST后,從后臺向SSO發送請求,驗證ST是否有效。
  6. 驗證通過后,app系統將登錄狀態寫入session并設置app域下的Cookie。

至此,跨域單點登錄就完成了。以后我們再訪問app系統時,app就是登錄的。接下來,我們再看看訪問app2系統時的流程。

  1. 用戶訪問app2系統,app2系統沒有登錄,跳轉到SSO。
  2. 由于SSO已經登錄了,不需要重新登錄認證。
  3. SSO生成ST,瀏覽器跳轉到app2系統,并將ST作為參數傳遞給app2。
  4. app2拿到ST,后臺訪問SSO,驗證ST是否有效。
  5. 驗證成功后,app2將登錄狀態寫入session,并在app2域下寫入Cookie。

SSO的優點是什么?

提高用戶體驗

用戶只需記住一組憑據,就可以訪問多個應用程序和服務,無需為每個應用程序單獨登錄。這降低了用戶的認證負擔,提高了用戶體驗。

提高生產力

用戶可以更快地訪問所需的應用程序和服務,無需花費時間在多個登錄頁面上輸入憑據。這有助于提高員工的工作效率和生產力。

減少密碼疲勞

由于用戶只需記住一組憑據,因此可以減輕密碼疲勞,降低用戶因忘記密碼而導致的帳戶鎖定和密碼重置請求。

提高安全性

SSO可以與多因素認證(MFA)結合使用,提供更強大的安全保障。此外,由于用戶只需記住一組憑據,因此可以鼓勵用戶使用更強的密碼,從而提高整體安全性。

簡化管理

對于IT管理員來說,SSO可以簡化用戶帳戶和權限管理。管理員可以在一個集中的位置管理用戶的訪問權限,而無需在每個應用程序中單獨配置。

減少支持成本

SSO可以降低IT支持成本,因為用戶更少地遇到忘記密碼和帳戶鎖定等問題。這可以減輕IT支持團隊的負擔,降低支持成本。

提高合規性

通過集中管理用戶訪問權限,SSO有助于確保企業遵守相關法規和政策。此外,SSO還可以提供詳細的審計日志,以便跟蹤用戶活動和訪問歷史,有助于合規性審查。

SSO的缺點是什么?

集中式風險

由于用戶只需一組憑據就可以訪問多個應用程序和服務,因此如果這組憑據被盜或泄露,攻擊者可能會獲得對所有相關系統的訪問權限。這增加了潛在的安全風險。

實施復雜性

根據組織的需求和現有基礎設施,實施SSO可能會變得復雜。整合不同應用程序和服務的身份驗證機制可能需要大量的開發和配置工作。

兼容性問題

并非所有應用程序和服務都支持SSO,這可能導致兼容性問題。在某些情況下,可能需要額外的開發工作來實現SSO支持。

對外部服務的依賴

如果SSO解決方案依賴于外部服務(如身份提供商),那么在這些服務出現故障或中斷時,可能會影響到用戶訪問應用程序和服務的能力。

隱私和合規性問題

在某些情況下,將用戶數據集中存儲在一個SSO解決方案中可能引發隱私和合規性問題。組織需要確保其SSO實施符合相關法規和政策。

注銷管理

在SSO環境中,確保用戶在注銷時正確地從所有關聯的應用程序和服務中注銷可能是一個挑戰。如果注銷過程沒有得到妥善處理,可能會導致安全隱患。

成本

盡管SSO可以降低支持成本,但實施和維護SSO解決方案可能需要額外的投資。組織需要權衡成本和收益,以確定SSO是否適合其需求。

SSO如何提高安全性?

強制密碼策略

通過強制密碼策略,例如長度、復雜性和更改頻率,可以增加密碼的安全性,減少被猜測或破解的可能性。

多因素身份驗證

在登錄過程中使用多種身份驗證方式,例如短信驗證碼、智能卡、生物識別技術等,可以提高安全性。

會話管理

會話管理可以限制用戶的訪問權限和時間,確保用戶只能訪問他們被授權的資源,并在一段時間后自動注銷用戶的會話。

安全協議

使用安全協議,例如SSL或TLS,可以保證通信過程中數據的加密和完整性。

監控和審計

實時監控單點登錄系統的訪問日志和審計日志,及時發現異常行為,保障系統的安全性。

SSO如何處理跨域身份驗證?

跨域資源共享(CORS)

CORS是一種瀏覽器機制,允許Web應用程序在不同的域之間共享資源。通過在認證中心和應用程序之間設置CORS,可以實現跨域身份驗證。

JSON Web Token(JWT)

JWT是一種基于JSON的令牌,可以在不同的域之間安全地傳輸數據。通過使用JWT,在認證中心和應用程序之間傳遞用戶身份驗證和授權信息,實現跨域身份驗證。

前端框架

一些前端框架和庫,例如React、Angular和Vue.js,提供了對SSO的內置支持,可以輕松實現跨域身份驗證

SSO如何提高用戶體驗?

簡化登錄流程

SSO可以讓用戶在一個認證中心登錄后,無需再次輸入用戶名和密碼,即可訪問其他應用程序,減少了重復登錄的麻煩,簡化了登錄流程。

統一用戶標識

SSO可以使用統一的用戶標識,例如電子郵件地址或員工號碼等,減少了用戶需要記住多個不同的用戶名和密碼的煩惱。

提高訪問速度

由于用戶只需要登錄一次,就可以訪問多個應用程序,因此可以提高訪問速度,減少等待時間。

提高可用性

SSO可以讓用戶在不同的設備上訪問同一應用程序,例如在手機、平板電腦或桌面電腦上,提高了應用程序的可用性和靈活性。

提高安全性

由于SSO使用統一的身份驗證機制,可以減少用戶使用弱密碼或重復密碼的可能性,提高了安全性,從而提高了用戶的信任感和滿意度。

SSO與傳統身份驗證方法有何區別?

登錄次數

傳統身份驗證方法需要用戶在每個應用程序中都輸入用戶名和密碼進行登錄,而SSO只需要用戶登錄一次就可以訪問多個應用程序。

用戶體驗

傳統身份驗證方法需要用戶在不同的應用程序之間進行切換和登錄,造成了不必要的麻煩和時間浪費,而SSO可以簡化登錄流程,提高用戶體驗。

安全性

傳統身份驗證方法中,用戶需要記住多個不同的用戶名和密碼,容易造成弱密碼或重復密碼的情況,而SSO可以使用強密碼策略和多因素身份驗證等措施提高安全性。

統一管理

傳統身份驗證方法中,每個應用程序都有自己的用戶數據庫和身份驗證機制,難以統一管理,而SSO可以使用統一的認證中心進行身份驗證和用戶管理。

可擴展性

傳統身份驗證方法難以適應新的應用程序和設備,而SSO可以通過添加新的應用程序和身份驗證機制來擴展功能。

SSO 和零信任?

“零信任”采取“從不信任,始終驗證”的安全方法:任何用戶、應用或設備 – 無論是在網絡外部,還是已經通過身份驗證并位于網絡內部 – 都必須在訪問所需的下一個網絡資源之前驗證其身份。

隨著網絡變得更加分散,跨越的本地基礎架構以及私有云和公有云數量更多,零信任方法對于防止滲透網絡的威脅獲得更多訪問權限并造成最大的損害至關重要。

SSO 被廣泛視為實施零信任方法的基礎技術,尤其是作為 IAM 解決方案一部分的 SSO。 零信任的基本挑戰是創建一個安全架構,打擊滲透網絡的攻擊者,而不會阻礙獲得授權的最終用戶在網絡中自由行動并完成工作或業務。 與多因子身份驗證、訪問和權限控制、網絡微分段等技術和最佳實踐相結合后,SSO 可以幫助組織實現這種平衡。

SSO單點登錄適用的場景有哪些?

1. 企業內部多個業務系統的整合:在大型企業中,員工日常辦公需要使用多個內部系統,如郵件系統、辦公自動化系統、財務系統等。通過實施單點登錄(SSO),員工只需登錄一次,就可以訪問所有這些系統,無需記住多個用戶名和密碼。這種方式不僅提高了工作效率,還減少了因密碼管理不善帶來的安全風險。SSO通過集中管理用戶身份驗證,簡化了賬戶管理,降低了用戶忘記密碼或賬戶被濫用的風險。

2. 云平臺服務:隨著云計算的普及,許多企業將應用部署在云平臺上。云服務提供商如騰訊云、阿里云等,通過提供單點登錄(SSO)解決方案,使用戶能夠方便地訪問和管理多個云服務應用。這種集成方式簡化了用戶的身份驗證流程,同時增強了賬戶的安全性,確保用戶數據的安全

3. 社交網絡登錄:在互聯網應用中,使用社交網絡賬號登錄第三方應用已成為一種趨勢。例如,用戶可以使用微博、微信等社交賬號登錄電商平臺或新聞應用,這種單點登錄(SSO)方式為用戶提供了便捷的登錄體驗,同時也為第三方應用帶來了用戶身份的真實性和可信度。

4. Web應用與移動應用:在移動互聯網時代,用戶期望在不同設備和平臺上獲得一致的體驗。通過實現單點登錄(SSO),用戶在Web端登錄后,其身份可以無縫同步到移動應用,無需重復登錄。這不僅提升了用戶體驗,還有助于企業統一用戶數據管理,實現跨平臺的個性化服務。

5. 面向服務的架構(SOA):在面向服務的架構(SOA)中,服務與服務之間的通信需要安全認證。通過實施單點登錄(SSO),可以簡化SOA的安全問題,提高服務間的合作效率。SSO為SOA提供了一個統一的身份驗證和授權平臺,確保了服務調用的安全性和可靠性。

6. 大型網站:對于擁有多個子平臺的大型網站,如阿里巴巴集團旗下的淘寶、天貓、支付寶等,單點登錄(SSO)使用戶能夠方便快捷地在這些平臺間切換而無需重新登錄。這種SSO機制提升了用戶體驗,增強了用戶黏性,并有助于數據的整合和分析。

7. 企業自建的用戶中心:企業可以利用單點登錄(SSO)技術構建自己的用戶中心,如AD/LDAP,實現云服務的單點登錄。這種方式有助于企業統一管理用戶身份,提高安全性,同時降低管理成本和復雜性。

8. 第三方公有云用戶生態系統:在構建基于第三方公有云的用戶生態系統時,單點登錄(SSO)允許用戶使用同一個賬號登錄多個不同的服務和應用。這種方式簡化了用戶的登錄流程,提高了用戶滿意度,并有助于構建更加緊密的用戶生態系統。

9. 非標準的用戶中心:對于使用多個信息系統的企業,單點登錄(SSO)可以作為用戶中心的網關,連接各個系統的用戶中心,形成用戶中心的聯邦。這種集成方式有助于打破信息孤島,實現數據共享和業務協同。

SSO單點登錄常見問題有哪些?

  1. 單點故障風險:如果中心認證服務器出現故障,所有依賴它的應用系統可能都無法進行身份驗證,導致服務中斷。
  2. 兼容性問題:不同的應用系統可能采用不同的技術架構和協議,實現SSO時需要解決這些系統之間的兼容性問題。
  3. 安全風險集中:中心認證服務器存儲了大量用戶的身份信息,一旦被攻擊,可能導致大規模的信息泄露。
  4. 會話管理問題:在基于Cookie的SSO實現中,Cookie的安全性和跨域問題可能導致會話管理上的問題。
  5. 用戶體驗問題:如果SSO系統設計不當,可能會影響用戶體驗,例如登錄過程中的延遲或頻繁的重新認證。
  6. 技術實現復雜性:對于開發者來說,實現SSO授權流程需要處理多個步驟和交互,涉及到加密、令牌管理等復雜的技術操作,增加了開發的難度和成本。

參考資料

原文:單點登錄
單點登錄兩種應用模式介紹
單獨登錄三種實現方式
OAuth2.0實現單獨登錄

一站搜索、試用、比較全球API!
冪簡集成已收錄 4968種API!
試用API,一次比較多個渠道