JWT(JSON Webトークン)
JSON Web Token
情報をコンパクトに受け渡すための、JSON形式で作られたデジタルなトークン形式。
簡単に説明すると
JWTは、Webサービスでユーザーがログイン中であることを証明するために使われるデータ形式だよ。 例えば、スマホアプリで1度ログインした後に、別の画面を開いてもパスワードを入れ直さなくて済むのは、このJWTが「ログイン済みの本人」という証明書の役割をして通信に混ざっているからなんだ。 デジタルなハンコで保護されているから、中身を勝手に書き換えられてもすぐにバレる仕組みになっているよ。
名前のヒミツ
JWT(ジョット)は、JSON形式のデータをWeb上で安全にやり取りするためのデータ形式だよ。読み方は「ジョット」と「ジェーダブリューティー」の2通りがあり、公式仕様(RFC 7519)では英単語の jot と同じ「ジョット」を推奨しているよ。
くわしく見てみよう!
JWTとは、異なるシステムの間で情報を安全に、かつコンパクトにやり取りするために考案されたデータ形式のことだよ。
JSON形式の情報を安全に運ぶための入れ物のような役割を果たすんだ。
一般的に利用されている署名付きの形式では、データを「ヘッダー」「ペイロード」「署名」という3つのパーツに分け、それぞれをドットでつなげた構成になっているよ。
ヘッダーには署名の方式、ペイロードにはユーザー情報などの実データ、そして署名にはデータが改ざんされていないことを証明するための情報が格納されているんだ。
最大の特徴は、サーバー側で個々のユーザーの状態を常に保持していなくても、このトークンを受け取るだけで正しいユーザーかどうかを判断できる点だよ。
これにより、多数のサーバーをまたいで運用される大規模なサービスでも、効率よくログイン状態を管理できるようになるんだ。
ただし、この標準的な署名付きの形式では、データの中身自体は暗号化されておらず、専用の道具を使えば誰でも内容を読むことができるよ。
そのため、パスワードのような誰にも見られてはいけない秘密の情報をそのまま含めないようにするのが、利用上の大切なルールなんだ。