Oauth 2.0 Oauth2断言授权:为什么没有刷新令牌?

Oauth 2.0 Oauth2断言授权:为什么没有刷新令牌?,oauth-2.0,jwt,Oauth 2.0,Jwt,我正在研究Oauth2,以允许开发者授权其应用程序的用户使用我的服务。我发现一些消息来源说,当用户发送断言时,授权服务器应该返回访问令牌(在我的例子中是JWT),但它不应该返回刷新令牌。我想知道返回刷新令牌有什么害处。开发人员可以通过调用Api使从特定JWT id授予的任何访问无效,从而使刷新/访问令牌无效。该建议不正确。刷新令牌是可选的,可在客户端提交授权授予后由授权服务器自行决定是否颁发。看 1.5刷新令牌 刷新令牌是用于获取访问令牌的凭据。刷新 令牌由授权服务器颁发给客户端,并且 用于在当

我正在研究Oauth2,以允许开发者授权其应用程序的用户使用我的服务。我发现一些消息来源说,当用户发送断言时,授权服务器应该返回访问令牌(在我的例子中是JWT),但它不应该返回刷新令牌。我想知道返回刷新令牌有什么害处。开发人员可以通过调用Api使从特定JWT id授予的任何访问无效,从而使刷新/访问令牌无效。

该建议不正确。刷新令牌是可选的,可在客户端提交授权授予后由授权服务器自行决定是否颁发。看

1.5刷新令牌

刷新令牌是用于获取访问令牌的凭据。刷新 令牌由授权服务器颁发给客户端,并且 用于在当前访问令牌失效时获取新的访问令牌 变得无效或过期,或获取其他访问令牌 具有相同或较窄的范围(访问令牌可能具有较短的 生存期和权限少于资源授权的权限 所有者)发布刷新令牌是可选的,由 授权服务器。如果授权服务器发出刷新 令牌,它包括在发出访问令牌时(即,中的步骤(D)) 图1)


谢谢你指出这一点。我重新检查了我读到的使我质疑这一点的来源。事实证明,这与其说是一个建议,不如说是一个观察。它表示您通常不会在断言授权流中提供刷新令牌。我想我只是想知道我是否错过了一个缺点。可能是在讨论Oauth2.0中获取访问令牌的不同授权授予流。“授权码授权”提供授权码,在第二步中,您可以获得访问/刷新令牌。“隐式授权”流在一个步骤中提供了一个访问令牌,并且不允许使用刷新令牌。如中所述,刷新令牌是无用的:客户端可以通过使用相同的断言(如果仍然有效)或新的断言请求新的访问令牌来刷新过期的访问令牌。我不同意这是无用的。我想到的是一个客户,在一段时间不活动后醒来。该客户端必须向其应用服务器请求JWT,然后用JWT交换访问令牌。这是两次往返对一次往返。也许这没什么大不了的,但是这里有一个不容忽视的性能影响。这是无用的,因为客户端可以通过发送相同的断言(如果没有过期)或创建新的断言来刷新它。因为它通常是在客户端生成的,所以这是一个1轮。哦,是的,我想当然地认为断言是短暂的。它有可识别的信息,所以客户端不应该存储它。我应该早一点提到这一点。