内容へ移動
Cat Paw Software
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
jwt
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
<markdown> # JWT JWT(Json Web Token)は、URLセーフなデータ転送プロトコル、またはそのデータ。 * [RFC 7519: JSON Web Token (JWT)](https://www.rfc-editor.org/rfc/rfc7519) 主にOpenIDによる認証情報、OAuth2のアクセストークンの送受信に利用されるが、任意のデータの送受信に使うことも可能である ## JWTのデータ ### トークン JWTはJSON形式で表現されるデータである。JWTの文脈でJSONオブジェクトをトークンと呼ぶ、 ### クレーム トークンの各データをクレームと呼ぶ。 クレームには任意のキーを使用できるが、以下の特別なフィールドが仕様で定義されている。 |フィールド名|内容| |---|---| |iss|Issuer、トークン発行者| |sub|Subject、トークン識別子、認証情報のユーザIDなどが該当| |aud|Audience、トークンの受け取り手| |exp|Expiration、有効期限、UNIX時間で指定| |nbf|Not Before、トークンが有効になる時刻、UNIX時間で指定| |iat|Issued At、トークンの発行時刻| |jti|JWT ID、トークンごとに一意なID| これらの値はいずれも必須ではないがライブラリでサポートされていることが多い。例えばexpを過ぎていたら不正なトークンとしてエラー扱いするといった処理がライブラリ側で行われる。 ## JOSE Javascript Object Signing and Encryption の略。JWTの署名、暗号化を行う仕組みである ## JWS * [RFC7515 JSON Web Signature (JWS)](https://www.rfc-editor.org/rfc/rfc7515.html) * [RFC7518 JSON Web Algorithms (JWS)](https://www.rfc-editor.org/rfc/rfc7518.html) JWS(JSON Web Signiture)はJWTデータに署名を追加する仕組み、または、そのデータ形式。一般的にJWTと呼ばれた場合これを指すことが多い。 以下のJWSはCompact形式と呼ばれるフォーマットである。これ以外のフォーマットはあまり使われない。 ``` eyJhbGciOiJFUzI1NiJ9.eyJ0ZW1wZXJ0dXJlIjoyMC4yLCJodW1pbml0eSI6NTQuOCwiZHQiOiIyMDIyLTA0LTIwVDEyOjUwWiJ9.sQl6Wq5Tw9leXQ26gZgy4MwLks_snWt9Ol93h0stC6Q046CbiEpzdKU88Rhw1Y3jlwMf0DgplAJxm4ZtvJa9kg ``` BASE64エンコードされたデータをドットで結合したもので以下のような構造になっている ``` ヘッダ.ペイロード.署名 ``` ### ペイロード JWTのデータ本体 ### ヘッダ JOSE Headerと呼ばれる。ヘッダはJSON形式で以下の情報を格納する |フィールド名|内容| |---|---| |typ|Type、タイプ、ほとんどの場合`JWT`なので大体省略される| |cty|Content Type、データ形式、これもほぼ`JWT`なので省略されがち| |alg|Algorithm、署名アルゴリズム| |kid|公開鍵署名の場合、このJWTを署名した公開鍵のID| ### 署名 HMAC、RSA署名、ECDSA署名が利用可能。 ``` +--------------+-------------------------------+--------------------+ | "alg" Param | Digital Signature or MAC | Implementation | | Value | Algorithm | Requirements | +--------------+-------------------------------+--------------------+ | HS256 | HMAC using SHA-256 | Required | | HS384 | HMAC using SHA-384 | Optional | | HS512 | HMAC using SHA-512 | Optional | | RS256 | RSASSA-PKCS1-v1_5 using | Recommended | | | SHA-256 | | | RS384 | RSASSA-PKCS1-v1_5 using | Optional | | | SHA-384 | | | RS512 | RSASSA-PKCS1-v1_5 using | Optional | | | SHA-512 | | | ES256 | ECDSA using P-256 and SHA-256 | Recommended+ | | ES384 | ECDSA using P-384 and SHA-384 | Optional | | ES512 | ECDSA using P-521 and SHA-512 | Optional | | PS256 | RSASSA-PSS using SHA-256 and | Optional | | | MGF1 with SHA-256 | | | PS384 | RSASSA-PSS using SHA-384 and | Optional | | | MGF1 with SHA-384 | | | PS512 | RSASSA-PSS using SHA-512 and | Optional | | | MGF1 with SHA-512 | | | none | No digital signature or MAC | Optional | | | performed | | +--------------+-------------------------------+--------------------+ ``` `none`は署名なし。現在、最もよく使われているのは `RS256`、HMACは受け手と利用者が同じ場合に使うと良い(cookieの値に署名をつけたい場合など) ## JWE JWT暗号化の仕様はRFC7516 JWEで定義されている。 </markdown>
jwt.txt
· 最終更新: 2024/07/15 11:13 by
nullpon
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