OIDC 中的 acr
OIDC 中的 Authentication Context Class Reference (ACR),通常以請求參數 acr_values 和 ID Token 中的 Claim acr 呈現
它的作用是:
用來溝通和證明用戶在進行身份驗證時所採用的「認證強度」或「安全等級」。
簡單來說,ACR 是一種機制,讓您的應用程式可以要求或驗證用戶是以多高的安全標準登入的。
OIDC ACR 的作用
| 參數/ Claim | 存在位置 | 作用 |
|---|---|---|
acr_values | 授權請求 (Request URL) | 請求:客戶端向 Keycloak 請求用戶必須以達到的認證強度。 |
acr | ID Token (Claim) | 證明:Keycloak 告知客戶端,用戶實際完成認證的強度等級。 |
常見的 ACR 範例
ACR 值本身沒有統一的全球標準(除了少數規範,如 NIST),通常是由 Identity Provider (IdP) 平台自行定義,但業界有通用的概念:
| 範例 ACR 值 (Keycloak/業界常見) | 認證強度/方法 | 說明 |
|---|---|---|
0 或 unspecified | 最低強度 | 認證強度未特別聲明或僅使用基本密碼登入。 |
1 或 pwd | 密碼認證 | 證明用戶使用單一因素(密碼)登入。 |
2 或 2fa | 雙因素認證 | 證明用戶使用了兩種以上的認證因素(例如密碼 + OTP/FIDO)。 |
3 或 biometric | 生物識別 | 證明用戶使用了指紋或面部識別等方式登入。 |