SSO 與 SAML,人人都能理解的解釋
SSO 和 SAML 常常被模糊地使用,可以有不同的解釋。在這篇文章中,我們將澄清這些概念,解釋它們之間的關係,並提供實際的例子使它們更容易理解。
SSO 和 SAML 常常被模糊地使用,可以有不同的解釋。在這篇文章中,我們將澄清這些概念,解釋它們之間的關係,並提供實際的例子使它們更容易理解。
什麼是 SSO?
SSO(單一登入)是一種認證過程,允許用戶只需登入一次,就能訪問多個應用程序或服務,而不需要每個都再次登入。然而,這個一般性的定義可以應用於 SSO 用於的不同場景。
有多種場景可供 SSO 使用。
社交 SSO
有時候,人們將社交登入稱為社交 SSO。例如,用戶可以使用 Google 登入來在新應用中創建賬戶,直接使用存儲在 Google 中的身份和信息。在這種情況下,用戶自己管理自己的身份。
社交 SSO 使用戶更容易控制他們的信息,減少在賬戶創建和登入過程中的繁瑣步驟。社交 SSO 通常依賴於開放標準協議,如 OAuth 2.0 和 OIDC。
企業 SSO
首先,讓我們用簡單的話來解釋 身份提供者 和 服務提供者 的概念。
- 身份提供者(IdP)就像你的身份“守門員”。它是持有你的登入信息並驗證你身份的系統。可以將其視作一個已知的權威,確認“是的,這個人是他們所聲稱的那個人。” 範例包括 Google Workspace、Microsoft Entra 和 Okta 職場身份。
- 服務提供者(SP)就是你在身份被驗證後想要訪問的“應用”或“服務”。它是你試圖登入的地方,例如應用或網站。像是 Zoom、Slack 或你的公司內部工具都是服務提供者。
簡而言之,身份提供者證明你的身份,而服務提供者在身份確認後給你訪問其服務。
企業 SSO 用於更加商務導向的場景,並且被按照上面解釋的兩個術語劃分為典型的兩種情況:IdP 初始化的 SSO 和 SP 初始化的 SSO。雖然這些術語聽起來很技術性,但這些場景實際上相當直觀。
IdP 初始化的 SSO
想象一下當你作為一名員工入職時需要訪問公司的應用和資源。通常情況下,HR 會為你創建一個賬戶。然後你使用該賬戶登入一個如 Okta 或 Google Workspace 的平台。登入後,你將被引導至公司門戶,從而可以訪問所有公司的應用,如薪資系統、協作工具、Workday 等。
SP 初始化的 SSO
讓我們從另一個 角度來看。有時候,你需要從一個特定產品的登入頁面開始。例如如果你想使用 Zoom 與同事進行線上會議,你會看到一個選項為“使用 SSO 登入”。這種情況被稱為 SP 初始化的 SSO。
企業 SSO 解決了哪些問題
企業 SSO 的首個好處是它允許企業容易、靈活且安全地管理員工身份。
假設你經營一家公司,所有員工都需要訪問你購買的產品和服務。由於公司生產的資源屬於公司,因此需要一個公司所有的身份系統。如果員工使用個人身份訪問公司資源,將會造成安全和管理挑戰。
另一方面,在 SP 初始化 SSO 的情況下,員工訪問多個由公司擁有的應用和服務。在員工入職或離職時,HR 要在所有的產品和服務中創建和刪除大量賬戶,這十分繁瑣且耗時。
企業 SSO 通過一個通用的身份系統簡化了這一過程,而像 SCIM(跨域身份管理系統)和 即時供應等工具讓它更加高效。
對於 IdP 初始化的 SSO,它對想要成為“企業準備好”的產品開發者是有益的。例如,如果你是個初步聚焦於個人消費者的創業公司,之後有一家大型企業想要使用你的產品,可能會要求員工使用例如 Microsoft Entra 來登入。在這種情況下,你需要將企業 SSO 整合到你的產品中來完成這筆交易。
什麼是 SAML?
SAML(安全斷言標記語言) 是一種用於認證和授權的開放標準協議。與 OAuth 和 OIDC 並列,SAML 在身份管理系統中被廣泛使用,特別是在員工身份管理中。商業身份提供者如 Okta 和 Microsoft Entra 通常支持 SAML 作為其標準協議之一。
一些舊系統和社交登入提供者也提供 SAML 支持,因此在系統中內建 SAML 可以幫助確保與更多身份提供者的兼容性和未來生態系統的增長。
何時需要 SAML?
SAML 常常用於 企業 SSO 的情況。舉個例子,考慮這種情況:
你的銷售團隊聯繫產品開發者說:“我們有個大客戶,他們要求 SAML 登入。我們需要支持這項技術。”
對於不熟悉 SAML 或 IAM(身份和訪問管理)的工程師,他們可能的第一步會是搜尋“SAML”或“SAML 登入”。
最終,需要將企業 SSO 整合到你的產品中,使其成為“企業準備好”,以滿足依靠像 SAML 這類技術進行安全認證的大客戶的需求。
SAML 如何運作
以下是兩種流程的簡化分解:
SP 初始化流程
- 用戶試圖訪問 SP 的資源。
- SP 重定向用戶至 IdP 並附上 SAML 認證請求。
- 用戶在 IdP 處登入並通過身份驗證。
- IdP 創建帶有用戶身份和可能的授權數據的 SAML 斷言。
- IdP 通常通過用戶的瀏覽器將 SAML 斷言發回給 SP。
- SP 處理該斷言,驗證它並授予或拒絕用戶訪問。
IdP 初始化流程
- 用戶已登入 IdP 並從 IdP 的門戶中選擇一個服務或資源。
- IdP 根據用戶當前會話創建包含身份和屬性的 SAML 斷言。
- IdP 直接將斷言發送至 SP,無需 SP 事先請求。
- SP 處理該斷言,驗證其完整性,並提取用戶身份和屬性。
- SP 根據斷言授予或拒絕訪問。
要從技術角度查看 SAML 如何運作,請查閱 SAML 的工作原理。
SAML 和 SSO 的區別
SAML 和 SSO 的定義經常混淆,但是這裡有一個簡單的分解:
- SSO 是一種應用和軟件使用的認證過程,允許用戶一次登入便可訪問多個服務。
- SAML 是一種技術協議,主要用於企業身份管理,以安全地交換認證數據。
想像這樣一個場景:你早上走進辦公室,而不是需要分別登入每個應用——包含你的郵件、日曆、項目管理工具——你只需登入一次便可訪問所有的一切。這種無縫的體驗就是 SSO(單一登入)。它就像擁有一把通用鑰匙,可以打開所有工作工具的門。
但 SSO 是如何運作的呢?
這就是 SAML(安全斷言標記語言)進出的地方。想像 SAML 是你的登入系統(稱為身份提供者,或 IdP)和你想使用的應用(稱為服務提供者,或 SP 之間的值得信賴的信使。當你通過 SSO 登入時,SAML 確保地從 IdP 到應用發送一個你的身份“證明”,確認你就是你所聲稱的那個人。
因此,簡而言之:
- SSO 是用戶體驗:一次登入即可訪問多個應用。
- SAML 是幕後的協議,確保無縫體驗通過安全處理身份驗證。
雖然 SSO 提高了便利性,但 SAML 確保一切既安全又聯接,使你在無需第二次思考的情況下訪問所有一切。
企業 SSO 是否使用其他協議?
是的,除了 SAML 以外,OIDC 是在 企業 SSO 場景中常用的另一個協議。例如,在 Logto 的企業連接器中,它支持 Microsoft Entra(OIDC)和 Microsoft Entra(SAML)。
我應該使用 SAML SSO 嗎?
如果你銷售給企業客戶,盡早考慮支持 SAML 是很重要的。但不要只專注於支持 SAML 協議——考慮整個企業 SSO 認證流程。以下是幾個重要的場景需要考慮:
- 允許你的客戶自行入職並設置企業 SSO。
- 確保員工在 多租戶 應用中能自動加入正確的組織(這可以通過即時供應和 SCIM 完成)。
- 實施一個兼容於消費者面向的登入過程的端到端登入流程。
使用 Logto 實施 SAML 和企業 SSO
Logto 提供端到端的 企業 SSO 流程 和支持多個著名的 SAML 連接器。它可以整合到許多常見場景中,滿足你的需求。在 Logto 網站 上探索所有 Logto 的功能,從 Logto Cloud 到 Logto OSS。