【问题标题】:Is there a way to immediately revoke a Cognito Client Credentials Flow issued access token?有没有办法立即撤销 Cognito Client Credentials Flow 颁发的访问令牌?
【发布时间】:2018-10-09 21:51:02
【问题描述】:

AWS Cognito 具有 API 方法 GlobalSignoutAdminUserGlobalSignout,可用于撤销为用户池中的用户颁发的访问和刷新令牌(但不是 ID 令牌)。但是,使用客户端凭据流颁发的访问令牌没有关联的用户。 GlobalSignout 失败并出现错误,并且 AdminUserGlobalSignout 需要用户名,在此上下文中没有用户名。

令牌是短暂的,但在访问令牌已被泄露的情况下,以类似于RFC 7009 中描述的方式撤销令牌将是非常高枕无忧的。

我没有发现任何迹象表明可以在令牌过期之前显式撤销它。有什么设施可以做到这一点吗?

【问题讨论】:

标签: amazon-cognito


【解决方案1】:

也许有一天 Cognito 会拥有这个和其他基本功能,但不是今天。最好的建议是在您的授权代码中验证令牌。

当您准备好撤销用户的令牌时,请调用 CognitoIdentityServiceProvider.globalSignOut()。

然后,无论您在哪里进行令牌验证,都可以通过调用 CognitoIdentityServiceProvider.getUser() 添加额外检查。如果调用成功,则令牌尚未被撤销。如果失败,他们就没有被授权。

顺便说一句,Access Token 中的“sub”字段是一个唯一的 ID,可以匹配回 ID Token。虽然 Cognito 用户的用户名可以更改,但此值应保持不变。

【讨论】:

  • 问题不是关于撤销用户的令牌,而是关于撤销应用客户端的客户端凭据授权流返回的 oauth2 访问令牌。
猜你喜欢
  • 2019-09-29
  • 2019-04-12
  • 2019-05-19
  • 2020-09-29
  • 2021-06-22
  • 2015-03-06
  • 2020-05-06
  • 2022-07-05
相关资源
最近更新 更多