用户通过第三方IdP经由Amazon Cognito对API进行身份验证。开发人员将IdP属性Department映射到一个自定义Lambda授权方,旨在只允许销售部门的用户访问。开发人员在IdP中将其部门更改为Sales,但仍然被拒绝访问;日志显示访问令牌仍然是Department=Engineering。什么可以解释为什么令牌仍然报告Engineering而不是Sales?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 自定义Lambda授权方中启用了授权缓存。.
为什么这是答案
当自定义Lambda授权方启用授权缓存时,它会存储之前验证过的令牌及其关联的授权决策。即使IdP中的用户属性(如Department)发生更改,Lambda授权方在缓存过期之前仍会使用旧的、缓存的令牌信息进行授权。因此,尽管用户在IdP中更新了部门,但由于缓存的存在,Lambda授权方仍然收到了包含旧部门信息(Engineering)的访问令牌,导致访问被拒绝。 其他选项错误的原因: Amazon Cognito用户池中启用授权缓存:Cognito用户池本身不直接缓存Lambda授权方的授权决策。 自定义Lambda授权方的IAM角色缺少Department标签:IAM角色和标签与授权方如何处理令牌中的属性映射和缓存无关。 Amazon Cognito用户池的IAM角色缺少Department标签:同上,这与令牌属性的缓存行为无关。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