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

AWS Cognito をアイデンティティプロバイダーとして設定する

Last updated on February 4, 2026

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

概要

このガイドは、認証されたAmazon Web Services (AWS) デベロッパーがAmazon CognitoユーザーをAccelByte Gaming Services (AGS) に接続するのに役立ちます。ここに記載されていないAWSサービス内の追加機能を設定する必要がある場合があります。AWSサービスの設定に関する完全な情報については、AWSの担当者に連絡し、AWSドキュメントを確認することをお勧めします。

目標

AccelByte Player Portalを使用してパブリッシャーウェブサイトのAmazon Cognito認証方法を有効にします。

前提条件

  • AWSアカウント。
  • 最新バージョンのAccelByte Game SDKがインポートされたUnityまたはUnrealゲームプロジェクト。
  • 認証を設定し、権限を管理するためのAGS Admin Portalアカウント。
  • ゲームnamespace。
  • AGS Identity and Access Management (IAM) Clientsに関する知識。

Amazon Cognitoの設定

Amazon Cognitoユーザープールの作成

ユーザープールは、Amazon Cognitoのユーザーディレクトリです。ユーザープールを使用すると、ユーザーはAmazon Cognitoを通じてゲームにサインインできます。ユーザープールの作成ガイドに従って、新しいユーザープールを作成します。

