開場引言
在企業身份驗證選型時,SAML 與 OIDC 是最常見的兩個方案。兩者皆支援 Identity Federation,但技術棧截然不同,選錯將導致整合成本大幅上升。
SAML:企業 SSO 的成熟標準
SAML 2.0(Security Assertion Markup Language)以 XML 為核心,透過 IdP(Identity Provider)與 SP(Service Provider)交換簽章的 Assertion 完成身份驗證。其流程以 Browser Redirect / POST Binding 為主,天然適合瀏覽器型企業應用。SAML 廣泛整合於 Okta、Azure AD、ADFS 等企業 IdP,是傳統 ERP、SaaS 平台的首選協議。然而,XML 解析複雜、行動端與 API 支援薄弱,是其主要限制。
OIDC:現代應用的輕量身份層
OpenID Connect(OIDC) 建構於 OAuth 2.0 之上,以 JSON / JWT 傳遞身份資訊(id_token),並透過 Authorization Code Flow 或 PKCE 保護行動端與 SPA。相較 SAML,OIDC 支援 RESTful API、行動裝置與微服務架構,整合成本更低。Google、Auth0、Keycloak 均以 OIDC 為核心。其 /.well-known/openid-configuration 端點提供標準探索機制,大幅簡化客戶端配置。
OIDC Discovery 端點範例
GET https://accounts.google.com/.well-known/openid-configuration
# 回傳 JSON 包含:
# issuer, authorization_endpoint, token_endpoint,
# jwks_uri, userinfo_endpoint, scopes_supported
💡 選型重點整理
- 企業 SaaS / ERP 整合:優先選 SAML,相容性最佳且主流 IdP 原生支援。
- 行動 App / SPA / API:選 OIDC + PKCE,JSON 輕量且對 REST 友好。
- 同時需要兩者:主流 IdP(如 Okta、Azure AD)均可同時提供 SAML 與 OIDC。
- 新專案優先:OIDC 生態系更活躍,長期維護成本較低。
結語
SAML 穩固可靠,是企業遺留系統的最佳橋梁;OIDC 輕巧現代,是新世代應用的首選。根據目標系統與用戶端類型選型,才能在安全與整合效率間取得最佳平衡。
留言
張貼留言