什麼是單一登入?
單一登入(single sign-on, 有時稱為 SSO)是一種驗證類型,使用者只需一組登入憑證(例如:使用者名稱與密碼),即可存取多個應用程式、網站或服務。與其他存取控制選項不同,中小型企業乃至大型組織可以使用單一登入,無需多次登入或記住多組密碼。
單一登入的運作方式
單一登入是基於多個可信任網域(例如,允許其使用者使用相同身分資料存取所有資源的組織)之間的聯合身分管理安排(有時稱為身分聯合)。本機系統使用可信任網域來對使用者進行驗證。
單一登入採用開放標準,如安全聲明標記語言 (Security Assertion Markup Language, SAML)、OAuth 或 OpenID,允許第三方服務(例如網站、應用程式)使用使用者的帳戶資訊,無需暴露其密碼。身分資訊以包含使用者資訊(例如電子郵件或使用者名稱)的 Token 形式轉發。
以下是單一登入流程的摘要。
- 使用者開啟網站或應用程式時,若尚未登入,系統將顯示登入提示,並提供單一登入選項。
 - 使用者在登入表單中輸入其登入憑證(例如:使用者名稱與密碼)。
 - 網站或應用程式會產生一個單一登入 Token,並向單一登入系統傳送驗證請求。
 - 單一登入系統會檢查受信任的網域,以判斷使用者是否已通過驗證。
 - 如果使用者尚未通過驗證,會將他們導向登入系統,要求其輸入登入憑證以完成驗證。
 - 如果使用者已經通過驗證,則會向網站或應用程式傳回一個 Token,以確認驗證成功並授予使用者存取權限。
 
如果使用者輸入錯誤的認證,系統會提示他們重新輸入。通常,多次嘗試失敗會導致使用者被封鎖一段時間,或在嘗試次數過多後帳戶被完全鎖定。
單一登入 Token
單一登入 Token 是一種數位檔案,用於在單一登入流程中於系統之間傳遞一組資料或資訊。它包含使用者的識別資訊,例如使用者名稱或電子郵件地址,以及傳送該 Token 的系統相關資訊。
為了確保 Token 來源可信,必須對其進行數位簽章。在單一登入初始設定過程中,會交換數位憑證。
單一登入與安全性
單一登入被廣泛使用,因為它簡化存取流程,免除帳戶與密碼的繁瑣管理,減輕使用者與系統管理員的困擾,尤其是在擁有數百甚至數千個應用程式的大型企業中。然而,單一登入並非毫無風險。
實施單一登入的組織需要考慮並降低風險,因為一組認證可能會讓未經授權的使用者存取多個應用程式與流程。關於單一登入的常見安全性疑慮包括:
- 帳戶被盜
 - 資料外洩(Data Breach)可能導致資料洩露、資料遺失與財務損失
 - 冒用身分
 - 工作階段遭劫持
 
