具代表性的面試主題

通用面試:如何選擇聯邦身分的 FAL1、FAL2 與 FAL3?

通用困難
Offer.cc 編輯團隊發佈 更新

題幹

你要為政府合作夥伴與一般消費者接入聯邦登入。請解釋 FAL1/FAL2/FAL3 的差異、選擇依據、斷言驗證、綁定驗證器與運維策略。

題幹與適用場景

一個依賴方(RP)同時接入多個身分提供者(IdP),服務包含一般內容、員工管理和高價值交易。團隊把 FAL 當成「登入強度」,卻沒有定義斷言注入、持有者綁定、隱私與恢復要求。請依據 NIST SP 800-63C 選擇 FAL,並說明 OIDC、斷言驗證與運作策略。

FAL 描述聯邦交易中斷言如何被保護與綁定,不能取代 IAL(身分核驗)或 AAL(驗證器強度)。NIST 指出較高等級包含較低等級要求;FAL3 還要求訂戶直接向 RP 提供綁定驗證器的證明。

面試官考察點

  • 能否區分身分核驗、使用者認證與聯邦斷言傳遞三個維度。
  • 能否解釋 FAL1、FAL2、FAL3 的安全屬性與適用邊界。
  • 能否驗證 issuer、audience、簽章、nonce、時效與斷言來源。
  • 能否處理多 IdP、斷言注入、持有者綁定、隱私與恢復。
  • 能否把等級選擇轉成策略、監控、遷移與例外流程。

回答前需要釐清的問題

  1. 資源是公開內容、員工後台還是高價值交易?失敗影響和合規要求是什麼?
  2. IdP 與 RP 的協定是 OIDC、SAML 或其他聯邦協定?斷言由誰簽發與驗證?
  3. 是否需要防斷言注入、權杖轉移或盜用後重播?使用者是否持有可綁定驗證器?
  4. 恢復、跨裝置使用與離線情境如何處理?是否允許共享裝置?
  5. 多個 IdP 的 issuer、audience、JWKS 與租戶映射如何維護?

30 秒回答框架

先按風險選 FAL,而非按登入頁面選擇:FAL1 適合基本斷言傳遞;FAL2 增加對斷言注入等聯邦攻擊的保護;FAL3 在此基礎上要求與使用者綁定的驗證器直接證明。分別記錄 IAL、AAL、FAL,驗證 OIDC 的 issuer、audience、簽章、nonce 與時間。高價值交易才考慮 FAL3,並配套恢復、隱私、金鑰輪替與灰度策略。

分步驟深入解答

1. 分開 IAL、AAL 與 FAL

IAL 描述身分是否經過核驗,AAL 描述使用者如何證明控制驗證器,FAL 描述 IdP 向 RP 傳遞斷言時的保護。一個使用者可以有較高 AAL,但聯邦斷言仍未達所需 FAL;反之 FAL2 也不自動證明身分核驗等級。

策略表應為每種資源記錄三類等級、允許 IdP、斷言類型、恢復路徑與稽核期限。不要把「使用 OIDC」直接映射成某個 FAL。

2. 理解三個 FAL 等級

FAL1 提供基本聯邦斷言,適合風險較低、斷言注入影響有限的服務,但仍需驗證簽章、issuer、audience、時效與工作階段綁定。

FAL2 提供更強的斷言傳遞保護,降低攻擊者把有效斷言注入另一聯邦交易的風險。RP 需要明確交易情境、可信 IdP 與防注入驗證。

FAL3 在 FAL2 基礎上要求綁定驗證器由訂戶直接向 RP 提供證明,令斷言更難轉移。它帶來裝置綁定、恢復、可用性與隱私成本,不應為所有登入預設啟用。

3. 驗證 OIDC 斷言

驗證 ID Token 的簽章、issaudexpiat 與 nonce。OpenID Connect 要求用戶端將 nonce 與認證請求中的值比較;issuer URL 的 path 也是識別的一部分。

JWKS 只從事先批准的 issuer 取得,找不到 kid 時受控刷新。不要依使用者輸入動態拼接發現位址,也不要把 token 中的 email 當成跨租戶身分或權限唯一來源。

4. 防止斷言注入與轉移

