認可コード(JWT形式)
認可コードはイシュアによって生成されたJSON Web Token(JWT)です。これは次に従います RFC 7519 仕様であり、TSHサーバーの識別と完全性の保護を提供します。
JWTは認可管理と識別の伝播に広く使用されています。実装例については次に記載のライブラリを参照してください jwt.io.
JSON Web Tokenはヘッダー、クレーム、署名の三つの部分で構成されます。各部分はbase64urlでエンコードされたJSONオブジェクトです。
パート1: ヘッダー
ヘッダーはトークンに使用される署名アルゴリズムを定義します。
サポートされているフィールドと値は次のとおりです:
typ
静的値 'JWT'
alg
署名計算にRSA 2048を使用しハッシュにSHA256を使用する場合は 'RS256'。
kid
JWTの署名に使用された鍵の識別子。 これはイシュアとTSHサーバー間のオンボーディングプロセスで共有されます。 鍵ローテーションの管理についてはRFUです。基本的に鍵を一意に識別できる限り任意の値にできます。サムプリントやランダム値など可能です。
例:
// S{ "typ": "JWT", "alg": "RS256" }{ "typ": "JWT", "alg": "RS256" }
ヘッダー(base64)は:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9
パート2: クレーム
認可コードには認証済みユーザーに関するクレームが含まれます。またトークンの有効期間も定義します。サポートされているクレームフィールドと値は次のとおりです:
iss
オンボーディングプロセスで提供されたissuerIdの値。
sub
プッシュプロビジョニング要求のために認可されたPANを識別するissuerCardRefIdの値(すでにJWEペイロードで提供されている)であるか、LCM操作のためのtokenIdである必要があります。
aud
「オーディエンス」はトークンリクエスタなので、このフィールドにはtokenRequestorIdが提供されます。値は次のとおり: GOOGLE_PAY / APPLE_PAY / SAMSUNG_PAY
exp
JWTの有効期限日。日付形式はRFC 7519仕様で定義されています。 推奨最大値は現在の日時+5分です。
iat
JWTが発行された時刻。
jti
JWTの一意の識別子。 このフィールドはオプションですが、設定される場合は各リクエストごとに一意でなければなりません。
パート3: 署名
署名はヘッダーとクレームを連結したものに対してRSA-2048とSHA-256を使用してイシュアの秘密鍵で計算されます PRIVATE_KEY。TSHサーバーはオンボーディングプロセスでイシュアによって提供された証明書を使用して署名を検証します。
以下のNode.jsの例はJWTを生成する方法を示しています:
認可コードの例:
最終更新
役に立ちましたか?