Amazon web services 如何修改AWS Cognito用户池的访问和标识令牌的到期时间
我找不到任何文档来解释是否以及如何修改AWS Cognito用户池的访问和身份令牌的过期时间 指定默认情况下在排放后1小时到期Amazon web services 如何修改AWS Cognito用户池的访问和标识令牌的到期时间,amazon-web-services,amazon-cognito,aws-cognito,Amazon Web Services,Amazon Cognito,Aws Cognito,我找不到任何文档来解释是否以及如何修改AWS Cognito用户池的访问和身份令牌的过期时间 指定默认情况下在排放后1小时到期 是否有办法修改到期时间?目前无法为您的用户池配置此选项。他们被设定为每人一小时 编辑:参见Mike的评论,这是最近添加的。Cognito使用了。为了更新过期的令牌,您需要使用刷新令牌值来获取新的Id令牌 为了在开始时获得身份验证,从用户那里收集用户id和密码并发送到Cognito 你可以拿回两个代币。一个用于“访问”API,另一个用于在访问过期时“刷新” 您不需要再次要
是否有办法修改到期时间?目前无法为您的用户池配置此选项。他们被设定为每人一小时 编辑:参见Mike的评论,这是最近添加的。Cognito使用了。为了更新过期的令牌,您需要使用刷新令牌值来获取新的Id令牌
这真的很简单。澄清中的进一步信息:此回复是关于访问令牌(不是刷新令牌) 您可以从cognito控制台
常规设置
/应用程序客户端
/{your App}
/显示详细信息
/刷新令牌过期(天)
默认情况下,刷新令牌在应用程序用户使用后30天过期
登录到您的用户池。为用户池创建应用程序时,
您可以将应用程序的刷新令牌到期时间(以天为单位)设置为任意值
介于1和3650之间。
似乎目前对于web客户端来说,不到一天的时间是没有选择的(很奇怪)
如果您使用移动SDK,那么
Android移动SDK提供了更改最小值的选项
将ID和访问令牌的有效期设置为介于0和
30分钟。请参阅的setRefreshThreshold()方法
AWS Mobile SDK for Android中的CognitoIdentityProviderClientConfig
API参考
我认为问题在于如何获得Cognito会话终止的粒度控制。有一种方法可以做到这一点。但首先让我们回顾一下Cognito会话管理的工作原理:
常规设置
应用程序客户端
,然后单击编辑有关AWS cognito的更多详细信息,请遵循此操作。如果使用CloudFormation模板,请添加以下属性并以天为单位指定访问令牌的有效时间(尽管官方文档称默认为小时)。下面是一个访问令牌有效期为24天的示例
UserPoolClient:
Type: "AWS::Cognito::UserPoolClient"
Properties:
ClientName: myuserpoolclient
GenerateSecret: true
UserPoolId: !Ref YourUserPool
AccessTokenValidity: 24
文件:
一年半后,我想知道身份证和访问令牌的到期日是否有任何变化?我似乎找不到对文档的任何更改,但我想我应该在这里问一下,然后继续。是的,这是一个我很想测试的功能。目前很难测试注销/令牌过期情况。如果我有一个刷新令牌,如果我的令牌在1小时内过期,我如何获得令牌?@Jeff Bailey让Cognito团队考虑SPA应用程序,对于哪些刷新令牌不能安全地存储在浏览器中长达1小时,并且访问令牌过期1小时,这通常会给用户带来不便?许多SPA开发者非常希望能够安全地将用户身份验证保持一个多小时。更新2020/08:您现在可以编辑cognito用户池的访问、id和刷新令牌的生命周期。问题是关于访问令牌,而不是刷新令牌。@尼尔回顾“刷新阈值”的功能,它实际上似乎是令牌过期的宽大因素,而不是寿命本身。查看CognitoIdentityProviderClientConfig.java,您会发现该值必须介于最小值(0ms)和最大值(1800000ms或30min)之间,默认值为30000ms或5min。我观察到,直到5分钟过去,SDK(或服务器API)中的id令牌才开始被拒绝,这可能就是阈值。但它似乎与本次讨论无关,除非您看的是60到90分钟。我的用例是,我们已经配置了Cognito用户池,将身份验证与我公司的SAML提供商联合,并通过SSO进行登录。现在,当用户在公司的用户管理解决方案中更改其组成员身份时,我们如何确保这会影响用户使用web应用程序的能力,因为Cognoto令牌不会从公司的用户管理解决方案中刷新。我们正在考虑使用注销按钮来实现这一点。