認証
Understand the authentication methods available for accessing Multiplay Hosting APIs and services.
読み終わるまでの所要時間 2 分最終更新 25日前
認証に使用しなければならない方法は、Multiplay Hosting サービス間で若干異なります。
| サービス | 認証タイプ |
Unity Services ゲートウェイ | サービスアカウントキーを使用した Basic 認証。 |
Unity ゲームゲートウェイ | トークン交換の Bearer トークン。 |
サーバー認証
サーバー認証はサーバーに関連付けられており、Multiplay Hosting マシン上で実行するときに取得できます。 これは Gaming Gateway で使用できます。 Multiplay Hosting トークンは以下の方法で取得できます。- スクリプティング API と Authentication パッケージ
- ローカルリクエストを介して手動で
スクリプティング API と Authentication パッケージ
Authentication パッケージから以下の呼び出しを使用:サービスアカウントを使用して認証することもできます。await ServerAuthenticationService.Instance.SignInFromServerAsync();var token = ServerAuthenticationService.Instance.AccessToken;
await ServerAuthenticationService.Instance.SignInWithServiceAccountAsync(apiKeyIdentifier, apiKeySecret);
サービスアカウント を参照してください。
手動でのトークンの取得
トークンはローカルリクエストを介して手動で取得することもできます。リクエストでは以下の形式のレスポンスが返されます。curl -X GET http://localhost:8086/v4/token
{"token":"<BEARER_TOKEN>", "error":""}
サービスアカウント
すべての API 認証ではサービスアカウントが必要です。 実行しようとするリクエストに適したロールを保持するサービスアカウントがない場合は、サービスアカウントの作成 を参照してください。 サービスアカウントと認証は主に管理権限用です。サーバー認証 は信頼できるゲームサービスの代わりです。Unity Services ゲートウェイ
Unity Services ゲートウェイ (USG) を使用して、管理 API (ビルド、ビルド設定、フリート、他の Multiplay Hosting リソースなどの管理) を認証します。 Basic 認証を使用して、API 呼び出しを認証します。つまり、キー ID と 秘密鍵 をコロンで区切った文字列を作成してから、それを base64 でエンコードします。 多くの HTTP ライブラリおよびツールには、Basic 認証のサポートが組み込まれています。このケースでは、キー ID をユーザー名、秘密鍵 をパスワードとして使用できます。Authorization: Basic <base64(keyID:keySecret)>
例 (ビルドのリスト)
以下に示すのは、ヘッダーを作成し、それをビルドをリストする curl リクエストで使用する例です。| キー ID | 秘密鍵 |
| |
これを以下のように承認ヘッダーで使用できます。OTI1MGY1NzgtOWZmMS00Yjc1LWFmY2MtN2VjYTFlOTRkYjU2OjVkN2YxYTY2LWYyOWQtNDVjOC1hNmFhLWE4NDI0MmFhODA1Zg==
このエンドポイントの詳細と使用されるパラメーター (curl -X GET 'https://services.api.unity.com/multiplay/builds/v1/projects/<projectID>/environments/<environmentID>/builds \--header 'Authorization: Basic OTI1MGY1NzgtOWZmMS00Yjc1LWFmY2MtN2VjYTFlOTRkYjU2OjVkN2YxYTY2LWYyOWQtNDVjOC1hNmFhLWE4NDI0MmFhODA1Zg=='
projectIDenvironmentIDUnity ゲームゲートウェイ
Unity ゲームゲートウェイは、認証に Bearer トークンを使用します。Bearer トークンを取得するには、最初にサービスアカウントを使用して、Unity ゲームゲートウェイに期限付きトークンをリクエストする必要があります。- アクセストークンを取得するためのトークン交換。詳細については、認証 API のドキュメント を参照してください。
- Bearer 認証でアクセストークンを使用して、Unity ゲームゲートウェイエンドポイントにリクエストを行います。
- 推奨される有効な事例はトークンの再利用です。ただし、1 時間後に期限が切れるため、期限が切れる前に更新する必要があります。
例 (割り当てのリスト):
この例では、割り当てをリストするエンドポイントに対してリクエストを行う方法を示します。これは 2 つのステップで構成されます。- アクセストークンを取得するためのトークン交換。詳細については、認証 API のドキュメント を参照してください。
- Bearer 認証でアクセストークンを使用して、割り当てをリストするエンドポイントにリクエストを行います。
レスポンスを受け取ります。# Get the token from the token exchange endpoint##get-the-token-from-the-token-exchange-endpointcurl -X POST 'https://services.api.unity.com/auth/v1/token-exchange?projectId=<projectID>&environmentId=<environmentID>' \--header 'Authorization: Basic <base64(keyID:keySecret)>' \--header 'Content-Type: application/json' \--data-raw '{ "scopes": []}'
Unity ゲームゲートウェイサービスへの後続のリクエストでは、文字列{ "accessToken": <accessToken>}
accessTokenこのエンドポイントの詳細と使用されるパラメーター (# Make the list allocations request##make-the-list-allocations-requestcurl -X GET 'https://multiplay.services.api.unity.com/v1/allocations/projects/<projectID>/environments/<environmentID>/fleets/<fleetID>/allocations \--header 'Authorization: Bearer <accessToken>'
projectIDenvironmentIDfleetID