可與單一登入一併實施的兩項有效安全性措施是:身分治理(Identity Governance)與多因子驗證(MFA , Multi-Factor Authentication)。
身分治理(Identity Governance)
身分治理是一項基於原則的管理機制,旨在幫助管理員更有效地管理與控制單一登入的存取權限。身分治理能讓管理員全面掌握哪些員工有權存取哪些系統與資料,並偵測弱式認證、不當存取與違反原則的行為。
如果懷疑(或有證據)使用者的單一登入認證已遭盜用,管理員可以使用身分治理工具來變更、撤銷或刪除不同層級的存取權限。
多因子驗證 (Multi-factor authentication, MFA)
實施多因子驗證或雙重因子驗證 (two-factor authentication, 2FA) 並結合單一登入,有助於確保受信任網域的安全性。這是因為除了單一登入的憑證外,還需要進行額外的身分驗證才能取得存取權限。多因子驗證可部署於所有透過單一登入連結的帳戶,以提供最高的防護。
如何實施單一登入
建立單一登入實施的目標。
決定使用者與需求。
評估現有能力並找出差距。
定義存取控制與其他需求。
確保組織的 IT 架構能夠支援單一登入,並針對不足之處進行調整。
建立符合核心標準的解決方案清單。
對各項選項進行評估,以找出最適合的解決方案。
與 IT 和資安團隊合作,確保單一登入實施符合使用者與 IT 要求。
SSO 的類型
企業單一登入
企業單一登入( enterprise single sign-on, 有時稱為 E-SSO)是在企業應用程式整合 (enterprise application integration, EAI) 環境中實作。企業單一登入可讓使用者只需使用一組登入認證,即可存取所有應用程式,無論它們是本地端或是雲端託管。
透過企業單一登入,使用者首次登入時,管理員會取得其認證,並自動用於後續登入其他應用程式與系統的驗證。透過集中管理使用者名稱與密碼,企業單一登入可讓管理員免於耗時的帳戶密碼管理工作。根據管理員所設定的控管條件,使用者可在不需管理員協助的情況下,授予對應用程式一定時間的存取權限。
聯合單一登入(Federated single sign-on)
聯合單一登入使用業界標準的 SSO 協議,讓使用者在無需重複驗證的情況下即可存取各個網站。它透過集中式的驗證系統,整合多個組織或群體,擴展標準單一登入的功能。聯合單一登入可用於存取單一企業或不同企業內的多個系統。
行動單一登入(Mobile single sign-on)
透過行動單一登入,只需單一身分就可以存取多個連接的行動應用程式。存取 Token 會儲存在行動裝置作業系統的鑰匙圈中,以允許識別使用中的工作階段。
智慧卡單一登入(Smart card single sign-on)
智慧卡單一登入不依賴數位 Token 和軟體,而是使用實體卡進行使用者驗證。智慧卡單一登入要求使用者使用儲存在卡片上的認證完成首次登入。為了讀取卡片資訊,必須使用讀卡機,且卡片需具備磁條或支援非接觸式資料傳輸技術。
Web 單一登入(Web single sign-on)
透過 Web 單一登入,使用者只需一次登入,即可存取多個已連線的網站。使用者登入網站後,即可在不同網站之間切換,系統會識別其身分、完成驗證,並授予信任。
Web 單一登入通常用於從網站存取的應用程式。設定 Web 單一登入的主要技術有兩種。
單一登入在 Web 應用程式或受保護應用程式中的代理程式內進行管理。這種方法面臨的一大挑戰是,它需要針對單一登入代理程式對應用程式進行修改,並且該應用程式必須能夠從使用者的 Web 瀏覽器中存取。
單一登入使用反向 Proxy 來管理應用程式中的驗證資料,使單一登入流程能夠獨立於 Web 伺服器執行。在這種情況下,反向 Proxy 扮演中介角色,負責管理存取權限並啟用單一登入流程。
選擇單一登入解決方案
選擇單一登入解決方案時的考慮因素,會因組織與使用案例而有所不同,但以下是評估過程中應納入的一些基本要素。
組織考量
- 單一登入解決方案是否解決了組織的使用案例?
 - 該解決方案是否支援需要單一登入的 IT 資源(例如應用程式、裝置、網路)?
 - 這是否是一個適合的短期單一登入解決方案,在未來替換時不會對 IT 團隊造成過多干擾與負擔?
 - 單一登入解決方案是否具備可擴充性,以滿足預期的需求?
 - 單一登入解決方案是否能與其他安全系統良好整合?
 
單一登入功能的考量事項
- 驗證選項,例如支援多因子驗證(MFA)、自適應驗證、自動強制驗證,以及透過輕量型目錄存取通訊協定 (lightweight directory access protocol, LDAP)
 - 行為分析與應對措施,例如將網際網路通訊協定 (internet protocol, IP) 位址列入黑名單或白名單、設定應對措施以防範暴力破解攻擊,以及佈建使用者重新驗證。
 - 符合安全標準,例如 ISO 27017、ISO 27018、ISO 27001、SOC 2 Type 2,以及法律(例如一般資料保護規範 (General Data Protection Regulation, GDPR)、加州消費者隱私權保護法 (California Consumer Privacy Act, CCPA))
 - 聯合功能可使用偏好的身分供應商(例如 Microsoft Active Directory 與 Google Directory)進行部署
 - 靈活的密碼驗證選項,例如可自訂的密碼到期限制、密碼複雜性與到期通知
 - 行動單一登入功能,為行動裝置提供現成可用的支援
 - 預先建置與自訂的安全聲明標記語言 (SAML , Security Assertion Markup Language) 應用程式連線
 - 使用開放標準通訊協定進行驗證,例如 JSON Web Token (JWT)、Kerberos、開放授權 (Open Authorization, OAuth)、OpenID Connect (OpenID Connect, OIDC) 以及 SAML
 - 對開發人員的支援,例如完善的開發週期管理應用程式介面 (application programming interface, API) 支援,以及針對主要平台提供的軟體開發套件 (software development kit, SDK)
 
