記事


API 要求用の JSON Web トークンの生成


あなたの秘密鍵 (private key) で署名された JSON Web トークンを作成し、App Store サーバ API および外部購入サーバ API への要求を承認します。





概観


JSON Web Token (JWT) は、情報を安全に送信する方法を定義するオープンスタンダード ( RFC 7519) です。App Store Server API外部での購入サーバ API (External Purchase Server API) では、API への各要求を承認するために JWT が必要です。トークンを作成し、App Store Connect からダウンロードした秘密鍵で署名して下さい。キーの作成の詳細については、API 要求を承認するため API キーの作成 を参照してください。


署名された JWT を生成するには:


  1. JWT ヘッダを作成します。

  2. JWT ペイロードを作成します。

  3. JWT に署名して下さい。

署名された JWT を各 API 要求の認証ヘッダーに含めて下さい。新しい要求ごとに新しい署名された JWT を生成します。


ヒント

App Store サーバライブラリは、API クライアントを提供し、App Store Server API で使用するための JWT を作成します。詳細については、App Store サーバー ライブラリを使用して実装を簡素化する を参照してください。


JWT ヘッダの作成


App Store Server API または 外部での購入サーバ API (External Purchase Server API) と通信するための JWT を作成するには、ヘッダで以下のフィールドと値を使用して下さい。


ヘッダフィールド
alg - 暗号アルゴリズムES256

すべての JWT はES256 暗号で署名されていなければなりません
kid - キー IDApp Store Connect からの秘密鍵 ID (例: 2X9R4HXF34)
typ - トークン型JWT


あなたのキー ID を取得するには、App Store Connect にログインして App Store Connect からキー ID をコピーし、以下の手順を実行します。


  1. [ユーザーとアクセス] を選択し、[キー] タブを選択します。

  2. キー ID は、[アクティブ] 見出しの下の列に表示されます。キー ID の横にカーソルを置くと、[キー ID のコピー] リンクが表示されます。

  3. [キー ID のコピー] をクリックします。

API キーが複数ある場合は、JWT の署名に使用する秘密キーのキー ID をコピーします。


JWT ヘッダの例を以下に示します。


{
"alg": "ES256",
"kid": "2X9R4HXF34",
"typ": "JWT"
}


JWT ペイロードの作成


JWT ペイロードには、発行者 ID や有効期限など、App Store Server API および 外部での購入サーバ API (External Purchase Server API) に固有の情報が含まれています。これらの値を JWT ペイロードに含めるには、以下のフィールド (JWT クレームとも呼ばれます) を使用します。


ペイロード
フィールド
iss - 発行者App Store Connect のキーページにある発行者 ID (例: “57246542-96fe-1a63-e053-0824d011072a")
iat - 発行時刻トークンを発行した時刻 (UNIX 時間、秒単位) (例: 1623085200)
exp - 有効期限トークンの有効期限 (UNIX 時間、秒単位)。iat の時刻から 60 分以上経過して有効期限が切れるトークンは無効です (例: 1623086400)
aud - 聴取者appstoreconnect-v1
bid - バンドル IDあなたのアプリのバンドル ID (例: “com.example.testbundleid”)


発行者 ID を取得するには、App Store Connect にログインし、以下の手順を実行します。


  1. [ユーザーとアクセス] を選択し、[キー] タブを選択します。

  2. 発行者 ID がページの上部近くに表示されます。発行者 ID をコピーするには、ID の横にある [コピー] をクリックします。

JWT ペイロードの例を以下に示します。


{
  "iss": "57246542-96fe-1a63e053-0824d011072a",
  "iat": 1623085200,
  "exp": 1623086400,
  "aud": "appstoreconnect-v1",
  "bid": "com.example.testbundleid"
}

JWT は iat フィールドにあなたが指定した時間から最大 1 時間有効ですが、exp フィールドにそれより早い時間を設定した場合は、それより早く期限切れになることに注意してください。



JWT に署名


ヘッダであなたが指定したキー ID に関連した秘密キーを使用して、ES256 暗号を使用してトークンに署名します。


JWT トークンの作成と署名には、オンラインで利用できるさまざまなオープンソースライブラリがあります。詳細については、JWT.io を参照してください。App Store Server API の呼び出しの場合は、代わりに App Store Server Library を使用して JWT を作成することを検討してください。詳細については、App Store サーバー ライブラリを使用して実装を簡素化する を参照してください。


要求の認証ヘッダーに JWT を含める


JWT を作成して署名したら、それを要求の認証ヘッダーに bearer token (担ぐトークン) として提供します。


App Store Server API の以下の例は、担ぐトークンを使用する curl コマンドを示しています。テキスト [signed token] を署名済み JWT 自体の値に置き換え、{transactionId} をあなたの顧客の取引 ID に置き換えて下さい。


curl -v -H 'Authorization: Bearer [signed token]'
"https://api.storekit.itunes.apple.com/inApps/v1/subscriptions/{transactionId}"




以下も見よ


要点


App Store サーバー ライブラリを使用して実装を簡素化する

Apple のオープンソースライブラリを使用して JSON Web Token (JWT) を作成し、あなたの呼び出しの承認、取引の検証、領収書からの取引 ID の抽出などを行います。


API 要求を承認するため API キーの作成

JSON Web トークンに署名し、API 要求を承認するために使用する API キーを作成します。


レート制限の識別

App Store Server API エンドポイントに適用されるレート制限を認識し、あなたのコード内で処理します。


App Store サーバ API の変更履歴

App Store Server API の新機能と更新について説明します。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