JWTとは?
JWTとは?
JWT
は、Json Web Token
の略であり、クライアント−サーバ、サービス−サービス通信においてAuthorization
が採用するトークンベースの認証方式で使用されるトークンである.JWT構造
JWT
トンはHeader
、Payload
、Signature
の3つの部分から構成されている.Header
Headerは、トークンタイプおよび署名を生成するためのアルゴリズムタイプに関する情報を含む.Headerに格納された情報は、JWTに含まれる
signature
として符号化される.{
"typ":"JWT",
"alg":"HS256"
}
Payload
PayloadにはTokenに関する主な情報が含まれています.Payloadに格納されている情報は
base64
と呼ばれています.クレムには3種類ある.Registered Claim Names
登録クレームは、予め定義されたクレームに相当します.代表的なものはiss(発行者)、sub(subject)、exp(満期時間)などである.
Public Claim Names
これはユーザ定義の主張であり,公開用の情報が含まれている.競合を防止するために、uri形式の鍵が一般的に使用されます.
Private Claim Names
トークンの発行者が任意に指定した情報で、ほとんどの一般情報はプライベートクレームに格納されます.
{
"username":"BlueWhaleKo",
}
Payloadが格納する情報は、JWTに含まれるClaim
として符号化される.Signature
これは、
base64
およびヘッダ宣言ハッシュアルゴリズムを使用して、JWTヘッダおよび負荷に格納された情報を暗号化することに相当する.これにより、ヘッダと負荷に偽の改ざんが発生したか否かを判断することができる.JWTプロパティ
モバイル環境
移動環境では、Cookie容器を単独で使用する必要があるCookieベースの認証方式と比較して、比較的簡単に適用することができる.
Self-Contained
private key
は、クライアントに関する様々な情報をJWT
に格納し、base 64に符号化して送信する.payload
トークン自体には、ユーザの情報が含まれており、サーバ管理の負担が軽減されます.Stateless
JWT
認証方式の最大の特徴の一つ.既存の
JWT
Webサーバでは、クライアントがサーバにログインすると、サーバはログイン情報をセッションに保存します.セッション情報を格納する方法は様々であるが、通常はセッションを管理する負担をもたらす.逆に、サーバがトークンを発行する際に使用する
stateful
を使用して、内蔵のprivate key
を検証し、トークンの有効性と偽改ざんを確認する.サーバが発行するトークンはクライアントによって管理され、サーバがセッション情報を維持してユーザー認証を行う負担を軽減します.したがって、サービスは水平に拡張できます.References
[JWT]トークンに基づく認証の説明
[JWT]JSON Web Tokenの概要と構造
How To Validate a JWT Token
Reference
この問題について(JWTとは?), 我々は、より多くの情報をここで見つけました https://velog.io/@koo8624/JWT란テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol