适合oAuth2 clientId& clientSecret

时间:2016-03-30 21:55:46

标签: java spring spring-security oauth-2.0 spring-security-oauth2

我正在开发支持使用第三方服务进行oAuth2身份验证的Web应用程序。所以我有clientIdclientSecret个密钥,用于授权我的应用程序。

我正在使用Spring security oAuth依赖项并在props中配置所有这些。所以这就是问题:据我所知,将这些信息保存在classpath中不安全的道具中。从另一方面来说,我正在寻找一种解决方案,它可以让我的应用程序在没有任何第三方道具/配置的情况下启动并运行(所以我不喜欢将这些道具放在环境方面)< / p>

我想知道是否有保留clientIdclientSecret密钥的最佳做法?

1 个答案:

答案 0 :(得分:0)

在Salesforce,我们以加密方式将敏感信息存储在属性中。例如:

sensitive.property=ENC(2sfs25D!==)

当应用程序启动时,它会读取这些属性,识别哪些属性已加密并对其进行解密。例如,可以添加自定义逻辑来弹出默认的@value读数。

根据您公司的安全准则,使用适当的加密算法。比如Scrypt: https://mvnrepository.com/artifact/com.lambdaworks/scrypt

int SCRYPT_N_PARAM = 65536;
int SCRYPT_R_PARAM = 8; 
SCryptUtil.scrypt(str, SCRYPT_N_PARAM, SCRYPT_R_PARAM, 1);