單一登入的好處
- 集中管理對網站、應用程式與其他帳戶的存取流程,包括使用者佈建與停用
 - 透過簡化資源存取流程來提高生產力
 - 透過使公司推廣的應用程式更易於存取,來擴大其採用率
 - 透過對所有類型的存取相關資料提供強大的存取控制,以利使用者存取稽核
 - 讓使用者不必為多個帳戶個別設定強式密碼的困擾
 - 幫助組織遵守資料安全規章
 - 透過將每個使用者的密碼數量降至最低,來提高安全態勢
 - 維護對應用程式與網站的安全存取
 - 使應用程式能夠透過其他服務對使用者進行驗證
 - 將不良密碼習慣的風險降至最低
 - 透過允許 IT 管理員改善對工作場所伺服器上使用者活動的監控,以防止影子 IT 的產生
 - 提供更好的客戶體驗
 - 透過減少使用者因密碼問題聯繫 IT 技術支援的情況,以降低成本
 - 從伺服器或網路儲存空間中刪除登入憑證,以降低網路風險(Cyber Risk)
 - 強化密碼安全性
 
SSO 通訊協定
單一登入透過多種開放標準與通訊協定來驗證使用者的認證,包括以下幾種方式。
JSON Web Token (JWT)
JSON Web Token(簡稱 JWT)是一種廣泛用於面向消費者的應用程式的單一登入通訊協定。此開放標準 (RFC 7519) 用於將單一登入資訊安全地傳輸為 JSON 物件。
Kerberos
Kerberos 是一種基於票證的驗證系統,可讓多個實體透過加密方式相互驗證身分,以防止未授權存取身分資訊。當使用 Kerberos 進行單一登入時,在認證驗證成功後,會發出票證授予票證,用來擷取其他應用程式所需的服務票證,以供已驗證的使用者存取。
開放授權 (OAuth)
借助 OAuth(開放授權),應用程式無需提供密碼即可存取其他網站的使用者資訊。OAuth 取代密碼,可用於取得權限以存取受密碼保護的資訊。應用程式無需要求使用者輸入密碼,而是透過 OAuth 取得使用者授權,來存取受密碼保護的資料。
OpenID 連線 (OIDC)
OpenID Connect (OIDC) 是由 OpenID 基金會制定的標準,以 OAuth 2.0 架構為基礎的驗證機制,提供去中心化的單一登入方式。透過 OIDC,網站或應用程式可以驗證使用者認證。OpenID Connect 不會將 Token 傳遞給第三方身分提供者,而是讓網站或應用程式要求其他資訊來驗證使用者。
安全聲明標記語言 (SAML)
SAML(Security Assertion Markup Language ,安全聲明標記語言)是一種通訊協定,網站與應用程式可透過它採用 XML 與單一登入服務交換身分資訊。SAML 允許使用者在網路上登入一次後,即可存取該網路上的所有應用程式。
透過基於 SAML 的單一登入服務,應用程式無需在系統上儲存使用者認證,使其比其他選項更具彈性與安全性。SAML 也解決了 IT 管理員在使用輕量型目錄存取通訊協定 (LDAP) 實作單一登入時遇到的問題。
單一登入使用案例
具有多因子驗證(MFA)的單一登入
單一登入與多因子驗證結合使用,可讓驗證變得簡單且安全。這種組合在增強安全性的同時,也提升了應用程式與網站的近用性,並減少管理員在提供與控制存取權限方面所花費的時間。
單一登入與 LDAP
LDAP (Lightweight Directory Access Protocol , 輕量型目錄存取通訊協定) 常用於儲存使用者憑證,其單一登入功能可用於跨多個應用程式管理 LDAP 資料庫。
遠距團隊的單一登入
遠端工作的廣泛採用,使單一登入的使用範圍擴展至幾乎所有 IT 資源。單一登入之所以獲廣泛採用,是因為它超越了其他身分與存取管理(IAM , Identity and Access Management)系統。它提供一種不受作業系統或平台限制、以通訊協定為基礎、並支援雲端的存取驗證與授權方式。
單一登入讓使用者與管理員的驗證更加輕鬆
單一登入是一項可以簡化工作流程並提高使用者與管理員工作效率的技術。透過多種部署方式,單一登入幾乎可適用於任何使用案例。透過消除密碼蔓延帶來的困擾與漏洞,單一登入已被證實是 IT 安全領域中廣受歡迎的工具。