nodejsでJWTを水平に拡大する適切な方法は何ですか?私はRSA
を使用してトークンを生成しています。したがって、各サーバーは、それ自身で生成されたトークンをデコードすることができます。すべてのロード・バランシングはステートレスなので、どのサーバーがトークンを生成したかを知る方法はありません。私が使用しています現在のコードはgenerateToken
機能は、画像の任意の上で実行することができ、それらのすべてが異なる秘密鍵を持っている水平スケーリングJson-Webトークンnodejs
helper['generateToken'] = (user)=>{
return new Promise((fullfill,reject)=>{
try{
var cert = fs.readFileSync('pvt.key');
var token = jwt.sign(user,process.env.SECRET);
fullfill(token);
}catch(ex){
reject(new Error("Your token could not be generated"));
}
});
}
です。これに合わせて最適な方法は何でしょうか。
ただ、サイドノート私は、各サーバは、自身が生成したトークンをデコードすることができるだろう
「標準のプラクティス」の観点からは、すべてのサーバと秘密鍵を共有するのが良いアイデアですか?私はトークンベースの認証に新しいです、通常セッションを持っていないので、同じものを実装するための適切な方法がわからない – georoot
秘密鍵は安全に保たれるべきです。仮想化、バックアップ、クローニングなどのCommontの慣習は、常に何らかのリスクを負っています。ハードウェアトークン(HSMなど)を使用して、独自のレプリケーションとロードバランシングのメカニズムを持つキーを格納することは可能ですが、コストがかかります...メカニズムを計画する際、ハードウェアおよびソフトウェアシステム全体のセキュリティを考慮してくださいキーを共有する – pedrofb