私はJWTシステムと単純なトークンベースのシステムeliminates token lookups in a databaseを持っていることを読んだ。しかし、私はそれがどのように可能かは分かりません。署名にHMACを使用する場合、サーバーは署名を検証するために各クライアントの秘密鍵を検索する必要はありませんか?または、すべてのクライアントが同じ秘密鍵を使用していますか? (非常に安全でないように聞こえる)。非対称アルゴリズムを使用している場合でも、署名を検証するために鍵の1つを検索する必要はありませんか?JWTはどのような要求に対してもデータベースルックアップの必要性をどのように排除しますか?
0
A
答えて
0
すべてのクライアントに同じ秘密鍵を使用できます。安全です!クライアントはあなたの鍵を決して見ません。 JWTが行うことができるのは、ペイロードが秘密鍵を使って署名されていることを確認することです。秘密を保持している限り、あなただけがペイロードに署名できたことがわかります。
1
通常、サーバーではユーザーを認証するための資格情報(ユーザー&のパスワード)が必要です。認証に成功すると、サーバは、クライアントではなくサーバの秘密鍵で署名されたJWTを発行します。。
署名はコンテンツを保護し、署名者を識別します。ペイロードまたは署名への変更は、署名を検証するサーバによって検出され、JWTを拒絶する。したがって、サーバは、ペイロード内の例示的なユーザID sub
、exp
の認証に必要な特許請求の範囲、及びusername
、email
または認可roles
ような関心のある他の特許請求の範囲を含むことができるJWT
サーバに含まれるデータに依存することができます。 What to store in a JWT?を参照してください。
{
"sub": "joe",
"iat": 1300819370,
"exp": 1300819380,
"email": "[email protected]",
"roles":["admin","finaluser"]
}
署名の検証後に、サーバは直接含まれ、特許請求の範囲の代わりにクエリデータベースを使用することができます。
対称鍵(HMAC)では、署名と検証が同じ鍵で行われます。非対称鍵ペア(RSA)は、秘密鍵と公開鍵で構成されます。署名は、秘密鍵と公開との検証によって行われます。クライアントがJWTを検証する必要がある場合は、非対称キーを使用します。
関連する問題
- 1. どのように複数のインターフェイスの必要性に対処するには?
- 2. storyboardは.nibの必要性を排除しますか?
- 3. どのように私は必要なものScrapyスパイダー
- 4. 私のアンドロイドアプリはどのようなアクセス権を要求していますか?
- 5. どのようにオブジェクトリスト要求
- 6. どのように要求サーブレット
- 7. OAuthアクセストークンはAPI要求に対してどのように機能しますか?
- 8. Spring Webflowはコントローラクラスの必要性を排除できますか?
- 9. JRubyはopensslをロードしました - どのように排除するには?
- 10. BreezeはシングルページアプリケーションでDTOの必要性を排除していますか?
- 11. Jquery/MooTools/PrototypeはGWTの必要性を排除していますか?
- 12. リスト要素の連続した重複をどのように排除しますか?
- 13. Pythonの:どのように私は私が必要なものを詳細に説明しよう弦
- 14. どのようにデータ要求-validate属性
- 15. Ruby on Railsのコントローラクラスにはどのようなものが必要ですか?
- 16. サーブレット要求に対して、X秒のセマンティクスでどのように返答しますか?
- 17. どのようにプレフィックスなしの変数を必要としますか
- 18. どのようにして必要なelse節をリファクタリングできますか?
- 19. JavaがWSDLに対する要求をどのように検証するか?
- 20. どのようにlinq要求に変換できますか?
- 21. オンライン決済にはどのようなセキュリティ対策が必要ですか?
- 22. railsのbutton_toはJSONレスポンスをどのように要求しますか?
- 23. tomcat要求スレッドをどのようにデバッグできますか?
- 24. カスタムクラスから '要求'オブジェクト(または同様のもの)にどのようにアクセスしますか?
- 25. Javaで要求されたフォントに対してどのようなフォントを取得するのですか?
- 26. AzessionにはどのようなLifeStyleが必要ですか?
- 27. boot.propertiesにはどのような情報が必要ですか?
- 28. SharepointにはどのようなCALが必要ですか?
- 29. データコンプレッサーにはどのような数学が必要ですか?
- 30. セッションごとの要求パターンはどのように機能しますか?
クライアントがキーを見たことがない場合、どのようにして自分のJWTメッセージに署名しますか?署名に鍵が必要ないのですか?感謝 – CyberFlower
@CyberFlower全体のポイントは、サーバーが何かを送信したことを確認することです。たとえば、トークンをクッキーに保存することができます。 –