1

的適當位置我正在開發支持使用第三方服務進行oAuth2身份驗證的Web應用程序。所以我有我的clientIdclientSecret鍵,我用它來授權我的應用程序。oAuth2 clientId&clientSecret

我正在使用Spring安全oAuth依賴項並配置所有在道具中。這就是問題所在:據我所知,將這些信息保存在classpath中是不安全的。從另一方面來說,我正在尋找一種解決方案,它可以讓我的應用程序在沒有任何第三方支持/配置的情況下運行(所以我不喜歡將這些道具放在環境中的想法)

我想知道是否有任何保持clientIdclientSecret密鑰的最佳做法?

+0

使用的application.properties文件,這是最好的地方 –

+0

恕我直言,我認爲,如果你使用一個基於Java的配置將是更好的,與性文件去配置,就拿這裏看看[的oauth2例如 - java配置](https://github.com/spring-projects/spring-security-javaconfig/blob/master/samples/oauth2-sparklr/src/main/java/org/springframework/security/oauth/examples/ sparklr/config/OAuth2ServerConfig.java) –

+0

這裏我關心的是安全問題。將這些存儲在java配置文件或application.properties中會導致這些密鑰可能被盜用(因爲它們不安全),並被另一個假裝它爲我的應用程序重新使用。這就是爲什麼我在這裏尋找一些最佳實踐。 – ikryvorotenko

回答

0

在Salesforce,我們以加密的方式在屬性中存儲敏感信息。例如:

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

當一個應用程序啓動時,它會讀取這些屬性,標識哪些屬性被加密並解密它們。例如,可以將自定義邏輯添加到彈簧默認@值讀數。

根據貴公司的安全準則,使用適當的加密算法。例如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); 
相關問題