如何修改AWS Cognito用户池的访问和标识令牌的到期时间

Luc*_*uca 28 amazon-web-services amazon-cognito aws-cognito

我找不到任何文档说明是否以及如何修改AWS Cognito用户池的访问和身份令牌的到期时间.

文件规定,在默认情况下排放期满后1小时.

有没有办法修改到期时间?

Haz*_*ziq 48

截至 2020 年 8 月 12 日,AWS 宣布用户池现在支持自定义令牌到期时间。以下是要遵循的步骤:

  1. 打开您的 AWS Cognito 控制台。
  2. General Settings
  3. 向下滚动App clients并单击编辑。
  4. 单击Show Details按钮可查看如下自定义选项: 令牌到期自定义屏幕

访问令牌过期时间必须在 5 分钟到 1 天之间。不能大于刷新令牌到期时间。

有关 AWS Cognito 的更多详细信息,您可以点击此链接

  • 最后!Cognito 团队花了足够长的时间——仍然有一个巨大的相关问题是 Cognito 仍然不允许在 api 调用上使_all_令牌失效 (2认同)
  • 谢谢,我没找到它:) (2认同)
  • @chrylis-cautouslyoptimistic-虽然我仍然可以使用此选项,但您是否有提及此选项不再可用的说法? (2认同)

Jef*_*ley 26

目前无法为您的用户池进行配置.每个人都设置为一小时.

  • 2020/08 更新:您现在可以编辑 Cognito 用户池的访问、ID 和刷新令牌的生命周期。https://aws.amazon.com/about-aws/whats-new/2020/08/amazon-cognito-user-pools-supports-customization-of-token-expiration/ (10认同)
  • 是的,这是我希望测试的功能.目前很难测试注销/令牌到期情况. (9认同)
  • 一年半之后,我想知道有关ID和ACCESS令牌到期的情况是否有所变化?我似乎找不到对文档的任何更改,但我想我会在这里询问并继续。 (3认同)
  • @Jeff Bailey 让 Cognito 团队考虑过 SPA 应用程序,对于这些应用程序,刷新令牌无法安全地存储在浏览器中,并且访问令牌 1 小时过期通常对用户来说不方便?如果能够安全地让用户进行身份验证一个多小时,许多 SPA 开发人员都会非常感激。 (2认同)
  • @MikeFogel 这是个好消息,但链接没有告诉你如何做 (2认同)

Ror*_*mpf 6

我认为问题是如何获得对 Cognito 会话终止的精细控制。有一种方法可以做到这一点。但首先让我们回顾一下 Cognito 会话管理的工作原理:

  1. 身份验证令牌在一小时后过期。
  2. 在发布刷新令牌时可能会请求新的身份验证令牌。
  3. 1 到 30 天后,Cognito 将不会发出刷新令牌 - 在应用程序客户端设置中为每个应用程序配置天数。

那么如何更好地控制 Cognito 会话长度呢?答案是在您的 http 请求堆栈中插入一个过滤器来评估请求 - 如果用户出于某种原因必须注销,则发出 302 重定向到 Cognito 注销端点(并清除您的会话 cookie)。

这就是我们在 Kubernetes 中使用 Envoy(使用代理)以及 Spring 所做的。它还允许您连接逻辑,在用户的 1 小时访问令牌到期之前立即撤销对用户的访问。

请参阅https://docs.aws.amazon.com/cognito/latest/developerguide/logout-endpoint.html


Nei*_*eil 5

澄清:此回复是关于访问令牌(不是刷新令牌)

您可以配置从cognito控制台令牌到期General Settings/ App Clients/ {your app}/ Show Details/Refresh token expiration (days)

https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html

默认情况下,刷新令牌会在您的应用程序用户登录到您的用户池后 30 天到期。当您为用户池创建应用程序时,您可以将应用程序的刷新令牌到期时间(以天为单位)设置为 1 到 3650 之间的任何值。

似乎目前对于 Web 客户端来说,不到一天的时间没有选择(很奇怪)。

如果您使用移动 SDK 那么

https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html

适用于 Android 的移动 SDK 提供了将 ID 和访问令牌的最短有效期更改为0 到 30 分钟之间的值的选项 。请参阅适用于 Android 的 AWS 移动开发工具包 API 参考中的 CognitoIdentityProviderClientConfig 的 setRefreshThreshold() 方法。

  • 问题是关于访问令牌,而不是刷新令牌。 (12认同)

Rah*_*ppa 5

更新答案(截至 2022 年 12 月 13 日):

  1. 打开您的 AWS Cognito 控制台(不要切换回旧控制台)
  2. 点击“用户池”
  3. 单击您要配置的用户池
  4. 您应该看到选项卡:“用户、组、登录体验、注册体验、消息传递、应用程序集成、用户池属性”。选择“应用程序集成”。
  5. 滚动到底部,您可以看到应用程序客户端列表
  6. 选择相关的应用客户端
  7. 您应该看到“应用程序客户端信息”。点击编辑。

最后,您应该看到“刷新令牌过期”的输入。