为 OAuth2 生成授权码的规范是啥?

Posted

技术标签:

【中文标题】为 OAuth2 生成授权码的规范是啥?【英文标题】:What is the specification for generating authorization code for OAuth2?为 OAuth2 生成授权码的规范是什么? 【发布时间】:2021-12-13 10:06:04 【问题描述】:

我正在编写一个 OAuth2 提供程序,我正在尝试根据此处的规范生成授权代码。

https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.2

代码 必需的。生成的授权码 授权服务器。授权码必须过期 发布后不久,以减轻泄漏的风险。一种 10 分钟的最大授权代码生命周期是 推荐的。客户端不得使用授权码

Hardt 标准跟踪 [页面 26]

RFC 6749 OAuth 2.0 十月 2012

     more than once.  If an authorization code is used more than
     once, the authorization server MUST deny the request and SHOULD
     revoke (when possible) all tokens previously issued based on
     that authorization code.  The authorization code is bound to
     the client identifier and redirection URI.

但是我应该使用什么编码或解码协议呢?提供者是否可以免费决定?

【问题讨论】:

【参考方案1】:

规范没有说明授权代码的编码,因此由开发人员决定。然而,这只是一个代码;它不包含您应该编码的数据。客户端应用程序按原样使用此代码,因此无需对其进行处理(例如解码)。

【讨论】:

我想知道编码是因为规范要求我们将授权代码绑定到客户端标识符、重定向 URI 和时间。而且由于我之前使用过类似 keycloak 的东西,我猜他们已经通过编码将这些信息包含在该代码中? 在 /auth 调用的响应中,响应是仅代码(如果您坚持,您也可以在那里添加状态)。看到这个:datatracker.ietf.org/doc/html/rfc6749#section-4.1.2

以上是关于为 OAuth2 生成授权码的规范是啥?的主要内容,如果未能解决你的问题,请参考以下文章

OAuth中授权码的用途是啥

OAuth /oauth/token 401

OAuth2 RFC 6749 规范提供的四种基本认证方案

当我或其他用户尝试使用 OAuth2 进行授权时,我不断收到需要验证我的应用程序的错误。那是啥意思?

OAuth2.0笔记

使用 JWT 的 Oauth 2.0 授权