AWS Cognito一次性访问令牌

时间:2018-03-13 00:21:13

标签: amazon-web-services amazon-cognito

有没有办法发出一次使用有效的访问权限?我的用例是从浏览器调用Lambda函数,但希望将每个令牌的调用次数限制为一个。

如果发出了短期令牌,那么它仍有可能被用于多次调用。

我正在使用DeveloperAuthenticatedIdentities发布临时令牌。

3 个答案:

答案 0 :(得分:1)

AWS Cognito没有这样的东西。

您可以使用API​​网关实施自定义授权程序来管理您的调用计数。如果多次访问相同的URL,您可以拒绝该服务。

有关自定义授权人的更多信息。

https://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html

希望它有所帮助。

答案 1 :(得分:0)

AWS Cognito不是为此而设计的,但您可以通过以下方式实现此目的 抛出不需要的昂贵计算:

  1. 您的Api / app会代表管理员添加用户。
  2. 您的api / app会在一段时间后删除confirmed用户。
  3. 您可以看到即使对于少量用户,这种方法也不可行。

    更好的方法,如果路线是唯一的(仍然使用Cognito)

    1. 与上述相同。
    2. 您在S3中有路由列表,作为存储桶名称;每个都有一个文件 包括,像

      {     access:false }

    3. 如果用户使用令牌访问路线,您的应用会检查以上内容 访问,并将其设置为true。你甚至可以没有上面的文件,只有 桶;代表路线并在被访问时被删除。

      更好的方法

      1. 应用程序可以生成/验证短期到期JWT令牌,以支持短期授权用户。这里的缺点是可能导致的开发时间 如果申请未经过彻底测试,则存在安全风险。
      2. 2.与上述方法相同(使用S3)。

答案 2 :(得分:0)

对于限制使用,我认为最好的方法是使用使用计划。

限制使用不是令牌责任,API密钥用于此目的。

看看这个AWS页面。

https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html