瞻新資訊|網站設計、APP開發、UI/UX設計、LINE Bot開發

SSO 單一登入是什麼?企業導入架構、協定與資安風險指南

SSO 單一登入是什麼?企業導入架構、協定與資安風險指南

SSO 單一登入是什麼?企業導入架構、協定與DDoS 攻擊防護與事件處理等資安風險指南

作者:張安邦|瞻新資訊創辦人暨執行長

早上進公司,員工可能先登入 Email,再登入 CRM、ERP、請假系統、雲端硬碟與專案管理工具。每套系統各有一組帳號密碼,最直接的結果就是忘記密碼、重複使用密碼,或把密碼記在不該出現的地方。SSO(Single Sign-On)常被翻成「單一登入」「單一簽入」,就是為了解決這種分散登入的問題。

但如果把 SSO 理解成「登入一次,之後都不用輸密碼」,只看到了使用者表面上的方便。站在開發者與經營者的角度,我更在意的是:誰負責確認身分?各系統如何信任這次驗證?離職或調職後權限能否及時收回?集中登入服務故障時,全公司會不會一起卡住?

我的判斷很直接:SSO 是企業身分治理的入口,不是一個把登入頁藏起來的功能。 導入做得好,能改善使用體驗、降低帳號管理摩擦,也讓稽核更集中;導入做得草率,則可能把原本分散的風險集中到一個更關鍵的節點。

SSO 是什麼?先分清楚驗證、授權與帳號管理

SSO 的核心,是讓多個應用程式信任同一個身分提供者的驗證結果。員工在身分提供者完成登入後,再進入其他已整合的系統,系統會透過標準協定確認「這個人已被驗證」,不必每次重新輸入帳密。

這裡有三個容易混在一起的概念:

  1. 驗證(Authentication):確認你是誰,例如密碼、驗證器 App、安全金鑰或生物辨識。
  2. 授權(Authorization):確認你能做什麼,例如只能看報表、可以修改訂單,或具有管理員權限。
  3. 帳號生命週期:帳號何時建立、調職時如何改群組、離職時如何停權,以及外包人員權限何時到期。

SSO 主要處理第一項,可能攜帶群組或角色等資訊協助第二項,但不會自動替企業把所有授權規則整理好。帳號生命週期也需要另外設計,常見做法包括目錄同步、SCIM,自動化建立與停用帳號,或由既有 HR 系統觸發流程。

換句話說,使用者成功登入,並不等於他理所當然可以進入所有系統。應用程式仍要根據職務、組織、專案或資料敏感度判斷權限。

SSO 登入流程怎麼運作?IdP 與 SP 各自做什麼

企業 SSO 架構通常包含三個角色:

  • 使用者:想進入某個企業系統的人。
  • 身分提供者(Identity Provider,IdP):負責登入、MFA、風險判斷與簽發身分結果,例如企業既有的身分平台。
  • 服務提供者(Service Provider,SP)或 Relying Party(RP):員工真正要使用的 CRM、ERP、網站後台或其他 SaaS。

以「員工從 CRM 開始登入」為例,流程大致如下:

  1. 員工開啟 CRM,CRM 發現目前沒有有效 session。
  2. CRM 將瀏覽器導向企業 IdP,並帶上本次請求所需的識別資訊。
  3. IdP 要求員工登入;若已有有效的 IdP session,可能不必再次輸入密碼,但仍可能因風險或政策要求重新驗證。
  4. IdP 完成驗證後,回傳經簽章的 assertion 或 token。
  5. CRM 驗證簽章、issuer、audience、有效時間與 nonce/state 等條件。
  6. CRM 建立自己的應用 session,再依群組或角色決定可用功能。

這段流程看似只是幾次重新導向,真正的安全關鍵卻在驗證細節。Google 的 OpenID Connect 文件就明確提醒應用程式驗證 issuer、audience 與 token 到期時間;OAuth 2.0 與 OIDC 也使用 state、nonce 等機制降低請求被置換或重放的風險。只要其中一個驗證被省略,就可能留下可被利用的缺口。

SSO 使用者、應用程式與身分提供者之間的登入流程圖

SAML、OAuth 2.0、OpenID Connect 有什麼差別?

這三個名詞常一起出現,但用途不同。

