メインコンテンツまでスキップ

アプリケーションのアクセス制御を管理する

Last updated on September 29, 2026

注釈:本資料はAI技術を用いて翻訳されています。

はじめに​

AccelByte Gaming Services (AGS) は、保護されたプラットフォームリソースへのアクセスを要求するアプリケーション (ゲームサーバーやウェブサイトなど) を Identity and Access Management (IAM) クライアントとして定義します。IAM クライアントを使用すると、ユーザー単位ではなくアプリケーション単位でアクセスできるリソースを制御できます。

本記事では、以下の内容について説明します。

  • IAM クライアントの仕組みと IAM クライアントの種類。
  • AGS Admin Portal または AGS CLI で IAM クライアントとそのパーミッションを作成および設定する方法。
  • AGS SDK または AGS CLI を使用してアプリケーションアクセストークンを取得する方法。

前提条件​

  • AGS Admin Portal へのアクセス権限、および IAM クライアント管理のためのパーミッション。

    AGS Public Cloud

    AGS アカウントで Studio Admin または Game Admin ロールを持っていると、Admin Portal で IAM クライアントを直接管理できます。

  • AGS CLI の手順に従う場合は、AGS CLI をインストールし、上記のパーミッションを持つアカウントでサインインしておく必要があります。インストールとサインインを参照してください。例では Bash シェルを使用しています。

IAM クライアントの仕組み​

AGS の IAM クライアントは、OAuth 2.0 フレームワークを実装しています。 対象となるアプリケーションが特定のゲーム専用のものか、パブリッシャープラットフォームで使用されるものかに応じて、パブリッシャーまたはゲームの名前空間の下でこれを定義できます。

IAM クライアントの種類​

OAuth 2.0 Client Type フレームワークに基づいて、2 つのクライアントタイプがあります。

  • confidential クライアントは、バックエンドで認可を行うために Client ID と Client Secret の組み合わせを必要とします。AGS の admin エンドポイントに対してサーバー間 (S2S) 呼び出しを行う必要がある場合は、confidential クライアントを使用し、通常はクライアントに特定のアクセスパーミッションを定義します。confidential クライアントは、クライアントの ID とシークレットへのアクセス権を持つユーザーを管理できる場合にのみ使用し、権限のないユーザーがサービスにアクセスするのを防ぐようにしてください。
  • public クライアントは、クライアントシークレットを指定しません。必要なのはクライアント ID のみです。public クライアントは、ユーザーが自分のユーザーアカウントでログインする必要があり、AGS の public エンドポイントへのクライアントからサーバーへの呼び出しのみを必要とするアプリケーションに最適です。この場合、アクセスパーミッションはロールを介してユーザーのアカウントから取得されます。

最もよく使用される IAM クライアント​

以下は、最もよく使用される IAM クライアントのアーキタイプです。

  • ゲームクライアント: ほとんどの場合、ゲームクライアント用の IAM クライアントは Public として設定します。
  • 専用ゲームサーバー: 専用サーバー用の IAM クライアントは Public または Confidential として設定します。ただし、専用サーバーがユーザーとしてログインしない場合は、クライアントにパーミッションを割り当てる必要があります。これが最も一般的なケースです。
  • 専用サーバーアップローダー: 専用サーバービルドをアップロードするための IAM クライアントです。アップローダーへのアクセスは通常厳しく管理されているため、これらのタイプのクライアントは Confidential として指定することを推奨します。

IAM クライアントを管理する​

このセクションでは、IAM クライアントを作成および編集し、そのパーミッションを管理する方法について説明します。

