JSON Web Token

JSON Web Token

URL に使えない文字列を含まない形にエンコードされた改ざん耐性のある JSON コード・・・という認識でよいか。

乱暴に解釈すると内部に情報を持てる SESSION ID と考えてよいか。 Rails が2系になった時に Session 情報を Cookie 内に暗号化して保存する実装になっていたが、それみたいなもんか

  • デコード自体は誰でも可能でその中身を見ることは誰でもできる。
  • エンコードされた単なる JSON コードなので内部に情報を持つことができる。この点が Session 機構と違うところ。
  • エンコードの仕組みによる改ざん検証機能があるので、その中の情報の正当性を信頼できる。

なので、この Token を認証機構として使うことができる。

・・・ということか

この Token 自体が盗まれたらハイジャックされるのは Session と同様に脆弱である。 しかし、受け取るサーバ側に Session 情報を保持しておく機構が必要なくなるので認証するサーバとそれを検証するサーバが別のものでも問題ない(鍵が同じならよい)

この Token 自体は Cookie に入れて持ち回る。

ではクロスドメインにすると(つまり Cookie がドメイン間を跨げない)、認証サーバで認証し JWT 付き URL で検証サーバへリダイレクト検証サーバは、鍵を使って正当性を検証し Token 自体を Cookie に詰め込んで、実際のページにリダイレクト、そこで Cookie から Token を取り出し、要認証の情報をリターンという流れ。

json_web_token.txt · 最終更新: 2017-06-02 15:24 by ore