JSON Web Token
    • PDF

    JSON Web Token

    • PDF

    Article Summary

    Classic/VPC環境で利用できます。

    認証に必要な JSON Web Token(JWT)認証方式を説明します。

    Header(ヘッダ)

    Headerの構成は次の通りです。

    • alg: 署名(signature)作成時に使用したハッシュアルゴリズム
      • HS256サポート(HMAC SHA256)
    • typ: トークンタイプ
      • JWT形式のみサポート

    Headerの使用例は次の通りです。

    {
        "alg": "HS256",
         "typ": "JWT"
    }
    

    Payload(内容)

    Payloadの構成は次の通りです。

    • path: トークンの適用対象 URLパス
      • 必須入力項目
      • * 使用可能
    • exp: トークン有効期限切れ時間(expiration)
      • オプション値
      • NumericDate形式 例) unix timestamp
    • nbf: トークン有効時間(Not Before)
      • オプション値
      • NumericDate形式 例) unix timestamp
    • cip: クライアント IPアドレス対象
      • オプション値
      • CIDR使用可能

    Payloadの使用例は次の通りです。

    {
        "path": "/foo/bar/example.mp4", 
        "exp": 1672455600, 
        "nbf": 1669258800, 
        "cip": "192.168.200.0/24"
    }
    

    Signature(署名)

    Signatureを作成する方法は次の通りです。

    1. Headerと Payloadをそれぞれ Base64 URLでエンコードします。

      # as-is
      { 
          "alg": "HS256", 
          "typ": "JWT" 
      } 
      
      # to-be 
      {"alg":"HS256","typ":"JWT"} 
      
      # Base64 URLエンコード 
      eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
      
      参考

      Base64 URLでエンコードする過程で JSONの空白やエンター値は削除されます。

    2. ピリオド(.)を区切り文字として使用してエンコードされた Headerと Payloadをつなげます。

    3. つなげた文字列を Secure keyと一緒にアルゴリズム(HMAC SHA256)でハッシュ値を抽出します。

    参考

    Signatureの作成と検証を https://jwt.io/でテストできます。
    globaledge-jwt-1

    使用形式

    使用形式と参照できる例は次の通りです。

    • Query Token
    • JWTトークンをクエリ文字列に使用してリクエスト可能
    • 使用例
      # Query形式 
      https://example.com/foo/bar/example.mp4?<JWTトークン名>=<JWT token> 
      
      # 例
      https://example.com/foo/bar/example.mp4?globaledgejwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXRoIjoiL2Zvby9iYXIvZXhhbXBsZS5tcDQiLCJleHAiOjE2NzI0NTU2MDAsIm5iZiI6MTY2OTI1ODgwMCwiY2lwIjoiMTkyLjE2OC4yMDAuMC8yNCJ9.65cikBSh0rsrH1-2Q87HSK7v3-KExYe-B1wpaTZTQ2o
      

    この記事は役に立ちましたか?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.