IAM クライアントを作成する​

  1. AGS Admin Portal で、対象の名前空間に移動します。

  2. サイドバーで、Foundations > Identity & Access > IAM Clients を選択します。

  3. IAM Clients ページで、Create New をクリックします。What is this client for? ウィンドウが表示されます。

    Image shows the IAM Clients page with the Create New button

  4. クライアントの目的に合ったテンプレートを選択し、Continue をクリックします。テンプレートによって、クライアントタイプ、デフォルトのクライアント名、Redirect URI が設定されます。一部のテンプレートでは、クライアントに必要なパーミッションも事前に選択されます。

    Image shows the What is this client for window with the IAM client templates

    TemplateClient type用途事前選択されるパーミッション
    Player Sign-inPublicプレイヤーが自分のアカウントでサインインするゲーム、ランチャー、または Web アプリ。なし
    Dedicated ServerConfidentialAGS API を直接呼び出すサーバー間のゲームプレイサービス。Matchmaking のバックフィルと Session のゲームセッション
    Build and Deploy ToolConfidentialビルドを公開したりデプロイタスクを実行したりする CI/CD またはアップロードツール。AMS 専用サーバー、専用サーバーツールキット、ウォッチドッグ
    Trusted Backend ToolConfidentialconfidential な AGS アクセスを必要とする信頼済みバックエンドまたは内部ツール。なし
    Custom任意自分で設定したいクライアント。なし
    注記

    Dedicated Server および Build and Deploy Tool テンプレートは、名前空間に Multiplayer パッケージがある場合にのみ表示されます。

    New IAM Client ページが表示されます。

  5. Custom を選択した場合は、Client Type として Public または Confidential を選択します。詳細については、IAM クライアントの種類を参照してください。その他のテンプレートを選択した場合は、テンプレートによってクライアントタイプが設定されます。

    Image shows the Client Type section of the New IAM Client page

  6. Basic Info セクションで、以下の情報を入力します。

    • Client Name: クライアントの名前を入力します。AGS は、ユーザー向けのフォームやドキュメントでこの名前を使用して IAM クライアントを識別します。
    • Secret (confidential クライアントのみ): これはクライアントのパスワードとして機能します。推奨形式に従って独自のシークレットを入力するか、Generate をクリックして AGS に生成させます。
    • Description (オプション): IAM クライアントの機能を説明します。

    Image shows the Basic Info section with the Client Name, Secret, and Description fields

  7. Client Settings セクションで、以下の情報を入力します。

    • Redirect URI: ユーザーの認可後に AGS がユーザーをリダイレクトする URI です。以下のいずれかを選択します。

      • Localhost: Web ベースでないクライアント (ゲームサーバー、ゲームクライアント、サーバーアップローダーなど) の場合。URI が http://127.0.0.1 に設定されます。アプリがポートで待ち受ける場合にのみ、ポートを入力します。
      • Custom URL: Web ベースのクライアント (ウェブサイトやランチャーなど) の場合。http:// または https:// を含む完全な URL を入力します。
      ヒント

      Add More をクリックすると、複数の URI を追加できます。

    • Platform (public クライアントのみ、オプション): SDK クライアントが実行されるサードパーティプラットフォームを選択します。クライアントをサードパーティプラットフォームにバインドしない場合は、空白のままにしてください。

      注記

      AGS は、このプラットフォーム情報をクロスプラットフォーム機能 (クロスプラットフォームの仮想通貨やウォレットなど) に使用します。

    Image shows the Client Settings section with the Redirect URI and Platform fields

  8. (オプション) Advanced Configurations セクションで Show configurations をクリックし、IAM クライアントのデフォルトの動作を上書きします。

    • Scope: OAuth 2.0 のメカニズムで、IAM クライアントがアクセスできるリソースを制限します。詳細については、OAuth 2.0 のドキュメントを参照してください。以下のいずれかを選択します。

    • Target Audience (オプション): このクライアントのトークンを、特定のバックエンドサービスでのみ使用できるように制限します。ドロップダウンの各エントリは、Base URI によって対象サービスを表します。

      注記

      これは、クライアントまたはユーザーのパーミッションを確認する前に、バックエンドサービスが接続の試行を素早く拒否できるようにする許可リストとして機能します。IAM クライアントがサービスエンドポイントへのアクセスを試みると、サービスはまずクライアントの Target Audience リストを確認します。サービスの URI が Target Audience フィールド内のいずれかのクライアントの Base URI と一致しない場合、システムは接続の試行を拒否します。クライアントが Target Audience チェックに合格した場合、またはクライアントの Target Audience フィールドが空の場合、サービスはパーミッションやスコープの確認など、次の認証ステップに進みます。

    • Base URI (オプション。Target Audience と併用): このクライアントを使用するアプリケーションのベース URI です。これにより、トークンが正しいアプリ向けであることを確実にできます。

    • Override Expiration Time: このトグルをオンにすると、デフォルトの Access Token と Refresh Token の有効期限を上書きし、独自の値を設定できます。アクセストークンは 1 秒から 24 時間、リフレッシュトークンは 1 分から 30 日の範囲で設定する必要があります。

    Image shows the Advanced Configurations section with the Scope, Target Audience, Base URI, and Override Expiration Time fields

  9. (confidential クライアントのみ) Permissions セクションで、クライアントに追加したいパーミッションを見つけます。各パーミッションについて、そのパーミッションに持たせたいアクション (Create、Read、Update、Delete) のチェックボックスをオンにします。グループ内のすべてのパーミッションを一度に選択するには、グループ名の横にあるチェックボックスをオンにします。パーミッションをすばやく見つけるには、検索フィールドを使用するか、Show selected only を選択します。ここでカスタムパーミッションを追加することもできます。IAM クライアントのパーミッションを追加・編集するを参照してください。

    Image shows the Permissions section with the search field, Show selected only checkbox, and permission groups

    この手順をスキップして、後でパーミッションを追加することもできます。

  10. クライアントを作成します。

    • public クライアントの場合は、Create をクリックします。

    • confidential クライアントの場合は、Continue をクリックします。Save your client secret ウィンドウが表示されます。Copy secret をクリックし、シークレットを安全な場所に保管します。次に、I have copied and stored this client secret securely のチェックボックスをオンにして、Create をクリックします。

      警告

      クライアントの作成後は、クライアントシークレットを表示したり取得したりすることはできません。

      Image shows the Save your client secret window with the Copy secret button

    新しい IAM クライアントが、システムが生成したクライアント ID (編集不可) とともに作成されます。

