認証トークンを作成(旧)
概要
グリーンフロー登録をサポートするには、イシュアのバックエンドで認証トークンを作成する必要があります。
このトークンは、イシュアが事前にエンドユーザーを認証し、トークン化リクエストを承認したことを証明します。
イシュアのバックエンドの秘密鍵で認証トークンに署名します。
NFC Wallet バックエンドは、オンボーディング時に提供された対応する公開鍵でトークンを検証します。
イシュアのバックエンドで認証トークンを作成し、次にそれをイシュアアプリケーションに渡します。
認証トークンの要件
認証トークンは JWT(RFC 7519).
JWT は、署名付きクレームをシステム間で送信するための標準形式です。
サポートされるアルゴリズム
NFC Wallet バックエンドは、次の署名アルゴリズムをサポートしています:
RS256PS256PS512
JWT 形式
JWT は、ドットで区切られた 3 つの Base64URL エンコードされた部分で構成されます(.):
ヘッダー
ペイロード
署名
コンパクト形式は次のとおりです:
<header>.<payload>.<signature>
ヘッダー
ヘッダーはトークンの種類と署名アルゴリズムを定義します。
kid が必要です。NFC Wallet バックエンドは、これを使用して正しい公開鍵を選択します。
ヘッダーの例:
署名を生成する前に、ヘッダーを 1 行の Base64URL エンコードにします。
ペイロード
ペイロードは次のクレームをサポートしています:
ペイロードの例:
この例では、 sub は、次の値の SHA-256 ハッシュを含みます。 nonce 値 abdda9cfbe2fdce335290773ba6f56a9c5ebe64910.
署名
イシュアのバックエンドの秘密鍵を使用して、Base64URL エンコードされたヘッダーとペイロードに対して署名を計算します。
NFC Wallet バックエンドは、オンボーディング時に提供された公開鍵で署名を検証します。
最終的な JWT は、エンコードされたヘッダー、ペイロード、署名をドットで区切って連結したものです。
JWT を生成する
RSA 署名とカスタムヘッダーをサポートする任意の JWT ライブラリを使用できます。
この例では jose4j Java ライブラリを使用します:
参照してください 言語別 JWT ライブラリ 対応する実装について。
最終更新
役に立ちましたか?