JavaでRESTfulサービスをコーディングしてきました。これは私がこれまで理解してきたことです(間違っている場合は修正してください):
トークン認証は、JSON Web Tokens(JWT)を使用して行われます。3つの部分:ヘッダー、ペイロード、および秘密(クライアントとサーバー間で共有)。
私はこの概念を理解し、JWTについて読んでいる間JSON Web Signature(JWS)につまずいた。
JWSは、ヘッダー、ペイロード、および共有シークレットを持つJWTに似たエンコードされたエンティティでもあります。
質問:2つの概念、つまりJWTとJWSの違いは何ですか?技術的に似ている場合、実装の違いは何ですか?
トークンベースの認証を使用するのはこれが初めてなので、コンセプトを完全に誤解している可能性があります。
追伸 このWebサイト の例を参照しながら、JWSについて学びました。
JWTは実際にはses仕様からの署名用のJWS:
JSON Web Token(JWT)は、2者間で転送されるクレームを表すコンパクトでURLセーフな手段です。 JWTのクレームは、JSON Web署名(JWS)構造のペイロードまたはJSON Web暗号化(JWE)構造のプレーンテキストとして使用されるJavaScript Object Notation(JSON)オブジェクトとしてエンコードされます。デジタル署名、MAC、および/または暗号化。
したがって、JWTは、JSONオブジェクトをペイロードとして持つJWS構造です。 iss
、aud
、exp
など、いくつかのオプションのキー(またはクレーム)が定義されています。
これは、その完全性保護が共有秘密に限定されるだけでなく、公開/秘密キー暗号化も使用できることも意味します。