【问题标题】:Is it possible to revoke AWS Cognito IdToken?是否可以撤销 AWS Cognito IdToken?
【发布时间】:2018-01-14 15:46:45
【问题描述】:

是否可以撤销AWS Cognito IdToken 在用户身份验证后获得的username 和password?

在我的用例中,对API Gateway 端点的访问受到Cognito User Pool Authorizer 的限制,IdToken 将IdToken 作为request.headers.Authorizer 中的参数。我正在寻找阻止当前用户IdToken 的方法。

在AWSJavaScriptSDK 中是一个函数globalSignOut({AccessToken}),它撤销accessToken: http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityServiceProvider.html#globalSignOut-property

是否可以以相同或类似的方式撤销IdToken?

感兴趣的:我在aws-sdk-js 上创建了一个问题: https://github.com/aws/aws-sdk-js/issues/1687

【问题讨论】:

    标签: javascript amazon-web-services token aws-api-gateway amazon-cognito


    【解决方案1】:

    你是对的。 globalSignOut 调用会撤销除 id 令牌之外的所有令牌。 id 令牌是一个不记名令牌,通常用于用户池之外的服务。我是 Cognito 团队的一员,我们的日历上确实有一个集成路线图,让使用 id 令牌的服务检查这些 id 令牌是否有效并且不接受无效的。

    【讨论】:

    • 非常感谢您的回复。有没有可能在不久的将来发布?
    • @Ionut 既然你在 Cognito 团队,那么撤销access token 有什么影响? API 网关即使被撤销也不会拒绝它。
    • 您好,访问令牌和id令牌将在一个小时后过期。是否可以使用过期令牌调用全局注销?
    • @ionut 有没有办法检查令牌是否有效并且没有在 AWS 中注销?
    • @Ionut 有这方面的消息吗?我看到您为刷新令牌添加了撤销令牌功能,当在池中启用时,ID 令牌包含额外的声明,如 JTI 字段
    【解决方案2】:

    正如@AllanFly120在提到的topic中写道:

    因为 IdToken 表示为 JSON Web Key Token,所以它已签名 使用密钥或私钥/公钥对,这意味着 即使您 撤销 IdToken,没有办法撤销分布式公共 键。而且IdToken的生命周期很短,很快就会过期 时间。

    它解决了我的疑虑。

    【讨论】:

    • 好吧。短时间并不短。根据我的测试,过期时间大约是 8 到 10 小时。
    • @Annjawn 这不正确。 “ID 令牌”总是在生成 60 分钟后过期。这是 Cognito 中的硬限制,无法更改。 docs.aws.amazon.com/cognito/latest/developerguide/…您可以在此处粘贴您的令牌以查看以毫秒为单位的过期时间jwt.io
    • 是的。对不起,这是我的错。到期时间为 60 分钟。我使用的是 Amplify,它会定期刷新令牌。
    • 正确,但仍然非常短视。没有办法注销某人。这意味着,如果您正在进行授权,并且基于您所属的组的访问权限,并且当您从组中删除时,您将保留完全相同的访问权限,因为 IdToken 没有更改。这是一个明显的安全漏洞。再说一次,Cognito 并不是特别安全……
    • @E.T 是的,确实如此。如前所述,无法撤销它,因此要立即调用,需要另一种授权方法
    【解决方案3】:

    事实并非如此。即使有文档说明,如果您真的认真对待应用程序的安全性,至少 60 分钟的到期时间也是不可接受的。

    这是一篇描述 AWS Cognito 缺陷的文章:3 things you should know before using AWS Cognito as authenticator

    【讨论】:

    • 赞成您的答案,但在 aws 控制台 -> 用户池 -> 常规设置 -> 应用程序客户端:ID 令牌到期 - 必须在 5 分钟到 1 天之间。不能超过刷新令牌过期时间。
    猜你喜欢
    • 2020-07-13
    • 2011-03-26
    • 1970-01-01
    • 2020-05-25
    • 2021-10-21
    • 1970-01-01
    • 2018-09-21
    • 2018-11-24
    • 2019-04-06
    相关资源
    最近更新 更多