JWTは何ですか?
JSONウェブトークン(JWT)オープンスタンダードである(RFC 7519の安全な伝送のために定義された)は、コンパクトな、自己完結型(注:説明またはから)であるJSON構造、アルゴリズムJWTの内容によって送信された情報暗号化と復号化に+キー、情報が信頼できることを確実にします。JWTは、(使用して暗号化された文字列を使用することができHMAC対称アルゴリズムを、または非対称アルゴリズムは、RSAおよびECDSA)
JWTの使用
JWTは、主に2つのシナリオのために使用されます认证(Authorization)
と信息加密传递
JWT構造
JWTは、3つの部分に分かれています。
- ヘッダ
- ペイロード
- 署名
JWTフォームHeader.Payload.Signature
、三つの部分は、JSON形式の暗号化にBase64で作られ、それは言うことです:JWTその下に使用Base64UrlENcode復号限り、誰でも読むことができます!(話すように暗号化された情報の裏)
各部分およびその3つの成分の説明:
ヘッダ
ヘッダーこのセクションでは、使用されるトークンのアルゴリズム(ALG:アルゴリズム、一般HMAC SHA256またはRSA使用)が含まれますとトークンタイプ(トークン型、唯一JWTタイプTYP "typ":"JWT"
前に暗号化されていないように見えますが)
{
"alg": "HS256",
"typ": "JWT"
}
ペイロード
このセクションでは、情報セクションペイロードのトークンが含まれている、この部分が登録されている情報は、公開情報、個人情報を含むことができ、それは多くのカスタマイズを提供します
公式にはお勧め定義されたパラメータの名前(既に登録されている情報)を得ました:
- "ISS"(発行者)請求
- 「サブ」(件名)項
- "AUD"(オーディエンス)項
- 「EXP」(有効期限時間)請求
- 「NBF」(前ではなく)請求
- 「IAT」(発行時)クレーム
- "JTI"(JWT ID)項
公式の例:
{
"sub": "1234567890",
"name": "John Doe",
"admin": true
}
個人情報がカスタマイズされている公開情報は、ありませんできるだけパラメータを維持するために、他の公式との競合に注意すると、プライベートデータを公開していません
JWTの長さが長く、クッキーJWTに保存されている場合には、画期的な4kのクッキーストレージ限界であり、できるだけパラメータを維持するために必要です
署名
署名アルゴリズム、暗号化ヘッダとペイロードBase64Urlを使用した後、(パブリック/プライベート)で定義されたキー部側ヘッダ情報伝送を使用して.
暗号化された署名が得られ、一緒。JWTは、この情報が改ざんされていないことを確認するために使用されます
最後に一緒に一体的に使用され.
て接合、それは長い道のりです。
以下の警告
本論文では、主にトークンストレージ春のセキュリティのOAuth2として惹起JWT以後に使用されています