AWS Cognito身份池:AWS凭证过期/续订

时间:2019-12-19 21:38:30

标签: javascript amazon-web-services amazon-cognito

我正在构建一个AWS支持的站点,从广义上讲,它执行以下操作:

  1. 根据Cognito用户池对用户进行身份验证(该池由第三方SAML提供程序支持),并为他们提供令牌。
  2. 使用Cognito身份池来授予用户凭据以用于其他服务。
  3. 允许用户使用上方的凭据直接从前端S3客户端执行一系列长期运行的S3上传。

我正在尝试弄清与令牌和凭据之间的交互。我对the tokens I get from the user pool的处理方式很清楚:

  1. 我可以使用它们来调用身份池,并获取可用于S3的AWS凭证。
  2. 如果其他令牌在完成之前过期,我可以使用刷新令牌来刷新其他令牌。

这些令牌的到期详细信息在上面的链接中。以上所有内容的文档都很清楚,但是我对Identity Pool凭据功能感到困惑,并且无法在文档中找到有关以下问题的解释:

  1. 当我从身份池中获取AWS凭证时,它们将持续多久才过期?如何配置该值,以便我的CognitoIdentityCredentials为我提供所需的到期凭据?
  2. 如果我的AWS凭证在完成工作之前过期,那么尝试1.刷新凭证和2.失败的正确逻辑是什么:刷新用户池令牌,以便能够完成干净地进行操作,而无需让用户重新启动它?

1 个答案:

答案 0 :(得分:0)

用户池仅用于用户管理。用户与AWS服务和资源的任何交互都是通过Identity Pool完成的。您可以通过身份池分配角色。 要回答您的2个具体问题:

  1. 令牌持续1个小时。此持续时间是固定的,无法更改。
  2. 如果令牌过期,则可以使用刷新令牌来生成新的标识和访问令牌。但是,大多数前端sdks(甚至是javascript)都会自动为您执行此操作。您不必担心令牌到期。实际上,如果您有此要求,则必须强制使它们无效。