0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JWTについて理解する

Last updated at Posted at 2023-09-23

目次

  1. 背景
  2. JWTとは
  3. エンコードの中でもBase64URLエンコードを使う理由

1. 背景

業務でJWTについて扱っている為です。

2. JWTとは

  • JSON Web Tokenの略
  • JSONデータをURLセーフにする方法を規定したもの
  • JSONデータをコンパクトにする方法を規定したもの

RFCではJWTの仕様として次のように定義されています。

  • URLセーフにする方法
    JSONデータをBASE64URLエンコードする
  • コンパクトにする方法
    よく使われるデータ項目の名称を省略形にすることでJSONのキー名を短くする

JWTの仕様として省略名が予約されています

省略名 項目名 説明
iss issuer JWTの発行者
sub subject ユーザの識別子などJWTの主体
aud audience JWTの受信者
exp expiration time JWTの有効期限
nbf Not Before JWTの有効開始日時
iat Issued At JWTの発行日時
jti JWT ID JWTの一意な識別子

クレーム(Claim)

JSONのデータ項目といっていたJSONのキーと値のペアはJWTでは「クレーム(Claim)」と言います。

{
  "iss": "io.exact.sample.jwt",
  "sub": "saumple",
  "exp": 1670085336 
}
  • 上の例ですと、"exp": 1670085336 はクレーム、expはクレーム名、1670085336はクレーム値と言います。
  • 先ほど挙げたissやsubなどJWTで予約されているクレーム名は「登録クレーム名(Registered Claim Names)」と呼ばれます。しかし、この登録クレーム名の使用は任意です。
  • 任意のクレームをJWTに含めることも可能です。

3.Base64URLエンコードを使う理由

Base64

  • 64個のテキスト文字からなるBase64セットのテキスト文字を使用してバイナリデータを表現し、誤って解釈することはないです。
  • 非常に一般的なエンコーディングフォーマットであり、ほとんどのプログラミング言語で簡単に使用できます。

Base64url

URLセーフなので、トークンをURLで送信することができます。

参考

参考になる記事を書いて下さった皆様に感謝致します!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?