代表性面试主题

通用面试:如何选择联邦身份的 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 的路径也是标识的一部分。

JWKS 只从预先批准的 issuer 获取,kid 找不到时受控刷新。不要依据用户输入动态拼接发现地址,也不要把 token 中的 email 当作租户或权限唯一来源。

4. 防止断言注入和转移

服务器端保存授权请求、issuer、client ID、redirect URI、state 和 nonce。回调必须与原交易匹配;未知 issuer、audience 不符、重复 state 和错误 nonce 都停止流程。

高风险资源还要绑定交易、资源和会话。FAL2 解决联邦断言注入的核心问题,但不替代 PKCE、issuer identification、令牌 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 触发任意发现和取钥。
  • 宣称 FAL3 只需打开一个配置,不设计绑定认证器和恢复。
  • 将不同 IdP 的 email 直接合并成统一身份。
  • 为提高成功率在高风险操作上静默降级到 FAL1。

追问及应对

FAL2 与 AAL2 有什么区别?

AAL2 说明用户认证器达到的强度,FAL2 说明联邦断言传递的保护。两者独立,策略应分别记录并组合。

什么场景值得 FAL3?

需要降低断言转移风险且用户能直接提供绑定认证器证明的高价值操作,例如管理员密钥或不可逆交易。成本和恢复能力必须同时评估。

为什么 nonce 仍然重要?

nonce 把 ID Token 绑定到本次认证请求,降低旧响应重放。它不能替代 issuer、audience、签名和 FAL 策略。

IdP 暂时无法提供 JWKS 怎么办?

使用受控短缓存;无法验证高风险断言时失败关闭并告警。不能接受未知 key 或跳过签名。

如何处理用户换设备?

FAL3 需重新建立绑定并验证恢复策略;普通 IdP 登录只能作为恢复流程的一部分,不能自动继承旧设备绑定。

如何向业务解释 FAL 选择?

用资源风险、断言转移后果、用户群、恢复成本和合规要求说明等级,并记录期限、指标和补偿控制,而不是引用等级名称本身。

公开来源

同类题目