oAuth2 clientId 和 clientSecret 的正确位置

问题描述 投票:0回答:2

我正在开发支持第三方服务的 oAuth2 身份验证的 Web 应用程序。所以我有

clientId
clientSecret
键,我用它们来授权我的应用程序。

我正在使用 Spring security oAuth 依赖项并在 props 中配置所有这些。所以这就是问题:据我了解,将这些信息保存在类路径道具中是不安全的。另一方面,我正在寻找一种解决方案,允许我的应用程序在没有任何第三方道具/配置的情况下从盒子中启动并运行(所以我不喜欢将这些道具放在环境方面的想法)

我想知道是否有保留

clientId
clientSecret
键的最佳实践?

java spring spring-security oauth-2.0 spring-security-oauth2
2个回答
1
投票

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

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

当应用程序启动时,它会读取这些属性,识别哪些属性已加密并解密它们。例如,可以向 spring 默认 @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);

0
投票

我只使用应用程序属性或使用 .env 文件或我使用终端手动设置它们

© www.soinside.com 2019 - 2024. All rights reserved.