伺服器端保存授權請求、issuer、client ID、redirect URI、state 與 nonce。回呼必須與原交易匹配;未知 issuer、audience 不符、重複 state 與錯誤 nonce 都停止流程。

高風險資源還要綁定交易、資源與工作階段。FAL2 解決聯邦斷言注入核心問題,但不取代 PKCE、issuer identification、token audience 或資源伺服器授權。

5. 設計 FAL3 的綁定驗證器

FAL3 要求訂戶直接向 RP 提供綁定驗證器證明。RP 需要登記綁定關係、驗證證明新鮮度與裝置狀態,並處理驗證器遺失、換機、撤銷與恢復。

恢復不能只依賴 IdP 一般登入,否則可能繞過綁定。高風險恢復可要求多個獨立因素、人工審核或延遲生效;產品必須接受更高支援成本和失敗率。

6. 隱私、最小化與多 IdP 運維

RP 只請求業務必需的 claims,並限制斷言保存與日誌欄位。不同 IdP 的 subject 不應直接當作跨域統一身分,映射表要按 issuer 與租戶隔離。

監控簽章失敗、issuer 衝突、nonce 重播、JWKS 刷新、斷言大小、恢復事件與按 FAL 的成功率。金鑰輪替保留重疊窗口,舊 issuer 設定在未完成工作階段 TTL 內繼續可驗證。

7. 選擇、灰度與例外

公開內容通常不需高 FAL;員工後台可採 FAL2;轉帳、管理員金鑰與不可逆操作再評估 FAL3。例外必須記錄資源、期限、補償控制與負責人。

按租戶與資源灰度,比較登入完成率、恢復成功率、服務台工單與安全事件。發現斷言注入或綁定失效時停止放量,不能為了可用性直接降級到 FAL1。

高品質示範回答

我會把 IAL、AAL、FAL 分開評估。低風險內容採 FAL1;員工後台和多 IdP 情境採 FAL2,強化斷言注入防護;轉帳或管理員金鑰等高價值操作才考慮 FAL3,並準備綁定驗證器、遺失恢復與隱私最小化。

每次 OIDC 回呼驗證 issuer、audience、簽章、時間與 nonce,並將 issuer、client、state、redirect URI 與交易綁定。JWKS 只來自批准的 issuer,按版本輪替。等級按租戶灰度,監控注入、重播、恢復與完成率;例外有期限和補償控制,故障時高風險流程失敗關閉。

常見錯誤

  • 把 FAL 當成登入強度,忽略 IAL 與 AAL。
  • 認為 OIDC 自動等於 FAL2 或 FAL3。
  • 只驗證簽章,不驗證 issuer、audience、nonce、時效與交易情境。
  • 讓使用者輸入的 issuer 或 kid 觸發任意發現與取 key。
  • 宣稱 FAL3 只需開啟一個設定,不設計綁定驗證器和恢復。
  • 將不同 IdP 的 email 直接合併成統一身分。
  • 為提高成功率在高風險操作上靜默降級到 FAL1。

延伸追問與參考答案

FAL2 與 AAL2 有什麼不同?

AAL2 說明使用者驗證器達到的強度,FAL2 說明聯邦斷言傳遞的保護。兩者獨立,策略應分別記錄與組合。

什麼情境值得 FAL3?

需要降低斷言轉移風險且使用者能直接提供綁定驗證器證明的高價值操作,例如管理員金鑰或不可逆交易。成本與恢復能力必須同時評估。

為什麼 nonce 仍然重要?

nonce 將 ID Token 綁定到本次認證請求,降低舊回應重播。它不能取代 issuer、audience、簽章與 FAL 策略。

IdP 暫時無法提供 JWKS 怎麼辦?

使用受控短快取;無法驗證高風險斷言時失敗關閉並告警。不能接受未知 key 或跳過簽章。

如何處理使用者換裝置?

FAL3 需重新建立綁定並驗證恢復策略;一般 IdP 登入只能是恢復流程一部分,不能自動繼承舊裝置綁定。

如何向業務說明 FAL 選擇?

用資源風險、斷言轉移後果、使用者群、恢復成本與合規要求說明等級,並記錄期限、指標和補償控制,而不是只引用等級名稱。

公開來源

同類題目