在Heroku上存储身份验证配置值的最佳实践是什么?

问题描述

我在heroku上部署了一个应用程序(java),我的环境是:Develop and Staging。我的应用正在对外部api平台进行身份验证(jwt令牌)。

因此,我正在使用标准方法创建jwt令牌:登录私钥(.pem)并创建有效负载的jwt令牌aprtre编码(基于64)。一切正常。

但是在本地,我将所有变量存储在application-contextual-values.properties文件

示例:

secure.auth.iss=xxxxx
secure.auth.sub=yyy
secure.auth.iat=zzzz
secure.auth.pk=MIIE.... // this is my private key i use to sign on to create token

存储此信息的最佳方法是什么?在我的heroku vars配置中,如下所示:

SECURE_AUTH_ISS : XXXX
SECURE_AUTH_SUB : YYYY
....
SECURE_AUTH_PK : MII.....

对于每个环境,我都会添加正确的值?

两个应用程序都包含一个postgres插件

解决方法

Heroku基于12 factor app原则,其中之一是:

III. Config

将配置存储在环境中

为此,秘密就是配置。

,

您的部署可能涉及一个用于开发的WebDyno和一个用于暂存的WebDyno。在每个环境中,为每个环境变量(即SECURE_AUTH_ISS,SECURE_AUTH_SUB等)配置一个ConfigVars

然后在每个环境上定义要使用的实际值。