1

私は、第三者サービスでoAuth2認証をサポートするWebアプリケーションを開発中です。だから私は自分のアプリケーションを認証するために使用する私のclientIdclientSecretキーを持っています。oAuth2 clientId&clientSecretの適切な場所

私はSpringセキュリティoAuthの依存関係を使用しており、すべてのものを小道具に構成しています。そして、ここに問題があります:私が理解するように、安全でないクラスパスの小道具でこれらの情報を保持する。反対側から、私のアプリケーションを起動して、サードパーティーの小道具/設定なしでボックスから実行できるようにするソリューションを探しています(私はこれらの小道具を環境側に置くのが嫌いです)

clientIdclientSecretのキーを保存するベストプラクティスがあるのでしょうか?

+0

使用application.propertiesファイルには、それは私見、私はあなたがJavaベースの設定を使用している場合、のOAuth2 [ここを見てみましょう、プロパティと一緒に行くには設定ファイルほうが良いだろうと思う最高の場所 –

+0

です例 - java config](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 configまたはapplication.propertiesに格納するだけで、これらの鍵を盗まれる可能性があり(セキュリティで保護されていないため)、別のアプリケーションによって再利用される場合があります。だから私はここでいくつかのベストプラクティスを探しています。 – ikryvorotenko

答えて

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); 
関連する問題