Skip to main content
Auth0 が発行するすべての は、JSON Web Signatures (JWSs) です。つまり、暗号化されているのではなく、署名されています。JWS は、JSON ベースのデータ構造を使用して、 または Message Authentication Codes (MAC) で保護されたコンテンツを表します。 正しい形式の JWT は、ドット (.) で区切られた 3 つの Base64url エンコード文字列を連結したもので構成されます。
  • JOSEヘッダー: トークンの種類と、その内容を保護するために使用される暗号 algorithms に関するメタデータが含まれます。
  • JWSペイロード (クレーム のセット) : ユーザーの識別情報や、許可されている権限など、検証可能なセキュリティ上の表明が含まれます。
  • JWS 署名: トークンが信頼でき、改ざんされていないことを検証するために使用されます。JWT を使用する場合は、保存して利用する前に 必ず 署名を確認 してください。
JWT は通常、次のような形式です。
JSON Web Token
JWT の中身を自分で確認するには、JWT.io Debugger を使用してください。これを使うと、JWT が正しい形式かどうかをすばやく確認し、さまざまな クレーム の値を手動で調べられます。
JWT Debugger

JOSEヘッダー

暗号処理の内容や使用されるパラメータを記述したJSONオブジェクトです。JOSE (JSON Object Signing and Encryption) ヘッダーは、通常、名前と値のペアからなる一連のヘッダーパラメータで構成されており、使用するハッシュアルゴリズム (例: HMAC SHA256 または RSA) や JWT の種類などの情報が含まれます。

JWSペイロード

ペイロードには、エンティティ (通常はユーザー) に関する記述と、クレームと呼ばれる追加属性が含まれます。この例でのエンティティはユーザーです。
JWTクレームを扱う際は、クレームの種類や命名規則の違いを理解しておく必要があります。

JWS 署名

署名は、JWT の送信者が正当な送信者本人であることを検証し、メッセージが途中で改ざんされていないことを確認するために使用されます。 署名を作成するには、Base64 エンコードされたヘッダーとペイロードにシークレットを加え、ヘッダーで指定されたアルゴリズムを使って署名します。 たとえば、HMAC SHA256 アルゴリズムを使用してトークンの署名を作成する場合は、次のようにします。

詳細情報