IAM クライアントを編集する​

  1. Admin Portal のサイドバーで、Foundations > Identity & Access > IAM Clients に移動します。IAM Clients ページが表示されます。
  2. リストから、編集したい IAM クライアントの名前をクリックします。IAM クライアントの詳細ページが表示されます。
  3. Edit をクリックします。Edit Client ページが表示されます。
  4. 必要に応じて情報を編集します。クライアントを作成した後は、クライアントタイプやクライアントシークレットを変更できません。
  5. Save をクリックして変更を保存します。

IAM クライアントのパーミッションを追加・編集する​

既存の confidential な IAM クライアントのパーミッションを追加・編集できます。

AGS Admin Portal で IAM クライアントのパーミッションを追加・編集するには、次の手順に従います。

  1. AGS Admin Portal で、対象の名前空間に移動します。

  2. サイドバーで、Foundations > Identity & Access > IAM Clients を選択します。IAM Clients ページが表示されます。

  3. リストから、パーミッションを更新したい IAM クライアントの名前をクリックします。IAM クライアントの詳細ページが表示されます。

  4. Edit をクリックします。Edit Client ページが表示されます。

  5. 下にスクロールして Permissions セクションに移動し、パーミッションを管理します。

    • 追加または編集したいパーミッションを見つけます。そのパーミッションに追加または削除したいアクション (Create、Read、Update、Delete) のチェックボックスをオンまたはオフにします。グループ内のすべてのパーミッションを一度に選択するには、グループ名の横にあるチェックボックスをオンにします。パーミッションをすばやく見つけるには、検索フィールドを使用するか、Show selected only を選択します。

      Image shows the Permissions section with the search field, Show selected only checkbox, and permission groups

  6. Save をクリックして変更を保存します。

    注記

    パーミッションの変更は、次回のトークンリフレッシュ時に自動的に反映されます。すぐに適用するには、接続しているサービスを再起動してください。

アプリケーションアクセストークンを取得する​

AGS SDK を使用してアプリケーションアクセストークンを取得する​

Credential クライアントは、AGS へのサービス間 (S2S) 呼び出しに有効なアクセストークンを必要とします。

以下のコードは、Credential クライアント用に AGS SDK を使用して有効なアクセストークンを生成します。

bool bServerLoggedIn = false;
bool bServerLoginComplete = false;
auto ServerApiClient = AccelByteOnlineSubsystemPtr->GetServerApiClient();
ServerApiClient->ServerOauth2.LoginWithClientCredentials(FVoidHandler::CreateLambda([&bServerLoggedIn, &bServerLoginComplete]()
{
UE_LOG(LogAccelByteEcommerceTest, Log, TEXT("Server Login Success"));
bServerLoginComplete = bServerLoggedIn = true;
}), FErrorHandler::CreateLambda([&bServerLoggedIn, &bServerLoginComplete](int32 ErrCode, FString const& ErrMsg)
{
UE_LOG(LogAccelByteEcommerceTest, Error, TEXT("Server Login Success"));
bServerLoginComplete = true;
}));
WaitUntil(bServerLoginComplete, "Waiting for server logged in...");

AGS CLI を使用してアプリケーションアクセストークンを取得する​

confidential クライアントのアクセストークンを取得するには、クライアントクレデンシャルグラントを使用して AGS CLI にサインインし、トークンを出力します。

ags auth login --grant client-credentials
ags auth token

AGS_BASE_URL、AGS_CLIENT_ID、AGS_CLIENT_SECRET 環境変数で設定されていない値がある場合は、ログインコマンドの実行時に入力を求められます。詳細については、インストールとサインインを参照してください。

手動 API 呼び出しでアプリケーションアクセストークンを取得する​

Confidential Client を使用して単に API テストを行いたい場合は、OpenAPI で認可を取得するのガイドに従って、アプリケーションアクセストークンを手動で作成できます。