Security Google OAuth工作流期间何时使用私钥?

Security Google OAuth工作流期间何时使用私钥?,security,oauth-2.0,google-oauth,Security,Oauth 2.0,Google Oauth,我正在构建一个基于OAuth的工作流来保护一些资源,我想知道Google提供的秘密客户端密钥是否真的对signin JSON Web Token(JWT)之外的其他东西有用 目前,我正在使用access\u令牌从我的前端应用程序收集用户响应,这似乎足以对用户进行身份验证。我得到了我需要的所有细节和令牌的服务器端验证 有什么我目前缺少的吗?是的,你需要客户端密码来交换访问令牌,我假设你当前的应用使用授权码来交换访问令牌,而这不需要客户端密码,只有重定向\u uri和客户端id,因为您无法在纯前端应

我正在构建一个基于OAuth的工作流来保护一些资源,我想知道Google提供的秘密客户端密钥是否真的对signin JSON Web Token(JWT)之外的其他东西有用

目前,我正在使用
access\u令牌
从我的前端应用程序收集用户响应,这似乎足以对用户进行身份验证。我得到了我需要的所有细节和令牌的服务器端验证


有什么我目前缺少的吗?

是的,你需要客户端密码来交换访问令牌,我假设你当前的应用使用授权码来交换访问令牌,而这不需要客户端密码,只有重定向\u uri客户端id,因为您无法在纯前端应用程序中安全地存储客户端机密

oauth2中还有其他授予类型,例如客户端凭据(主要由服务器应用程序使用),您需要提供客户端id客户端机密以交换访问令牌


您可以阅读更多关于oauth-2授权类型的信息

是的,您需要客户端密码来交换访问令牌,我假设您当前的应用程序使用授权码授权类型来交换访问令牌,这不需要客户端密码,只有重定向\u uri客户端id,因为您无法在纯前端应用程序中安全地存储客户端机密

oauth2中还有其他授予类型,例如客户端凭据(主要由服务器应用程序使用),您需要提供客户端id客户端机密以交换访问令牌


您可以阅读有关oauth-2授权类型的更多信息

Google客户端机密用于识别您的应用程序/网站,以供Google oauth 2.0使用。客户机密在谷歌服务之外没有任何意义

在您的问题评论中,您询问将访问令牌发送到服务器是否安全。如果您已经正确地实现了Google OAuth 2.0,那么您的服务器将收到作为身份验证流一部分的访问令牌。无需将令牌从客户端发送到服务器,因为服务器已经拥有它(您应该在身份验证后将访问令牌、刷新令牌和客户端ID令牌保存为客户端会话状态的一部分)。在授权期间,用户授予您的应用程序/网站使用您请求的范围的权限


您不指定正在使用的访问令牌的类型或创建方式。如果您的访问令牌是从您自己的内部机制的签名JWT派生的,则我关于Google OAuth 2.0的通信不适用,创建、控制和管理令牌取决于您的服务器逻辑。

Google客户端机密用于识别您的Google OAuth 2.0应用程序/网站。客户机密在谷歌服务之外没有任何意义

在您的问题评论中,您询问将访问令牌发送到服务器是否安全。如果您已经正确地实现了Google OAuth 2.0,那么您的服务器将收到作为身份验证流一部分的访问令牌。无需将令牌从客户端发送到服务器,因为服务器已经拥有它(您应该在身份验证后将访问令牌、刷新令牌和客户端ID令牌保存为客户端会话状态的一部分)。在授权期间,用户授予您的应用程序/网站使用您请求的范围的权限


您不指定正在使用的访问令牌的类型或创建方式。如果您的访问令牌是从您自己的内部机制的签名JWT派生的,那么我关于Google OAuth 2.0的说明不适用,创建、控制和管理令牌取决于您的服务器的逻辑。

是否存在将访问令牌发送到服务器而不是使用客户端机密的方法的风险?感谢您的回复。只要您与服务器的通信安全,您就应该向服务器发送访问令牌。否,因为在授权代码中,授予类型的访问令牌仅属于授权用户,这意味着您不能使用该访问令牌获取其他用户的资源。您不能使用client\u secret来访问资源,当您想要交换访问令牌时,会使用client\u secret。将访问令牌发送到服务器而不是使用client\u secret的方法是否存在任何风险?感谢您的回复。只要您与服务器的通信安全,您就应该向服务器发送访问令牌。否,因为在授权代码中,授予类型的访问令牌仅属于授权用户,这意味着您不能使用该访问令牌获取其他用户的资源。您不能使用client_secret访问资源,client_secret用于交换访问令牌非常感谢这个非常详细的答案,
access_令牌
来自一个嵌入式Google Authentication iframe,我将生成的这个访问令牌发送到服务器,以在我的系统中生成一个唯一的身份(因此检查服务器端的访问令牌有效性)通过一个由JWT签名的服务器,最终用户可以使用自定义权限和规则。换句话说,我正在扩展现有的身份验证工作流程,以获得一个集中授权平台,并将其作为服务提供给最终用户。非常感谢这个非常详细的答案,
access\u token
来自一个嵌入式Google Authenti在iframe中,我将生成的这个访问令牌发送到服务器,以便在我的系统中生成一个唯一的标识(因此检查服务器端的访问令牌有效性),最终用户可以通过服务器签名的JWT使用自定义权限和规则。换句话说,我正在扩展现有的身份验证工作流以获得一个分