SAML 與 OIDC
SAML 和 OIDC 是在單一登入 (SSO) 產業中最受歡迎的兩種身份驗證協議。本文將從架構和使用案例方面比較 SAML 與 OIDC。
SAML 和 OIDC 是在單一登入 (SSO) 產業中最受歡迎的兩種身份驗證協議。本文將從架構和使用案例方面比較 SAML 與 OIDC。
SAML(安全斷言標記語言)是一種基於 XML 的開放標準,用於在不同方之間交換身份驗證和授權數據,特別是在身份提供者 (IdP) 和服務提供者 (SP) 之間。它使基於網絡的單一登入(SSO) 成為可能,允許用戶只需驗證一次即可訪問多個應用程式。SAML 是一個成熟的協議,已存在很長時間,並被企業廣泛採用。一些最受歡迎的 SaaS 平台如 Salesforce、Workday 和 Microsoft Azure AD 都支持 SAML SSO。
OIDC(OpenID Connect)是建立在 OAuth 2.0 協議之上的身份層。與 SAML 類似,OIDC 也用於在 IdP 和 SP 之間交換身份驗證和授權數據。
相比 SAML,OIDC 是更現代化且輕量的協議,並且在現代 web 和移動應用中日益受歡迎。OIDC 使用 JWT 傳輸身份信息,相比基於 XML 的 SAML 斷言,更緊湊且更易於使用。它尤其在面向消費者的應用和 API 安全中流行。
openid、profile、email、address 等。OIDC 提供多種明確設計用於不同使用情況的流程。以下是兩種最常見的 OIDC 流程:
授權代碼流程是 OIDC 中最常用的面向消費者的應用流程。
用於無用戶基礎的機器對機器身份驗證。
| 方面 | SAML | OIDC |
|---|---|---|
| 令牌格式 | 基於 XML 的 SAML 斷言 | 基於 JSON 的 JWT 令牌 |
| 主要使用情境 | 企業 SSO、B2B 整合 | 面向消費者的應用、API 安全 |
| 易用性 | 複雜,需要深入了解 XML | 簡單,基於 JSON,易於實施 |
| 採用率 | 被企業廣泛採用 | 在現代應用中越來越流行 |
| 安全性 | 成熟但被認為安全性較低 | 現代化,更加安全 |
| 靈活性 | 有限,為 SSO 使用情境設計 | 靈活,支持各種使用情境 |
SAML 和 OIDC 都被廣泛用於身份驗證和授權目的。
SAML 仍然是企業 SSO 和 B2B 整合的基石。其對聯合身份管理的強大支持和久經考驗的記錄確保了其持續的相關性,尤其是對於遺留系統和大規模組織。
另一方面,OIDC 隨著現代應用中對安全和可擴展身份驗證的需求而不斷演變。其輕量級的特性以及與 APIs 和微服務的對應使其成為雲原生和分佈式架構的基石。隨著無密碼身份驗證、生物識別和多因素身份驗證 (MFA) 的興起,OIDC 預計將無縫集成最新技術,確保其未來的相關性。