Authentication “a”的目的是什么;刷新令牌“;?

Authentication “a”的目的是什么;刷新令牌“;?,authentication,oauth,youtube-api,access-token,refresh-token,Authentication,Oauth,Youtube Api,Access Token,Refresh Token,我有一个与YouTube实时流媒体API集成的程序。它在计时器上运行,因此我可以相对轻松地编写程序,使用刷新令牌每50分钟获取一个新的访问令牌。我的问题是,为什么 当我通过YouTube验证时,它给了我一个刷新令牌。然后,我使用这个刷新令牌大约每小时获取一次新的访问令牌。如果我有刷新令牌,我总是可以使用它来获取新的访问令牌,因为它永远不会过期。因此,我不认为这比从一开始就给我一个访问令牌,而不用担心整个刷新令牌系统更安全。基本上,刷新令牌用于获取新的访问令牌 为了清楚地区分这两个标记并避免混淆,

我有一个与YouTube实时流媒体API集成的程序。它在计时器上运行,因此我可以相对轻松地编写程序,使用刷新令牌每50分钟获取一个新的访问令牌。我的问题是,为什么


当我通过YouTube验证时,它给了我一个刷新令牌。然后,我使用这个刷新令牌大约每小时获取一次新的访问令牌。如果我有刷新令牌,我总是可以使用它来获取新的访问令牌,因为它永远不会过期。因此,我不认为这比从一开始就给我一个访问令牌,而不用担心整个刷新令牌系统更安全。

基本上,刷新令牌用于获取新的访问令牌

为了清楚地区分这两个标记并避免混淆,以下是中给出的它们的功能:

  • 经资源所有者批准,授权服务器向第三方客户端颁发访问令牌。客户端使用访问令牌访问由资源服务器承载的受保护资源
  • 刷新令牌是用于获取访问令牌的凭据。刷新令牌由授权服务器颁发给客户端,用于在当前访问令牌无效或过期时获取新的访问令牌,或获取范围相同或更窄的其他访问令牌
现在,为了回答您的问题,即为什么您仍然获得刷新令牌,而不仅仅是保护访问令牌,Internet工程任务组在年提供的主要原因是:

出于安全原因,
refresh\u令牌
仅与授权服务器交换,而
access\u令牌
与资源服务器交换。这降低了“一个访问令牌有效一小时,一个刷新令牌有效一年或直至撤销”与“一个访问令牌有效直至撤销,但无刷新令牌”中长期访问令牌泄漏的风险

有关OAuth 2.0流的更详细和完整信息,请尝试阅读以下参考资料:

  • 由互联网工程任务组(IETF)发布
  • 因此,张贴-

@Teyam提到了这一点,为什么OAuth v2既有访问令牌又有刷新令牌?但我更喜欢另一个答案:

TL;DR
刷新\u令牌
不会带来更高的安全性。它的目的是提高可伸缩性和性能。然后,
access\u token
可以存储在一些快速的临时存储器(如内存)中。它还允许授权和资源服务器分离。

“因此,我不认为这比从一开始就给我一个访问令牌,而不用担心整个刷新令牌系统更安全。” 我为同样的问题苦苦挣扎。简而言之,刷新令牌是确保凭据未过期所必需的

举个例子可能会有帮助:
我有一个储存你病历的数据库。您同意与您的配偶共享您的医疗记录。您的配偶使用他们的访问令牌从我的数据库读取您的记录。两周后,您的配偶将再次检查您的医疗记录,刷新令牌用于确保他们(从身份验证服务器)仍然有权查看您的记录。刷新令牌不需要您的配偶向身份验证服务器重新输入其凭据(用户名和密码),但它确实确保他们仍然具有访问资源的合法性。永不过期的访问令牌不会知道您是否已撤销配偶访问您的医疗记录的权利。

刷新令牌至少有两个用途。首先,刷新令牌是一种“证明”,表明OAuth2客户机已经从用户那里获得了访问其数据的权限,因此可以再次请求新的访问令牌,而无需用户通过整个OAuth2流。第二,与长寿命访问令牌相比,它有助于提高整个安全流。我将更详细地讨论这两点

刷新令牌以避免打扰用户 让我们用一个例子来讨论第一个目的。假设您是一名用户,正在使用希望与YouTube帐户数据交互的第三方客户端web应用程序。一旦您授予客户端应用程序使用YouTube数据的权限,您是否希望客户端应用程序在其YouTube令牌过期时再次提示您输入权限?如果YouTube令牌过期时间很短,比如5分钟,会发生什么。如果客户端应用程序至少每5分钟提示一次您的许可,那就有点烦人了!OAuth2针对这个“问题”提出的解决方案是刷新令牌。通过使用刷新令牌,访问令牌可以保持短命(这在访问令牌以某种方式泄漏或被盗的情况下是可取的),并且刷新令牌可以保持长寿命(er),允许客户端在新的访问令牌到期时获得新的访问令牌,而无需用户许可(再次)

但为什么是刷新令牌?如果问题的关键是不让用户在权限请求中出错,那么为什么客户端不能简单地说“嘿,授权服务器,我想要另一个访问令牌。现在!”?或者,“嘿,授权服务器,这是我过期的令牌,给我一个新的!”。嗯,刷新令牌作为一种“证据”,证明客户机在某个原始时间点被用户授予访问权限。此“证明”的形式是由授权服务器数字签名的刷新令牌。通过客户端提供刷新令牌,授权服务器可以验证客户端是否在过去的某个时刻收到了来自用户的权限,并且客户端不必再次提示用户

刷新令牌以提高安全性 然而,这引起了人们的怀疑