Open2

JWT

ikeponikepon
  • https://jwt.io/

  • こっちが日本語で説明されてる仕様かな?

  • Introduction to JSON Web Tokens

    • いつ使うのか
      • Authorization: 認可
      • Information Exchange: 情報交換
    • 構成
      • xxxxx.yyyyy.zzzzz
        • Header: xxxxx
          • 典型的には2つからなる
            • トークンタイプ: "typ"
            • 署名アルゴリズム: "alg"
        • Payload: yyyyy
          • クレームを含む
            • 一般的にはユーザー情報と追加情報
          • クレームには3つの種類
            • Registered claims: 必須ではないが、以下のようなものがある
              • iss (issuer): JWT の発行者の識別子
              • exp (expiration time): JWT の有効期限
              • sub (subject): JWT の主語となる主体の識別子、JWT発行者内でユニークな値
              • aud (audience): JWT を利用することが想定された主体の識別子一覧
                • オーディエンスクレームの値に自身の識別子が含まれていることを確認し, aud に自身の識別子が含まれない場合はその JWT の処理を拒否しなければならない(MUST)
                • ★ client 側での検証ってことかな?
              • others: https://tools.ietf.org/html/rfc7519#section-4.1
            • Public Claim
              • ★自由に設定できるけど、衝突することがあるからIANA に定義するか、衝突しにくい namespace を含む URI にしてねって感じ
            • Private claims
              • ★ Information Exchange のために通信するお互いで取り決めて使ってねって感じかな
        • Signature: zzzzz
          • エンコードされたヘッダー、エンコードされたペイロード、secrets、ヘッダーで指定したアルゴリズムを使って署名する
          • 改ざん検知目的で使われる