今天是第22天,辛苦每一位閱讀到這裡的夥伴,應該要給自己一點掌聲!
學習到這裡,我們已經學會以下內容:
今天,我們就把 SAML 與 OIDC 放在一起比較,來理解什麼時候用 SAML,什麼時候用 OIDC?
簡單來說,這兩個功能可以這樣區分。
技術的部分也可以分成這些:
面向 | SAML | OIDC |
---|---|---|
協定基礎 | XML + SOAP | JSON + REST |
Token 格式 | Assertion (XML) | ID Token (JWT) |
核心任務 | 身分認證(Authentication) | 身分認證(Authentication),基於 OAuth |
常見用途 | 企業 SSO、內部系統、舊有應用 | SaaS、Web App、Mobile App、API 整合 |
生態圈 | AD/LDAP、SAP、Jira、Confluence、Salesforce | Google、Facebook、LINE、GitHub、現代雲服務 |
開發友好度 | 配置複雜,需處理 XML 簽章驗證 | 較簡單,JSON/JWT,工具與 SDK 豐富 |
瀏覽器支援 | 偏向瀏覽器重導 + 表單 POST | 原生支援 SPA / Mobile App |
流行趨勢 | 在大型企業仍很常見,但新專案逐漸轉向 OIDC | 現代標準,IETF 持續演進 |
SAML:
使用者 → Service Provider (SP) → 重導到 IdP → 登入 → IdP 生成 SAML Response(XML Assertion) → 透過瀏覽器 POST 回 SP → 驗證 XML 簽章 → 登入成功。
OIDC:
使用者 → Client → 重導到 Authorization Server → 登入 → 回傳 code → Client 用 code 換取 Access Token + ID Token (JWT) → 驗證 ID Token → 登入成功。
SAML 帶回的是 XML,OIDC 帶回的是 JWT。
接下來就是最重要的使用情境,我們根據不同的使用需求進行以下區分:
假設你要開發一個 SaaS 平台:
很多 SaaS 公司最後會 同時支援 SAML 與 OIDC,以滿足不同市場需求。
除了使用需求比較之外,當然還是要比較一下安全需求:
但無論是SAML或者是OIDC,兩者都必須強制走 HTTPS,避免攔截攻擊。
今天我們比較了 SAML vs OIDC:
今天的教學就到這裡,讓我們明天見囉!