使用Hashicorp Vault在OAuth2密码流中存储客户端ID和密码

时间:2016-12-24 16:59:46

标签: oauth2 hashicorp-vault

我是Hashicorp Vault的新手。我希望使用Hashicorp Vault确保我的客户端ID和OAuth2密码流的秘密。每次调用我的后端REST API时,它都需要客户端ID和密码,以及用户名和密码的用户凭据。我如何以安全的方式做到这一点,只让我的应用程序通过这个而不在我的javascript客户端中透露这个?

感谢。

约翰

1 个答案:

答案 0 :(得分:1)

如果我正确地阅读了您的问题,那么您有一个调用自己的(REST)后端服务的Javascript应用程序。使用客户端ID,客户端密钥,用户名和密码来保护该呼叫。这引发了一些问题:

  

客户端ID和密码,以及用户名和密码的用户凭据

这似乎是错误的方法:OAuth安全资源(您的REST后端服务)不应该要求用户名和密码。登录用户是在授权服务器中完成的。

尝试从阅读OAuth2规范(RFC 6749)或DigitalOcean tutorial开始,以获得全面的概述。

  

我如何以安全的方式执行此操作,只让我的应用程序通过此操作而不在我的javascript客户端中公开此内容?

您不能:客户端密码无法在客户端控制的应用程序中受到保护,因为恶意客户端可以对您的应用程序进行逆向工程(或读取您的javascript)。你所拥有的是一个“公共客户”,即一个无法保密的客户。在这种情况下,您不使用客户端机密。尝试从this questionthe introduction to oauth2 client types开始。