首页 > 解决方案 > 访问令牌过期时,AWS Cognito 不会从身份提供商刷新用户属性

问题描述

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

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

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

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

标签: amazon-web-servicesazure-active-directoryamazon-cognito

解决方案


推荐阅读