プロジェクト

全般

プロフィール

設計 #26

Lunatic1998 さんが約1年前に更新

### JWTトークンとは 

 - 認証やアクセス制御についての情報をJSON形式で記述し、一定の手順で符号化した「トークン」(token)を生成することができる。 
   - ヘッダー 
       - トークンや署名の形式についての情報を格納する部分。 
   - ペイロード 
       - 伝達する情報の本体で、システムが必要とするデータを格納する部分。 
   - 署名 
      - 署名はトークンの作成者の本人証明に用いるデータで、ヘッダーとペイロードを符号化したものを連結し、本人の秘密鍵とともに署名アルゴリズムで計算することで生成される。 

 - ログイン時に認可サーバーで発行されるJWTトークンは、以下の情報が含まれている。 
    - いわゆるペイロードの部分。セッションIDよりも個人情報に関わるデータが含まれているため、セキュリティ的に厳密に扱う必要がある。 

 ``` 
 resp.id_token 
 => {"at_hash"=>"dLNdgBOV1k1XMSPebpR38g", 
  "sub"=>"fa5c592d-272b-4b00-8d4d-9aed59f976b1", 
  "email_verified"=>true, 
  "iss"=>"https://cognito-idp.ap-northeast-1.amazonaws.com/ap-northeast-1_xxxxxxxxx", 
  "cognito:username"=>, 
  "origin_jti"=>"c6e7f860-43fe-4a7a-89a1-7378d83a19dd", 
  "aud"=>"49a51b1535i4toruvvqjij1jg3", 
  "event_id"=>"a30e47e3-61d3-4aaf-9626-04ae5ca79615", 
  "token_use"=>"id", 
  "auth_time"=>1693176300, 
  "exp"=>1693179900, 
  "iat"=>1693176300, 
  "jti"=>"50530a03-af44-4d52-acf8-58a4cb9350c5", 
  "email"=> } 
 ``` 

 ### 参考 
 - https://developer.mamezou-tech.com/blogs/2022/12/08/jwt-auth/

戻る