JWT
/icons/todo.icon調査してみる
playframeworkではsessionにjwtが使われているので詳細に調べる
まとめ
JSON Web Token
ジョット
JSON形式のクレーム(key-value)の集合をJWSもしくはJWEに埋め込んだもの 署名したい→JWS
https://gyazo.com/70c4a839fa2aeccd50bf2a47a6f3072c
暗号化したい→JWE
https://gyazo.com/f055a533666f490d845d7d6ecf5107d1
署名もしたいし暗号化したい→Nested JWT
JWSをJWEでくるむ / JWEをJWSでくるむ
https://gyazo.com/b803594966f8348f1521053d14787073
JWTに含めるべき必須クレームのようなものは定められていない→JWT を利用する個々のアプリケーションが決める
特徴
コンパクト クエリパラメータ、Postパラメータ、HTTP Headerに含むことができる
自己完結 必要な情報全てtokenという形に含めることができる
利用シーン
例えば、サーバは管理者としてログインしたという属性を持つトークンを生成し、クライアントに提供できる
JWTを利用することでクライアントにtokenを保存するだけで、認証を実現することができる。
最終的なToken例
code:JWT
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIb2dlIFB1Ymxpc2hlciIsInN1YiI6IkhvZ2UgVXNlciJ9.zs2WOqs2M-Aah5417-YfoCg6MdUaCsz5qTLCdbO7aEc
ヘッダー.ペイロード.署名
code:jwt
eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhHQ00ifQ
.AAG-Mxcoy3qHgYNZTGC8IzLhTkQOv7Iku5JI_gGm1Ev1GaqlbwdWT5x0rtvNSIxbvGOA
KFoTnPygByBcvXVkD0SnkPotkjXqKXocozG9zT9vaHdDUtth4ySKMs9huVXWqglZTkSA
QvZSpxSU6Gu0ZUB5yuUO2XZEeIwuRiG9F0hlAuQDokNvqWS69NfDxoiRN6Qp7Ud67LF8
FH75JA_eSuJsrW1JWWcB8bHQgrbB0WU-z5IVbyN7VPGNm1GGdENSh963iRTb0DlvADF-
KbU5yIHRomvJxEjOQDS2LYyswy6zAv7rrJeTO4dzgWYo7lcf07F19U8mGFfiimFXD5Lw
.HtGmVwOnLfsVZmp1
.cHUwotN3V05o4sHRhA
.NGmNkNr5QyuVYGh93zknlA
ヘッダー.暗号化されたキー.初期ベクター.暗号文.認証タグ
https://gyazo.com/4878f44fbc0cd8a92e9793a3ee680d39