什麼是單一登入 (Single sign-on, SSO)?
單一登入 (Single sign-on, SSO) 是一種 認證 (Authentication) 方法,允許用戶使用一組憑證訪問多個應用程式或服務。用戶不需要為每個系統管理單獨的登入,而是只需認證一次,即可自動登入所有連接的平台。
SSO 常用於個人和商業環境,特別是在企業環境中,員工或遠程工作者依賴各種 SaaS 應用程式來完成工作。通過實施 SSO,組織可以增強安全性、簡化訪問管理並提高用戶生產力。
一個眾所周知的 SSO 例子是 Google 的服務套件,如 Gmail、Google Drive 和 Google Calendar。用戶登入他們的 Google 帳戶後,可以輕鬆訪問所有這些服務,而無需重新輸入憑證。
單一登入如何運作?
SSO 依賴於應用程式或服務(稱為 服務提供者 (Service provider, SP) )與 身分提供者 (Identity provider, IdP) 之間的信任關係。IdP 處理用戶認證並安全地與 SP 分享必要的信息以授予訪問權限。這種信任是通過稱為聯邦的過程建立的,其中 SP 和 IdP 同意特定的標準和協議,以安全地交換認證數據。
當用戶嘗試訪問啟用 SSO 的應用程式時,SP 會將他們重定向到 IdP 進行認證。IdP 會提示用戶提供憑證,驗證其身份,並在其系統中建立認證會話。此會話通常使用安全存儲在 IdP 域下的會話 cookie 維護。
一旦用戶被認證,IdP 會生成一個安全令牌或聲明,其中包含用戶同意與 SP 分享的信息。此令牌或聲明會被安全地傳輸回 SP,SP 驗證後授予用戶訪問權限。
如果用戶訪問另一個啟用 SSO 的應用程式,該過程會順利進行,而無需額外的登入。這種便利性是由 IdP 維護的用戶認證會話實現的,允許 IdP 自動驗證用戶身份並發出新的安全令牌,而無需再次提示輸入憑證。
像 安全斷言標記語言 (Security Assertion Markup Language, SAML) 和 OpenID Connect (OIDC) 這樣的協議被廣泛用於實現 SSO。這些標準定義了如何在 IdP 和 SP 之間安全地交換認證數據,確保可靠和安全的通信,同時保持用戶在不同應用程式間的無縫體驗。
基於 SAML 的 SSO
在基於 SAML 的 SSO 中,一旦用戶被 IdP 認證,會生成一個基於 XML 的 SAML 聲明,並安全地發送給 SP。然後 SP 驗證該聲明並根據用戶的身份授予訪問權限。
基於 OIDC 的 SSO
相較之下,OIDC 建立在 OAuth 2.0 之上,提供了一種更現代的 SSO 方法。它使用 JSON Web Token (JWT) 在 IdP 和 SP 之間交換身份信息,提供增強的安全性和更大的靈活性。
單一登入的好處
-
增強的安全性:SSO 通過減少用戶需要記住的憑證數量來降低與密碼相關的安全漏洞風險。它還允許組織強制執行更強的認證方法,如 多因素認證 (Multi-factor authentication, MFA) ,以保護用戶帳戶。
-
改善的用戶體驗:用戶可以無縫訪問多個應用程式,而無需重複登入,提高生產力並減少挫折感。SSO 簡化了登入過程,並在不同平台上提供一致的用戶體驗。
-
集中化的訪問管理:組織可以通過 IdP 集中管理用戶訪問和權限,確保所有連接應用程式的一致安全策略和訪問控制。這簡化了用戶配置、取消配置和審計過程。
何時使用單一登入
- 企業和組織環境:SSO 對於依賴多個應用程式和服務來簡化工作流程的企業特別有益。它簡化了用戶訪問,減少了 IT 團隊管理個別用戶帳戶的負擔。例如,使用多個 SaaS 應用程式的公司,如 CRM、HR 和協作工具。
- 面向客戶的應用程式:SSO 還可以提升客戶訪問在線服務或電子商務平台的用戶體驗。例如,允許用戶使用他們的社交媒體帳戶或電子郵件地址登入,而不是為每個服務創建新帳戶。
- 多產品服務:提供一套互聯產品或服務的公司可以利用 SSO 在其產品中提供無縫的用戶體驗。用戶可以在不同應用程式之間導航,而無需重複登入的麻煩。例如,Google 的 G Suite。用戶可以在 Chrome 瀏覽器上登入一次,然後訪問多個 Google 服務,而無需重新輸入憑證。
SSO 的使用不僅限於這些場景,可以根據組織或應用程式的具體需求適應各種用例。它被廣泛認為是增強安全性、用戶體驗和現代數位環境中運營效率的最佳實踐。