我是Hashicorp Vault的新手。我希望使用Hashicorp Vault确保我的客户端ID和OAuth2密码流的秘密。每次调用我的后端REST API时,它都需要客户端ID和密码,以及用户名和密码的用户凭据。我如何以安全的方式做到这一点,只让我的应用程序通过这个而不在我的javascript客户端中透露这个?
感谢。
约翰
答案 0 :(得分:1)
如果我正确地阅读了您的问题,那么您有一个调用自己的(REST)后端服务的Javascript应用程序。使用客户端ID,客户端密钥,用户名和密码来保护该呼叫。这引发了一些问题:
客户端ID和密码,以及用户名和密码的用户凭据
这似乎是错误的方法:OAuth安全资源(您的REST后端服务)不应该要求用户名和密码。登录用户是在授权服务器中完成的。
尝试从阅读OAuth2规范(RFC 6749)或DigitalOcean tutorial开始,以获得全面的概述。
我如何以安全的方式执行此操作,只让我的应用程序通过此操作而不在我的javascript客户端中公开此内容?
您不能:客户端密码无法在客户端控制的应用程序中受到保护,因为恶意客户端可以对您的应用程序进行逆向工程(或读取您的javascript)。你所拥有的是一个“公共客户”,即一个无法保密的客户。在这种情况下,您不使用客户端机密。尝试从this question或the introduction to oauth2 client types开始。