[TIL]JWT
JWT
超味Tangの薬...
いいえ.
JSONWeb Tokenの略.
電子署名のURL-safeのJSON
JWTが現れる背景
前回のリリースで述べたCookieとセッション...
この2つには、次のような欠点があります.
Cookieと会話の欠点
-ユーザーが多ければ多いほど、
欠点は、リクエストのたびにセッション・リポジトリをクエリーすることです.最大の欠点は、要求が行われるたびに、セッションIDがセッションリポジトリにクエリーされることです.
データベース・アクセス・ロジックの再実行が必要
このために現れたのはJWTです。
その名の通り、認証に必要な情報をTokenに暗号化して使用するコインです.
基本的な認証構造はCookieとあまり変わらないが,署名のトークンを強調している.
公開鍵と秘密鍵を使用してタグに署名します.
すなわち,秘密鍵を持つサーバは,署名されたトークンが正常なトークンであるかどうかを確認することができる.
このような構成により、認証情報を含んで、安全に認証を行うことができる.
JWT構造
各元素は
.
からなり、Header.Payload.Signature
こんな風に育つ.
トークンタイプとハッシュ暗号化アルゴリズムからなる.
{
"typ": "JWT",
"alg": "HS256"
}
type:タグのタイプを指定します.alg:署名ハッシュアルゴリズムを指定します.ハッシュアルゴリズムは、通常、HMAC−SHA 256またはRSAを使用する.
コインのクレーム情報が含まれています.Payloadの情報はクレームと呼ばれ、JSON(name/value)形式のペアで構成され、トークンには複数のクレームが含まれることができます.
{
"iss": "dnjscksdn98.com",
"exp": "1485270000000",
"https://dnjscksdn98.com/jwt_claims/is_admin": true,
"userId": "dnjscksdn98",
"username": "alex"
}
署名は、トークンを符号化または検証する際に使用される唯一のパスワードです.
署名する.
1)上記で作成したヘッダ(Header)とペイロード(Payload)の値をそれぞれBASE 64として符号化する.
2)符号化された値を秘密鍵でタイトルに定義されたアルゴリズムでハッシュする
3)この値をBASE 64に再符号化する.
JWTプロパティ
電子署名はJSONの改ざんをチェックできます.
JWTは、JSONデータ構造で属性情報を表すタグであり、RFC 7519規格に指定されている.
JWTがサーバとクライアントとの間で情報交換を行う場合,Http要求ヘッダにJSONトークンを加え,サーバはヘッダに含まれるJWT情報により認証を行う.
このとき使用されるJSONデータはURLに含まれる文字のみからなり、URL-Safeとなる.
JWTは、HMACアルゴリズムを使用して秘密鍵またはRSAを使用して公開鍵/秘密鍵ペアを使用して署名することができる.
JWTのメリット
JWTの欠点
Reference
[JWT]JSON Web Tokenの概要と構造
JWTについて(Json Web Token)
JSON WEB TOKENとは?
Reference
この問題について([TIL]JWT), 我々は、より多くの情報をここで見つけました https://velog.io/@leo3179/TILJWTテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol