根据规范,使用授权码授权请求的令牌不需要经过身份验证,只要在请求中包含
看起来支持允许没有密钥的客户端,因为
引用如下:
客户端通过在HTTP请求的实体主体中使用“application/x-www-form-urlencoded”格式和UTF-8的字符编码发送以下参数,按附录B,以以下方式向令牌端点发出请求:
grant_type 必需。值必须设置为“authorization_code”。
code 必需。授权服务器收到的授权码。
redirect_uri 如果在第4.1.1节中描述的授权请求中包括了“redirect_uri”参数,则必需,并且它们的值必须相同。
client_id 如果客户端未按照第3.2.1节中所述与授权服务器进行身份验证,则必需。
如果客户端类型是机密的或者客户端已获得客户端凭据(或分配了其他身份验证要求),则客户端必须按照第3.2.1节中所述与授权服务器进行身份验证。
client_id
并且该client_id
与用于生成代码的相同即可。然而,在Spring Security OAuth 2.0实现中,即使客户端从未被分配密钥,似乎始终需要基本身份验证在/oauth/token
端点上。看起来支持允许没有密钥的客户端,因为
ClientDetails
接口中有一个isSecretRequired()
方法。我需要做什么才能使没有密钥的客户端在/oauth/token
URL上得到身份验证?引用如下:
客户端通过在HTTP请求的实体主体中使用“application/x-www-form-urlencoded”格式和UTF-8的字符编码发送以下参数,按附录B,以以下方式向令牌端点发出请求:
grant_type 必需。值必须设置为“authorization_code”。
code 必需。授权服务器收到的授权码。
redirect_uri 如果在第4.1.1节中描述的授权请求中包括了“redirect_uri”参数,则必需,并且它们的值必须相同。
client_id 如果客户端未按照第3.2.1节中所述与授权服务器进行身份验证,则必需。
如果客户端类型是机密的或者客户端已获得客户端凭据(或分配了其他身份验证要求),则客户端必须按照第3.2.1节中所述与授权服务器进行身份验证。