技術 主要用途 常見資料形式 常見情境 導入提醒
SAML 2.0 企業身分驗證與 SSO XML assertion 傳統企業 SaaS、後台系統 憑證、Entity ID、ACS URL 與時間差要正確管理
OAuth 2.0 委派授權 Access token 讓應用程式代表使用者存取 API OAuth 本身不是完整的使用者身分驗證規格
OpenID Connect 建構在 OAuth 2.0 上的身分層 ID token,通常為 JWT 現代網站、APP、API 架構 要驗證簽章、issuer、audience、nonce 與期限

如果是既有企業 SaaS,常見對接方式是 SAML;新開發的網站或 APP,OIDC 通常比較貼近現代應用架構。OAuth 2.0 解決的是「某應用程式能否代表使用者取得資源」,不能只看到登入畫面就把它等同 SSO。OpenID Connect Core 1.0 才在 OAuth 2.0 上補上身分驗證與 ID token 的規範。

選擇協定時,我不會只問開發團隊熟悉哪一套,而會先盤點兩端實際支援什麼。若舊系統只能讀 LDAP、只接受特定 SAML 設定,或根本沒有外部登入介面,就必須評估代理層、閘道、改版或暫時保留獨立帳號,不能假設所有系統都能用同一種方式接上。

SSO 跟 MFA 的關係:方便與安全不是二選一

SSO 減少使用者反覆輸入密碼,MFA(多因素驗證)則是在密碼之外增加另一種因素,例如驗證器 App、硬體安全金鑰或裝置憑證。兩者不是競爭關係,常見做法是在 IdP 集中執行 MFA,再依風險決定是否需要額外驗證。

例如一般員工在公司受管理裝置上登入低敏感系統,可以沿用既有 session;財務人員存取付款功能、管理員進入權限設定,或使用者從新裝置與異常地點登入時,可以要求 step-up authentication。這種作法比「所有人每次都輸入相同步驟」更貼近風險。

不過,集中驗證也代表 IdP 帳號更值得被攻擊。企業至少要處理管理員帳號保護、釣魚抵抗能力、登入異常告警、session 期限、裝置遺失、恢復流程與 help desk 身分確認。NIST 的數位身分指引與 OWASP Authentication Cheat Sheet 都把驗證器、重新驗證、恢復與生命週期視為完整驗證設計的一部分,而不是只談密碼長度。

企業導入 SSO 能得到什麼?先談可驗證的價值

SSO 常見的價值有四項。

第一是使用體驗。員工不必在多個入口反覆輸入帳密,登入流程比較一致,行動裝置與遠端工作的摩擦也能降低。第二是管理集中。資安政策、MFA 與登入紀錄集中後,資訊人員比較容易查看異常,而不是到每一套系統各自調閱。

第三是帳號治理。若再搭配目錄、群組與自動化 provisioning/deprovisioning,新人到職、調職、離職會有較一致的處理入口。第四是稽核。企業能更清楚回答某個帳號何時登入、透過什麼方式驗證,以及政策是否被套用。

但這些都不是「裝上 SSO」就自然發生。若應用程式仍保留可繞過 SSO 的本機帳號、離職資料沒有觸發停權、群組映射多年沒整理,表面看起來是一個入口,底層仍可能各自為政。導入目標應寫成可驗證的結果,例如高風險系統已強制 MFA、離職帳號能在既定時間內停用、所有管理員操作有紀錄,而不是只寫「提升安全性」。

導入前盤點:不要從購買 IdP 授權開始

我在規劃系統時,習慣先畫出角色、系統、資料與責任,再討論產品。SSO 也一樣,至少要完成以下盤點:

  • 目前有哪些內部系統、SaaS、網站後台與 APP?誰是系統負責人?
  • 每套系統支援 SAML、OIDC、LDAP、代理登入,還是完全不支援標準協定?
  • 員工、主管、管理員、外包、客戶與供應商是否共用同一個 IdP?
  • 帳號的唯一識別值是 Email、員工編號,還是另一個不可變 ID?
  • Email 改名、部門調動、留職停薪與多重職務要如何處理?
  • 哪些系統屬於高風險,需要更強 MFA、較短 session 或受管理裝置?
  • IdP 故障、網路中斷或憑證更新失敗時,緊急存取方案是什麼?

盤點結果會直接影響範圍與成本。十套原生支援同一協定的 SaaS,跟十套年代、廠商、帳號邏輯都不同的客製系統,不應用「系統數量一樣」來估算工作量。