Integrate your appセクションで、次の操作を行う必要があります:

  • 初期アプリクライアントタイプをpublicに設定します。
  • BaseURLを許可されたコールバックURLとして追加します(BaseURLはドメインアドレス、例: https://development.accelbyte.io)。
  • 認証フローでALLOW_USER_PASSWORD_AUTHを設定します。

Amazon Cognitoユーザーの設定

ユーザープールを作成した後、ユーザープール内のユーザーを管理する必要があります。詳細については、ユーザープール内のユーザーの管理ガイドを参照してください。

Amazon Cognitoログイン方法の設定

次の手順に従って、ゲームでAmazon Cognitoログインを設定します。これにより、プレイヤーはAmazon Cognitoアカウントを使用してゲームにサインインできるようになります。

  1. AGS Admin portalで、パブリッシャーnamespaceに移動します。

  2. サイドバーメニューで、Game Setup > 3rd Party Configuration > Auth & Account Linkingに移動します。

  3. Auth & Account Linkingページで、+ Add Newボタンをクリックします。

    go to the Admin Portal Login Method menu click add new

  4. ログイン方法オプションのリストから、AWS Cognitoを選択します。

    click the AWS Cognito button

  5. AWS Cognito User PoolフィールドにUser Pool IDを、AWS Cognito RegionフィールドにAmazon Cognitoリージョンを入力します。 configure Amazon Cognito login

  6. 詳細ページにリダイレクトされます。この時点でアクティベートするだけで使用できるようになります。 Activate Amazon Cognito

IAMクライアントの作成

IAMクライアントは、ターゲットプラットフォームでリリースしたいゲームクライアントの表現です。

特定のSDKプラットフォーム(Xbox、Steam、Playstationなど)のゲーム用のIAMクライアントを既に持っている場合は、新しいIAMクライアントを作成する必要はありません。AWS Cognitoはゲームを構築するプラットフォームではないため、既存のIAMクライアントを使用できます。IAMクライアントの詳細については、Manage access control for applicationsをお読みください。

ゲーム内ログイン手順

各ゲームエンジンの設定は異なります。利用可能なタブからゲームエンジンを選択してください。

ゲーム内ログイン統合 (Unreal)

ゲームをAccelByte SDKとサインインに統合して、プレイヤーがAmazon Cognito認証情報を使用してゲームにログインできるようにすることができます。実装ではAWS SDKを使用します。

準備と設定 (Unreal)

依存関係の追加 (Unreal)

まず、AccelByteUe4Sdkという公開依存関係モジュールを追加する必要があります。この依存関係は、Unreal Engine内でAccelByte SDKプラグインを使用するためにプロジェクトを統合するために必要です。

public ABThirdPartyLogin(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" , "AccelByteUe4Sdk", "Slate", "SlateCore" , "AWSCore"});

PrivateDependencyModuleNames.AddRange(new string[] { "Json", "HTTP" });

}

<YourProject>.Target.cs<YourProjectEditor>.Target.csAccelByteUe4Sdkを追加します。

public ABThirdPartyLoginTarget( TargetInfo Target) : base(Target)
{
Type = TargetType.Game;
DefaultBuildSettings = BuildSettingsVersion.V2;
ExtraModuleNames.AddRange( new string[] { "ABThirdPartyLogin", "AccelByteUe4Sdk" } );
}
public ABThirdPartyLoginEditorTarget( TargetInfo Target) : base(Target)
{
Type = TargetType.Editor;
DefaultBuildSettings = BuildSettingsVersion.V2;
ExtraModuleNames.AddRange( new string[] { "ABThirdPartyLogin", "AccelByteUe4Sdk" } );
}

Amazon Cognitoログイン用のプロジェクト設定 (Unreal)

DefaultEngine.iniファイルにAccelByte認証情報を追加します。

[/Script/AccelByteUe4Sdk.AccelByteSettings]
ClientId=<Your Client_Id>
ClientSecret=<Your Client_Secret>
Namespace=<Your Namespace>
PublisherNamespace=<Your Publisher Namespace>
RedirectURI="http://127.0.0.1"
BaseUrl="https://prod.gamingservices.accelbyte.io"
IamServerUrl="https://prod.gamingservices.accelbyte.io/iam"
PlatformServerUrl="https://prod.gamingservices.accelbyte.io/platform"

サンプルコード実装 (Unreal)

Unreal EngineプロジェクトにAWS SDK for C++を含める方法は次のとおりです:

  1. Unreal Engineプロジェクトを開きます。
  2. プロジェクトの「Source」ディレクトリに新しいフォルダを作成します。「AWS」のような名前を付けることができます。
  3. 抽出したAWS SDKソースコードからaws-cpp-sdk-coreフォルダを、Unreal Engineプロジェクトに新しく作成した「AWS」フォルダにコピーします。
  4. Unreal Engineプロジェクトのソースコードで、<YourProjectName>.Build.csファイルを見つけます。通常、Sourceディレクトリにあり、プロジェクトと同じ名前です。
  5. テキストエディタで<YourProjectName>.Build.csファイルを開きます。
  6. <YourProjectName>.Build.csファイル内で、PublicDependencyModuleNamesセクションに「AWSCore」の次の行を追加します。
  7. 変更を保存してファイルを閉じます。
  8. Unreal Engineプロジェクトをビルドします。AWS SDK for C++コードがプロジェクトと一緒にコンパイルされます。

これらの手順を完了すると、必要なAWS SDKヘッダーを含め、Unreal EngineプロジェクトでAWS SDKクラスと関数を使用し、AccelByteにログインできるようにアクセストークンを取得できるようになります。以下は、コードに実装できるサンプルです。

注記

スニペットで使用されるAccelByteOnlineSubsystemPtrを取得するには、このガイドに従ってください。

// Set up AWS credentials
Aws::Auth::AWSCredentials credentials("YOUR_ACCESS_KEY_ID", "YOUR_SECRET_ACCESS_KEY");

// Create an Amazon Cognito Identity Provider client object
Aws::CognitoIdentityProvider::CognitoIdentityProviderClient cognitoClient(credentials);

// Construct the authentication request
Aws::CognitoIdentityProvider::Model::InitiateAuthRequest initiateAuthRequest;
initiateAuthRequest.SetAuthFlow(Aws::CognitoIdentityProvider::Model::AuthFlowType::USER_PASSWORD_AUTH);
initiateAuthRequest.SetClientId("YOUR_USER_POOL_CLIENT_ID");
initiateAuthRequest.SetAuthParameters({
{"USERNAME", "YOUR_USERNAME"},
{"PASSWORD", "YOUR_PASSWORD"}
});

// Send the authentication request to Amazon Cognito
auto initiateAuthOutcome = cognitoClient.InitiateAuth(initiateAuthRequest);

if (initiateAuthOutcome.IsSuccess())
{
// Retrieve the access token from the authentication response
const auto& challengeResponse = initiateAuthOutcome.GetResult().GetChallengeParameters();
const auto& accessToken = challengeResponse["ACCESS_TOKEN"];

// Use the access token for AWS SDK calls
// Create an S3 client object
Aws::S3::S3Client s3Client(credentials);

// Example API call: List S3 buckets
Aws::S3::Model::ListBucketsRequest listBucketsRequest;
auto listBucketsOutcome = s3Client.ListBuckets(listBucketsRequest);

if (listBucketsOutcome.IsSuccess())
{
// Handle successful response
FString Message = TEXT("Successfully listed S3 buckets!");
UE_LOG(LogTemp, Warning, TEXT("%s"), *Message);
OnActionInfoUpdated.Broadcast(Message);
const FString PlatformToken = accessToken;
UE_LOG(LogTemp, Warning, TEXT("PlatformToken : %s"), *PlatformToken);
OnActionInfoUpdated.Broadcast(FString::Printf(TEXT("PlatformToken : %s"), *PlatformToken));

auto ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient(TEXT("YOUR_KEY"));
auto UserApi = ApiClient->GetUserApi().Pin();

UserApi->LoginWithOtherPlatform(EAccelBytePlatformType::AWSCognito, PlatformToken, OnLoginSuccessDelegate, OnLoginErrorDelegate);
UE_LOG(LogTemp, Warning, TEXT("Request LoginWithOtherPlatform"));
OnActionInfoUpdated.Broadcast(TEXT("Request LoginWithOtherPlatform"));
}
else
{
// Handle error
FString Message = FString::Printf(TEXT("Error listing S3 buckets: %s"), *listBucketsOutcome.GetError().GetMessage().c_str());
UE_LOG(LogTemp, Warning, TEXT("%s"), *Message);
OnActionInfoUpdated.Broadcast(Message);
}
}
else
{
// Handle authentication error
FString Message = FString::Printf(TEXT("Authentication error: %s"), *initiateAuthOutcome.GetError().GetMessage().c_str());
UE_LOG(LogTemp, Warning, TEXT("%s"), *Message);
OnActionInfoUpdated.Broadcast(Message);
}
注記

Amazon Cognito認証のplatform_tokenはAccess Tokenです。

このサンプルコードをプロジェクトに追加した後、プロジェクトをコンパイルし、ビルドして実行します。以上です!

サンプルコードのテスト (Unreal)

以下のスクリーンショットは、コードが機能し、サンプルコードを使用してAmazon Cognitoでログインできることを示しています。 Successful sample code testing in Unreal