OAuth 2.0 解決了授權問題,卻無法回答「你是誰」。OIDC(OpenID Connect) 在其上新增身分驗證層,透過 JWT 格式的 ID Token 傳遞使用者身分,成為現代 SSO 的核心標準。
OIDC 如何補足 OAuth 2.0 的缺口
OAuth 2.0 的 Access Token 僅代表「被授權存取某資源」,格式與內容未經規範,應用程式無法從中得知使用者身分。OIDC 在 Authorization Code Flow 中新增 ID Token,以標準 JWT 格式夾帶使用者資訊(如 sub、email、name),並由 Identity Provider(IdP)以私鑰簽章,確保不可竄改。應用程式驗證簽章後即可安全識別使用者,不需額外呼叫資料庫,大幅降低身分驗證的複雜度。
ID Token 結構與 SSO 實現原理
ID Token 是標準 JWT,由 Header、Payload、Signature 三段組成。Payload 中的關鍵欄位包含 iss(發行者)、aud(目標應用)、exp(過期時間),確保 Token 的安全邊界。SSO 場景中,使用者僅需向 IdP 登入一次,各子系統透過同一組 ID Token 驗證身分,無需重複登入。OIDC 同時定義 UserInfo Endpoint,可用 Access Token 取得更完整的使用者資料,兩者搭配覆蓋絕大多數身分驗證需求。
{
"iss": "https://accounts.google.com",
"sub": "1234567890",
"aud": "my-client-id",
"email": "user@example.com",
"exp": 1716239022
}
💡 重點整理
- OIDC 是 OAuth 2.0 的超集,新增身分驗證層,並未取代授權機制。
- ID Token 以 JWT 格式由 IdP 簽章,應用程式可在本地驗證,無需遠端查詢。
- SSO 透過集中式 IdP 發行 ID Token,多系統共享同一身分認證狀態。
- UserInfo Endpoint 提供補充的使用者資料,與 ID Token 搭配使用。
OIDC 以最小幅度擴充 OAuth 2.0,便解決了身分驗證的核心痛點。無論是企業內網 SSO,還是雲端 SaaS 整合,OIDC 搭配 JWT 已是業界首選的標準解法。