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

Fab*_*ira 5 client oauth github github-api oauth-2.0

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

在关于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

Von*_*onC 3

那么,有没有一种方法可以使用 Github OAuth,在不使用 client_secret 的情况下获取访问令牌?

在考虑授权授予步骤时,我看不到

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

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

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

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