1. ホーム
  2. rest

JSON Web Signature(JWS)とJSON Web Token(JWT)はどう違うのですか?

2023-09-23 14:06:01

質問

私はJavaでRESTfulサービスをコーディングしています。これは私が今まで理解したことです(私が間違っているならば、私を修正してください)。

トークンの認証は JSON ウェブ トークン (JWT) を使用して行われ、ヘッダー、ペイロード、シークレット (クライアントとサーバーの間で共有) の 3 つの部分から構成されます。

私はこの概念を理解し、偶然にも JSON ウェブ署名 (JWS) を偶然見つけました。

JWSもJWTと同様に、ヘッダ、ペイロード、共有シークレットを持つ符号化されたエンティティである。

質問です。 JWTとJWSという2つのコンセプトの違いは何でしょうか?また、技術的に似ているのであれば、その違いは何ですか? 実装 ?

トークンベースの認証に取り組むのはこれが初めてなので、コンセプトを完全に誤解している可能性があります。

追伸:JWSのことは このサイト .

どのように解決するのですか?

実はJWT を使用しています。 JWSは署名に 仕様の抽象的な :

<ブロッククオート

JSON Web Token (JWT) は、コンパクトでURLセーフな方法で、2つの当事者間で転送されるクレームを表現します。 を表すコンパクトな手段です。JWTのクレームは JavaScript Object Notation (JSON) オブジェクトとしてエンコードされ、JSON ウェブトークンのペイロードとして使用されます。 JSON Web Signature (JWS) 構造体のペイロードとして、または JSON Web Signature (JWS) 構造体の平文として使用されます。 JSON Web Encryption (JWE) 構造体のプレーンテキストとして使用されます。 電子署名やMAC、暗号化を行うことができます。

つまりJWTは、ペイロードとしてJSONオブジェクトを持つJWS構造体です。いくつかのオプションのキー(またはクレーム)は、次のように定義されています。 iss , aud , exp など。

また、その完全性保護は共有秘密だけでなく、公開鍵/秘密鍵暗号も使用できることを意味します。