如果企業同時在整理網站、主機與搜尋基礎,可先閱讀官網架設完整指南WordPress 主機怎麼選,把 DNS、憑證、環境、備份和維運責任一併盤清楚。若 SSO 會套用到網站後台,還應搭配網站 SEO 優化完整指南檢查登入調整是否誤傷公開頁面、爬蟲存取或網站效能。

帳號生命週期:SSO 最容易被忽略的半邊

企業真正需要的不只是「員工可以登入」,而是正確的人在正確時間擁有正確權限。新人到職可能需要 Email、雲端硬碟、CRM 與工單系統;調職後某些權限要移除、另一些要新增;離職時則要停用帳號、撤銷 token、移轉資料與保留必要紀錄。

SCIM 是常見的跨系統使用者與群組佈建標準,但不是所有系統都支援,也不是接上後就不用治理。企業仍要定義誰是主資料來源、欄位衝突聽誰的、群組如何映射角色、刪除與停用有何差異,以及自動同步失敗時由誰處理。

我特別在意「不可變識別值」。若只用 Email 當唯一鍵,員工改名或網域調整後可能產生新舊帳號對不上、權限遺留或資料歸屬錯誤。這類問題在畫登入頁時看不到,卻會在營運多年後變成最難清理的技術債。

SSO 的主要風險:把單點便利變成單點故障

SSO 的集中性帶來管理優勢,也帶來關鍵依賴。最典型的風險包括:

  1. IdP 故障:員工無法取得新的登入結果,多套系統同時受影響。
  2. IdP 帳號被接管:攻擊者可能進入多個已信任的應用程式。
  3. Token 或 assertion 驗證不完整:應用程式接受不該接受的 issuer、audience 或過期資料。
  4. 權限映射錯誤:一般群組被映射成管理員,或調職後舊權限未撤銷。
  5. 登出認知落差:離開 IdP 不一定代表每一個應用程式的本機 session 都同步失效。
  6. 緊急帳號失控:為了故障備援保留的本機管理員帳號,平時無人管理或共用密碼。

降低風險不能只靠「選大品牌」。架構上要有高可用、監控、憑證輪替與回復程序;治理上要有最小權限、MFA、定期權限複核與緊急帳號管控;應用端則要正確驗證協定欄位,並處理 token 撤銷、session 期限與錯誤情境。

企業 SSO 導入的資安治理與故障備援檢核圖

舊系統不支援 SSO,企業有哪些選擇?

第一種是直接升級或更換系統,適合原產品已停止維護、資安風險高,且企業本來就有改版計畫。第二種是在前面加上支援 OIDC/SAML 的存取代理或閘道,但要確認代理能否真正保護所有入口,後端是否仍可被繞過。

第三種是針對既有系統開發 SSO 模組,這需要理解原本的帳號、session、權限與登出機制,不能只加一個「使用公司帳號登入」按鈕。第四種是暫時保留獨立登入,把高風險帳號納入密碼管理、MFA 與人工複核,等後續階段再整合。

從商業角度,我不建議為了追求「百分之百都接上」而讓一個低使用率舊系統拖垮整體專案。可以先用風險、使用人數與營運重要性排序,第一階段處理最常用與最高風險系統,保留明確的例外清單與退場計畫。

SSO 專案費用與時程受哪些因素影響?

SSO 很難只用「一套系統多少錢」估價。主要影響因素包括 IdP 與授權方案、整合系統數量、各系統支援的協定、目錄與 HR 資料品質、群組角色複雜度、MFA 與條件式政策、舊系統改造、測試環境、資安測試、文件及教育訓練。

時程也不只在寫程式。真正花時間的部分常是跨部門盤點、確認帳號主資料、向各 SaaS 供應商開通 SSO 功能、取得測試租戶、安排憑證與 DNS、定義例外,以及協調切換窗口。若供應商只問「幾套系統」,沒有追問使用者類型、協定、帳號來源與故障情境,估價很可能還沒有反映真實範圍。

驗收 SSO,不能只測登入成功

一份可用的驗收清單至少涵蓋:

  • 正常登入、已登入狀態與重新驗證流程。
  • 錯誤密碼、MFA 失敗、帳號停用與 IdP 拒絕存取。
  • issuer、audience、簽章、到期時間、state/nonce 等安全驗證。
  • 不同群組與角色能否取得正確應用權限。
  • 新人建立、調職、離職與外包到期的帳號生命週期。
  • IdP、網路或憑證故障時的告警、降級與恢復程序。
  • 應用程式登出、IdP 登出與 session 到期的實際差異。
  • 稽核日誌是否包含必要時間、帳號、來源與結果,且權限受控。
  • break-glass 帳號是否獨立保管、定期測試並在使用時告警。

