OIDC 中的 acr

OIDC 中的 Authentication Context Class Reference (ACR),通常以請求參數 acr_values 和 ID Token 中的 Claim acr 呈現

它的作用是:

用來溝通和證明用戶在進行身份驗證時所採用的「認證強度」或「安全等級」。

簡單來說,ACR 是一種機制,讓您的應用程式可以要求驗證用戶是以多高的安全標準登入的。

OIDC ACR 的作用

參數/ Claim存在位置作用
acr_values授權請求 (Request URL)請求:客戶端向 Keycloak 請求用戶必須以達到的認證強度。
acrID Token (Claim)證明:Keycloak 告知客戶端,用戶實際完成認證的強度等級。

常見的 ACR 範例

ACR 值本身沒有統一的全球標準(除了少數規範,如 NIST),通常是由 Identity Provider (IdP) 平台自行定義,但業界有通用的概念:

範例 ACR 值 (Keycloak/業界常見)認證強度/方法說明
0unspecified最低強度認證強度未特別聲明或僅使用基本密碼登入。
1pwd密碼認證證明用戶使用單一因素(密碼)登入。
22fa雙因素認證證明用戶使用了兩種以上的認證因素(例如密碼 + OTP/FIDO)。
3biometric生物識別證明用戶使用了指紋或面部識別等方式登入。