Github OAuth2不支持客户端身份验证?

OAuth2规范中,可以预见的情况是,您正在完全运行在客户端(浏览器,移动设备等)的应用程序中进行身份验证,因此它们无法保护其代码/数据。 / p>

在关于Security Considerations的备忘录中,他们说您不应在我们的代码中存储凭据(出于明显的原因,我认为):

https://tools.ietf.org/html/rfc6819#section-5.3.1

此外,在有关本机客户端的备忘录中,他们强烈建议授权服务器不需要应用程序密码:

https://tools.ietf.org/html/rfc8252#section-8.5

因此,应该有可能获得访问令牌,而无需使用“客户端”授予类型的客户端机密,例如:

https://www.oauth.com/oauth2-servers/mobile-and-native-apps/authorization/


无论如何,在Github文档中,指出client_secret是检索access token的必需项:

https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#2-users-are-redirected-back-to-your-site-by-github

根据官方规范,您应该可以实现这一目标,但是我找不到使用Github OAuth实现这一目标的方法,这是我的问题:

是否可以使用Github OAuth而不使用access token来获取client_secret

yangliuliu2009 回答:Github OAuth2不支持客户端身份验证?

  

那么,有没有一种方法可以使用Github OAuth,而无需使用client_secret获得访问令牌?

在考虑authorization grant step

时,我看不到
  

应用程序用该代码交换访问令牌。

     

当应用程序发出访问令牌请求时,该请求将通过客户端密码进行身份验证,从而降低了攻击者拦截授权码并自己使用授权码的风险。

这意味着,如果应用程序需要代表客户端自动执行该步骤,则需要从第三方引用(如文件库)中获取该秘密。

例如参见puppetlabs/vault-plugin-secrets-oauthapp,这是一个为O​​Auth 2授权代码授予流提供安全包装的插件,允许Vault客户端代表用户请求授权并使用协商的OAuth 2访问令牌执行操作。
(此处,Valut是hashicorp/vault

本文链接:https://www.f2er.com/3134612.html

大家都在问