---
# System prepended metadata

title: OAuth2 vs OpenID Connect vs SAML 整合認證比較
tags: [OAuth2]

---


# OAuth2 vs OpenID Connect vs SAML 整合認證比較

## 1. 概要

| 技術名稱       | 全名                                  | 用途說明                                   |
|----------------|---------------------------------------|--------------------------------------------|
| OAuth2         | OAuth 2.0 Authorization Framework     | 授權框架，用於第三方應用存取資源，不處理身份驗證 |
| OpenID Connect  | OpenID Connect                        | 建立於 OAuth2 之上，提供身份驗證功能         |
| SAML           | Security Assertion Markup Language    | XML 為基礎的身份驗證與授權標準，常用於企業單點登入 |

---

## 2. 核心比較表

| 特性                     | OAuth2                     | OpenID Connect         | SAML                        |
|--------------------------|----------------------------|---------------------------|-----------------------------|
| 規範標準                | IETF RFC 6749              | OpenID Foundation         | OASIS 標準                   |
| 傳輸格式                | JSON                       | JSON                      | XML                         |
| 使用場景                | API 授權                   | 身份驗證與授權           | SSO（企業應用）              |
| 身份驗證                | ❌ 否                      | ✅ 是                    | ✅ 是                        |
| 授權功能                | ✅ 是                      | ✅ 是                    | ✅ 是                        |
| 常見用途                | 讓第三方應用存取資源       | Google、Microsoft 登入等 | 企業 SSO（如 Azure AD、ADFS）|
| 資料格式                | Access Token               | ID Token（JWT）           | SAML Assertion（XML）        |
| 使用者資訊提供方式      | 無標準方式                 | `/userinfo` endpoint      | SAML Assertion               |
| 移動裝置支援            | ✅ 佳                      | ✅ 非常佳                | ⚠️ 一般                     |
| 瀏覽器相容性            | ✅ 高                      | ✅ 高                    | ⚠️ 需多瀏覽器測試            |
| 實作難易度              | ⭐⭐                        | ⭐⭐⭐                      | ⭐⭐⭐⭐                         |

---

## 3. 適用情境建議

- **OAuth2**  
  適用於第三方應用需取得 API 訪問權限的場景，例如：  
  - Facebook 分享內容  
  - Google Drive 存取檔案

- **OpenID Connect**  
  適用於 Web、行動裝置應用登入整合，現代化身份驗證標準，例如：  
  - 使用 Google、Microsoft、LINE 登入  
  - 與 OAuth2 同時提供登入與資源存取功能

- **SAML**  
  適用於企業級應用、傳統系統整合的單點登入（SSO）場景，例如：  
  - 員工入口網站  
  - ERP、HRM 等內部應用系統整合身份驗證

---

## 4. 安全特性比較

| 安全特性             | OAuth2        | OpenID Connect | SAML      |
|----------------------|---------------|----------------|-----------|
| Token 加密支援       | 可選          | 支援 JWT       | XML 加簽   |
| 支援 PKCE            | ✅ 是         | ✅ 是           | ❌ 否      |
| 單點登入（SSO）      | ❌ 否         | ✅ 是           | ✅ 是      |
| 多因素驗證支援       | ✅（取決於 IdP）| ✅ 是           | ✅ 是      |

---

## 5. 技術延伸說明

- **OAuth2** 僅處理授權流程，不包含身份驗證，但可與支援 MFA 的身份提供者（如 Azure AD）結合實作多因素驗證。
- **OpenID Connect** 是 OAuth2 的擴充，可取得 ID Token 驗證身份，也支援多因素驗證與單點登入。
- **SAML** 使用 XML 傳輸與數位簽章機制，安全性高但複雜，適合大型企業與舊有系統整合。

---

## 6. 整合認證流程

- OAuth2 流程：Client → Authorization Server → Resource Server  
- OpenID Connect 流程：Client ← ID Token → User Info  
- SAML 流程：Client → Identity Provider → Service Provider

---

## 7. 結論建議

| 使用目的         | 推薦技術       |
|------------------|----------------|
| Web / App 登入    | OpenID Connect |
| 第三方 API 存取   | OAuth2         |
| 企業 SSO 整合     | SAML           |