切換方式可以分批進行:先選內部測試者,再選單一部門,最後才擴大。初期保留可控的回復方案,但不要無限期留下可繞過 SSO 的舊入口。每個例外都要有負責人、期限與移除條件。

張安邦的開發者/經營者觀點:先決定責任,再決定技術

我帶團隊做網站、APP 與企業系統時,會把「誰負責哪一段」寫進架構與驗收。SSO 專案裡,IdP 供應商、應用程式廠商、內部 IT、HR 與資安人員都有責任;如果大家都以為停權是別人會處理,最後就會出現帳號留在系統裡,卻沒人知道該由誰移除。

瞻新資訊累積 200+專案、涵蓋 40~50+產業/服務類型,以上為業主提供數據。這些經驗讓我不會把 SSO 包裝成一個按鈕或單純串 API。登入流程背後有身分資料、權限、營運連續性與交接問題,真正好的方案應該讓企業在半年、一年後仍說得清楚系統怎麼運作、故障找誰、帳號如何收回。

如果供應商展示時只強調登入畫面很順,建議繼續追問:Token 驗證做了哪些檢查?IdP 憑證如何輪替?離職時哪些 session 會被撤銷?舊系統是否仍可用本機帳密繞過?緊急帳號怎麼保管?這些答案比畫面轉跳速度更能判斷方案成熟度。

FAQ:SSO 常見問題

SSO 是否代表只需要一組密碼?

使用者通常只需要在主要 IdP 完成驗證,但企業仍可能保留受控的緊急帳號,部分舊系統也可能暫時使用獨立帳號。重點不是追求字面上的「全公司只剩一組密碼」,而是讓主要身分政策、MFA、停權與稽核集中且可控。

SSO 一定比每套系統各自登入更安全嗎?

不一定。SSO 可以集中 MFA、政策與日誌,也能減少重複密碼;但 IdP 會成為高價值目標與關鍵依賴。安全性取決於 IdP 保護、應用端協定驗證、權限治理、session、備援與日常維運,不能只因為使用 SSO 就宣稱更安全。

SAML 與 OpenID Connect 應該選哪一個?

先看 IdP 與應用程式實際支援。傳統企業 SaaS 常見 SAML,現代網站、APP 與 API 架構常使用 OIDC。若兩者都支援,再比較團隊能力、行動端需求、token 與 session 管理、供應商限制及長期維護,不必為了追新而強迫舊系統改用不適合的協定。

導入 SSO 後,離職員工會自動失去所有權限嗎?

只有在帳號主資料、IdP、應用帳號與 session 撤銷流程都正確串接時,才可能做到接近自動化。部分系統只做登入整合,帳號仍獨立存在;也有系統停用 IdP 後,既有 session 要到期才失效。因此離職測試必須列入驗收,不能只測新帳號登入。

IdP 當機時,企業應該怎麼辦?

先依系統重要性設計高可用與故障程序。可能包含 IdP 服務備援、監控告警、既有 session 的可接受存續時間、受嚴格控管的 break-glass 帳號、人工聯絡與復原演練。緊急帳號不能成為長期繞過 SSO 的後門,使用時要留紀錄並觸發告警。

結語:SSO 的成果不是少一個登入頁,而是身分流程更清楚

SSO 能讓員工登入更順、政策與稽核更集中,但真正決定成敗的,是企業能否分清驗證、授權與帳號生命週期,並替故障、離職、憑證輪替與舊系統留下可執行的答案。

如果正在評估 SSO,先不要急著比較品牌清單。先盤點系統、角色、協定、帳號來源與高風險情境,再要求供應商用架構、測試與責任分工回答。這樣得到的報價與時程才可比較,上線後也比較不會由「登入變方便」換來「管理更不透明」。

<div class=”author-box” style=”border:1px solid #d8e2f0;padding:20px;margin-top:28px;border-radius:10px;background:#f7f9fc”><strong>作者簡介|張安邦</strong><p>瞻新資訊創辦人暨執行長。國立臺灣大學醫學工程研究所資訊組、國立臺北教育大學資訊科學系背景,具十年以上軟體開發經歷;專長涵蓋網站前後端、iOS/Android APP、企業系統、LINE Bot、UI/UX 與資訊安全。從開發者與經營者角度,主張先釐清商業流程、資料與責任邊界,再選擇技術與開發方式。</p></div>