当访问令牌过期时,AWS Cognito 不会从身份提供商刷新用户属性

Kon*_*ska 5 amazon-web-services azure-active-directory amazon-cognito

我们已经使用 AzureAD 身份提供程序设置了 Cognito 用户池。我们添加了一些带有属性映射的自定义属性,并使它们都可写和可读。用户能够登录,我们在发出的令牌中看到这些自定义属性,所以一切似乎都正常工作。

但是...当我们在 AzureAD 端更改某些属性时,这些更改不会反映在 Cognito 用户池属性上,因此不会反映在以下访问令牌的声明中。为了强制 Cognito 将用户数据与 AzureAD 同步,用户必须注销并登录。由于默认情况下刷新令牌的有效期为 30 天,这意味着潜在用户可能会在很长一段时间内拥有过时的声明。

从安全的角度来看,这是一个巨大的问题。想象一下在 AzureAD 端删除某些用户的权限(表示为声明)并且在接下来的几天内用户仍然拥有这些权限的场景,因为该更改未反映在 AWS Cognito 颁发的令牌中。

那么如何解决这个问题呢?每次访问令牌过期时,如何强制 Cognito 从身份提供者更新用户属性?在浏览器站点上清除刷新令牌不是解决方案。我在 AWS 文档上找不到任何关于它的内容(或基本上在其他任何地方),用户池上也没有同步设置等。