Shared Cloud のカスタムパーミッション
注釈:本資料はAI技術を用いて翻訳されています。
はじめに
カスタムパーミッションは、Extend Service Extension を使用してカスタム API を作成し、プレイヤー(ゲームクライアント経由)またはゲームサーバーがそれらのカスタム API にアクセスできるようにしたい AGS Shared Cloud のお客様を主な対象としています。
AGS サービス API が提供する組み込みのパーミッションに加えて、Shared Cloud のスタジオ管理者はプレイヤーやゲームサーバーに任意のパーミッションを自由に追加することはできません。カスタムパーミッションは、以下の目的のために事前定義された形式に従う必要があります。
- AGS の組み込みパーミッション文字列との競合を防ぐ。
- 意図しないアクセスを防ぐ — スタジオ管理者が AGS リソースや意図した範囲外の他のスタジオが所有するリソースへのアクセスを付与できないようにする。
Private Cloud をご利用の場合、カスタムパーミッションを利用する必要はありません。Private Cloud にはマルチテナントの制限がないため、この記事で説明するカスタムパーミッション形式に従わなくても、パーミッションを自由に定義できます。
カスタムパーミッション形式
カスタムパーミッションはパーミッションの基礎ガイドで説明したものと同じパターンと基本原則に従いますが、1 つの重要な違いがあります。カスタムパーミッションは事前定義されたプレフィックスで始まる必要があります。Extend アプリが公開するエンドポイントの目的に応じて、管理者パーミッション形式とパブリックパーミッション形式の 2 つの形式があります。
パーミッションリソース
- 管理者パーミッション形式
- パブリックパーミッション形式
Extend アプリが管理者ユーティリティエンドポイント(例:クライアント認証情報トークンを使用してゲームサーバーまたはカスタムバックエンドサービスが呼び出す)を公開する場合は、管理者形式を使用します。
CUSTOM:ADMIN:NAMESPACE:{namespace}:<OBJECTNAME>
-
<OBJECTNAME>は独自の実装に基づいて定義するプレースホルダーです。Extend アプリが公開するカスタムリソースを表します。例:CUSTOM:ADMIN:NAMESPACE:{namespace}:PROGRESSION:CLAIMS
CUSTOM:ADMIN:NAMESPACE:{namespace}:USER:{userId}:PROGRESSIONS
Extend アプリがプレイヤー向けエンドポイント(例:ゲームクライアントからプレイヤーのアクセストークンを使用して呼び出す)を公開する場合は、パブリック形式を使用します。
CUSTOM:NAMESPACE:{namespace}:<OBJECTNAME>
-
<OBJECTNAME>は独自の実装に基づいて定義するプレースホルダーです。Extend アプリが公開するカスタムリソースを表します。例:CUSTOM:NAMESPACE:{namespace}:PROGRESSION:CLAIMS
CUSTOM:NAMESPACE:{namespace}:USER:{userId}:PROGRESSIONS
選択するパーミッション形式は最終的に実装に依存しますが、この管理者/パブリック形式の分離に従うことがベストプラクティスとして推奨されます。これにより、AGS 自身の組み込みパーミッション構造に合わせたパーミッション設計を維持できます。
パーミッションアクション
パーミッションアクションは、パーミッションがユーザーまたはアプリケーションにリソースに対して何を実行できるかを記述します。カスタムパーミッションは、組み込み AGS パーミッションと同じアクション(作成、読み取り、更新、削除)をサポートしています。
カスタムパーミッションの付与
Extend アプリでカスタムパーミッションを定義したら、適切なプリンシパルにそれらのカスタムパーミッションを付与できます。
- プレイヤーにカスタムパーミッションを付与する(デフォルトユーザーロールのオーバーライド経由): デフォルトユーザーロールにカスタムパーミッションを追加する を参照してください。
- ゲームサーバーまたはカスタムバックエンドにカスタムパーミッションを付与する(Confidential IAM クライアント経由): IAM クライアントパーミッションの追加と編集 を参照してください。