Oauth2/Openid 连接。如何撤销未知的访问/刷新令牌

Posted

技术标签:

【中文标题】Oauth2/Openid 连接。如何撤销未知的访问/刷新令牌【英文标题】:Oauth2/Openid Connect. How to revoke unknown access/refresh tokens 【发布时间】:2015-05-11 12:53:00 【问题描述】:

在 Oauth 或 Openid Connect 中,假设攻击者获取了访问或刷新令牌,并清除了浏览器或应用程序的缓存。如果用户的字符串未明确知道,用户能否撤销身份提供者颁发的访问或刷新令牌?

【问题讨论】:

【参考方案1】:

这实际上取决于身份提供者的实现,但通常您应该能够撤销至少刷新令牌。刷新令牌通常存储在 IDP 的持久存储中,用户可以登录 IDP 来管理客户端授权和刷新令牌。例如,Google 允许用户在以下位置进行管理:https://security.google.com/settings/security/permissions

【讨论】:

【参考方案2】:

如果您的 Token-Provider 至少是 OAuth 2.0-Provider,它必须实现 OAuth 2.0 Token Revocation。 该 URL 应由 OpenID Connect-Provider 作为 /.well-known/openid-configuration 中的“revocation_endpoint”交付。

【讨论】:

OAuth 2.0 令牌撤销规范中的 /revoke 端点需要实际令牌值作为参数

以上是关于Oauth2/Openid 连接。如何撤销未知的访问/刷新令牌的主要内容,如果未能解决你的问题,请参考以下文章

Keycloak 的 OAuth2 / OpenID Connect 端点是啥?

使用 OAuth2/OpenId Connect 和微服务进行身份验证和授权

OAuth2/OpenID Connect 保护 API 的自动化 API 测试

Spring Boot OAuth2/OpenID Connect Client 尝试解码 Jwt: Malformed Jwk set 时出错

OIDC-基于OAuth2的下一代身份认证授权协议

Google BigQuery Spark 连接器:如何在追加时忽略未知值