XCode 16.2 日本語化計画
あなたの秘密鍵 (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 を生成するには:
署名された JWT を各 API 要求の認証ヘッダーに含めて下さい。新しい要求ごとに新しい署名された JWT を生成します。
App Store Server API または 外部での購入サーバ API (External Purchase Server API) と通信するための JWT を作成するには、ヘッダで以下のフィールドと値を使用して下さい。
ヘッダフィールド | 値 |
alg - 暗号アルゴリズム | ES256 すべての JWT はES256 暗号で署名されていなければなりません |
kid - キー ID | App Store Connect からの秘密鍵 ID (例: 2X9R4HXF34) |
typ - トークン型 | JWT |
あなたのキー ID を取得するには、App Store Connect にログインして App Store Connect からキー ID をコピーし、以下の手順を実行します。
API キーが複数ある場合は、JWT の署名に使用する秘密キーのキー ID をコピーします。
JWT ヘッダの例を以下に示します。
{ "alg": "ES256", "kid": "2X9R4HXF34", "typ": "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 にログインし、以下の手順を実行します。
JWT ペイロードの例を以下に示します。
{ "iss": "57246542-96fe-1a63e053-0824d011072a", "iat": 1623085200, "exp": 1623086400, "aud": "appstoreconnect-v1", "bid": "com.example.testbundleid" }
JWT は iat フィールドにあなたが指定した時間から最大 1 時間有効ですが、exp フィールドにそれより早い時間を設定した場合は、それより早く期限切れになることに注意してください。
ヘッダであなたが指定したキー ID に関連した秘密キーを使用して、ES256 暗号を使用してトークンに署名します。
JWT トークンの作成と署名には、オンラインで利用できるさまざまなオープンソースライブラリがあります。詳細については、JWT.io を参照してください。App Store Server API の呼び出しの場合は、代わりに App Store Server Library を使用して JWT を作成することを検討してください。詳細については、App Store サーバー ライブラリを使用して実装を簡素化する を参照してください。
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 の抽出などを行います。
JSON Web トークンに署名し、API 要求を承認するために使用する API キーを作成します。
App Store Server API エンドポイントに適用されるレート制限を認識し、あなたのコード内で処理します。
App Store Server API の新機能と更新について説明します。