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

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

Last updated on August 5, 2026

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

概要

このガイドは、認証済みの Steam デベロッパーが Steam のプレイヤーアカウントを AccelByte Gaming Services (AGS) に接続するための手順を説明します。ゲームによっては、ここに記載されていない Steam サービスの追加機能を設定する必要がある場合があります。Steam サービスの設定に関する詳細な情報については、Steam の担当者に直接お問い合わせいただくとともに、Steam の公式ドキュメントもあわせて確認してください。

important

このガイドは一般公開向けであり、機密保持の都合上、限定的な情報のみを掲載しています。まずは機密版の完全なガイドを参照することをお勧めします。機密版ガイドの提供をご希望の場合は、担当の AccelByte テクニカルプロデューサーにお問い合わせください。

目標

  • AGS SDK を使用して、ゲームで Steam 認証方式を有効にする。
  • AGS Player Portal を使用して、パブリッシャーの Web サイトで Steam 認証方式を有効にする。

前提条件

Web ログイン統合の場合

  • 有効な Steam デベロッパーアカウント、および Steamworks にログインできること。
  • 認証の設定と権限の管理を行うための AGS Admin Portal アカウント。
  • Player Portal と Launcher で使用するパブリッシャーネームスペース。
  • Player Portal。
AGS Public Cloud

Web ログイン統合は現在、AGS Public Cloud では利用できず、AGS Private Cloud でのみサポートされています。

ゲーム内ログイン統合の場合

  • 有効な Steam デベロッパーアカウント、および Steamworks にログインできること。
  • Unreal Engine Steam OSS。
    • UE V4.27 以下: Unreal Engine OSS
    • UE V5.0: Unreal Engine OSS
  • Unity 用の Steamworks.NET バージョン 20.2.0 以上。
  • Steamworks ページから取得した、Unreal Engine または Unity 用の Steamworks SDK。
  • 最新バージョンの AGS SDK をインポートした Unity または Unreal のゲームプロジェクト。
  • 認証の設定と権限の管理を行うための AGS Admin Portal アカウント。
  • ゲームネームスペース。
  • AGS のアイデンティティおよびアクセス管理 (IAM) クライアントに関する知識。

Steam アプリを設定する

Steam アプリを作成する

Steamworks アカウントの配下に Steam アプリケーションを作成します。Steam アプリケーションの詳細については、アプリケーションに関する Steam のドキュメントを参照してください。 Steamworks アカウントの配下に Steam アプリケーションを作成します。Steam アプリケーションの詳細については、アプリケーションに関する Steam のドキュメントを参照してください。

Steam Publisher Web API Key を作成する

Steamworks アカウントを使用して、グループの配下に Publisher Web API Key を作成します。Steam Publisher Web API Key の詳細については、Web API の概要に関する Steam のドキュメントを参照してください。 Steamworks アカウントを使用して、グループの配下に Publisher Web API Key を作成します。Steam Publisher Web API Key の詳細については、Web API の概要に関する Steam のドキュメントを参照してください。

Steam ログイン方式を設定する

Web ログイン

設定手順

  1. AGS Admin Portal で、パブリッシャーネームスペースに移動します。

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

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

    AGS Admin Portal Steam Web click to add new login

  4. Select login provider ページで steam を検索し、Steam Web をクリックします。

    AGS Admin Portal click to add Steam web login

  5. Set Up Steam Web login provider フォームが表示されます。以下のフィールドを入力します。

    • Platform ID: steamopenid。AGS が自動的に設定するため、変更はできません。
    • Steam Web API Key: Steamworks Portal から取得した Steam Publisher Web API Key。
    • Redirect URI: ドメインの URL(例: https://development.accelbyte.io)があらかじめ入力されています。あわせて、以下の URI を Steam デベロッパーコンソールに許可済みリダイレクト URI として登録してください({baseUrl} はドメインアドレス、{namespace} はパブリッシャーネームスペースを指します)。
      • {baseUrl}
      • {baseUrl}/iam/v3/platforms/steamopenid/authenticate
      • {baseUrl}/iam/v3/public/namespaces/{namespace}/users/me/platforms/steamopenid/web/link/establish(アカウント連携に使用します)
    注記

    無効な Steam Publisher Web API Key を入力すると、「Steam Web API Key is invalid」というエラーメッセージが表示されます。

    AGS Admin Portal fill in Steam web API key

  6. Add & Activate をクリックすると、プロバイダーの作成と有効化を一度に実行できます。有効化せずに作成する場合は、Add をクリックします。

ログインプロバイダーを編集する

  1. Auth & Account Linking ページで、Steam Web プロバイダーをクリックします。

  2. 画面右側にプロバイダーの設定パネルが表示されます。必要に応じて各フィールドを更新します。

  3. パネル上部の Status トグルを使用して、プロバイダーを有効化または無効化します。

    Steam Web login provider panel with Status toggle

  4. Save をクリックします。

試してみる

  1. Player Portal に移動し、Login ボタンをクリックします。

    AGS Player Portal Steam web login page test

  2. Steam アイコンが見つからない場合は、More login options をクリックします。

    AGS Player Portal Steam web more login options test

  3. Login with Steam をクリックします。

    AGS Player Portal Steam Login button test

Steam Web Login ページにリダイレクトされ、そこで Steam の認証情報を入力できます。

Steam web login test

注記

現在、プレイヤーは Steam アカウントを既存の AGS アカウントに連携するか、新しいアカウントに連携するかの選択を求められます。AccelByte では、プレイヤーがヘッドレスアカウントで Player Portal に直接ログインできるよう、この動作を設定可能にする取り組みを進めています。

ゲーム内ログイン

設定手順

  1. AGS Admin Portal で、ゲームネームスペースに移動します。

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

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

    AGS Admin Portal in-game click to add new login

  4. Select login provider ページで steam を検索し、Steam SDK をクリックします。

    AGS Admin Portal click to add Steam SDK login

  5. Set Up Steam SDK login provider フォームが表示されます。以下のフィールドを入力します。

    • Platform ID: steam。AGS が自動的に設定するため、変更はできません。
    • App ID: Steam ゲームの App ID。
    • Steam Web API Key: Steamworks Portal から取得した Steam Publisher Web API Key。
    • Redirect URI: デフォルト値は http://127.0.0.1 です。この URL をそのまま、Steam デベロッパーコンソールに許可済みリダイレクト URI として登録してください。
    注記

    無効な Steam Publisher Web API Key を入力すると、「Steam Web API Key is invalid」というエラーメッセージが表示されます。

    AGS Admin Portal fill in Steam SDK API key

  6. Add & Activate をクリックすると、プロバイダーの作成と有効化を一度に実行できます。有効化せずに作成する場合は、Add をクリックします。

ログインプロバイダーを編集する

  1. Auth & Account Linking ページで、Steam SDK プロバイダーをクリックします。

  2. 画面右側にプロバイダーの設定パネルが表示されます。必要に応じて各フィールドを更新します。

  3. パネル上部の Status トグルを使用して、プロバイダーを有効化または無効化します。

    AGS Admin Portal Steam SDK login activate

  4. Save をクリックします。

Steam 用の IAM クライアントを作成する

IAM クライアントは、対象プラットフォームでリリースするゲームクライアントを表すものです。IAM クライアントの詳細については、アプリケーションのアクセス制御を管理するを参照してください。

ゲーム内ログインの手順

設定手順はゲームエンジンごとに異なります。以下のタブから、使用しているゲームエンジンを選択してください。

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

AGS SDK を使用して Steam ログインを統合すると、プレイヤーは Steam の認証情報を使用してゲームにログインできるようになります。

準備と設定 (Unreal)

依存関係の追加 (Unreal)

まず、OnlineSubsystemOnlineSubsystemSteamSteamworks の各パブリック依存モジュールを追加します。これらは、Unreal Engine 内で Steam オンラインサブシステムを使用できるようプロジェクトを統合するために必要な依存関係です。

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

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

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

<YourProject>.Target.cs ファイルと <YourProjectEditor>.Target.cs ファイルの中に OnlineSubsystemSteam を追加します。

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


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

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

DefaultEngine.ini ファイルに、Steam の設定に必要な変数をいくつか追加します。この設定により、プロジェクトを開いたときに Steam が自動的に起動するようになります。

Unreal Engine に Steam オンラインサブシステムを使用させるには、以下の設定を追加します。

[OnlineSubsystem]
DefaultPlatformService=Steam

アプリケーションで Steam オンラインサブシステムを使用することを Unreal Engine に指定したら、次に以下の設定を追加して OnlineSubsystemSteam モジュールを構成します。

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
注記

SteamDevAppId には、Steam ゲームの App ID を指定します。

アプリケーションの接続に使用する Net Driver に、Steam のクラスを指定します。

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"

AGS 用のプロジェクト設定 (Unreal)

DefaultEngine.ini に AGS の認証情報を追加します。

[/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"
AppId=480
IamServerUrl="https://prod.gamingservices.accelbyte.io/iam"
PlatformServerUrl="https://prod.gamingservices.accelbyte.io/platform"
注記

AppId には、Steam ゲームの App ID を指定します。

推奨される DefaultEngine.ini の設定 (Unreal)

以上の手順を実施すると、DefaultEngine.ini ファイルは次の例のようになります。

[OnlineSubsystem]
DefaultPlatformService=Steam

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=<your steam game app id>

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"

[/Script/AccelByteUe4Sdk.AccelByteSettings]
ClientId=<Your IAM_Client_Id>
ClientSecret=<Your IAM_Client_Secret>
Namespace=<Your Namespace>
PublisherNamespace=<Your Publisher Namespace>
RedirectURI="http://127.0.0.1"
BaseUrl="https://prod.gamingservices.accelbyte.io"
AppId=<your steam game app id>
IamServerUrl="https://prod.gamingservices.accelbyte.io/iam"
PlatformServerUrl="https://prod.gamingservices.accelbyte.io/platform"

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

ここでは、サンプルコードを使用してゲームに Steam 認証方式を実装する方法を紹介します。

IOnlineSubsystem は、DefaultEngine.ini で定義された DefaultPlatformService の値を読み取ります。IdentityInterface は、ユーザーアカウントに関連するこれらのサービスとのやり取りを管理し、ユーザー認証とアクセストークンの取得を可能にします。認証に成功すると、AGS SDK の LoginWithOtherPlatform 関数が、Identity Interface から取得した認証トークンを使用してサードパーティプラットフォームへのログインを処理します。

注記

AccelByte OnlineSubsystem (OSS) の AccelByteOnlineSubsystemPtr の取得方法については、こちらのガイドを参照してください。

UE_LOG(LogTemp, Warning, TEXT("%s"), TEXT("Begin Login"));
const IOnlineSubsystem* OnlineSubsystem = IOnlineSubsystem::Get();
if (OnlineSubsystem == nullptr)
{
FString Message = TEXT("Cannot login with no online subsystem set!");
UE_LOG(LogTemp, Warning, TEXT("%s"), *Message);
OnActionInfoUpdated.Broadcast(Message);//will get active OSS Platform Service
return;
}

const IOnlineIdentityPtr OnlineIdentity = OnlineSubsystem->GetIdentityInterface();
if (!OnlineIdentity.IsValid())
{
FString Message = TEXT("Could not retrieve identity interface from native subsystem.");
UE_LOG(LogTemp, Warning, TEXT("%s"), *Message);
return;
}
APlayerController* MyPlayerController = UGameplayStatics::GetPlayerController(GetWorld(), 0);;

const ULocalPlayer* LocalPlayer = Cast<ULocalPlayer>(MyPlayerController->Player);
if (LocalPlayer == nullptr)
{
FString Message = TEXT("Can only login with native platform for local players");
UE_LOG(LogTemp, Warning, TEXT("%s"), *Message);
return;
}

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

const FVoidHandler OnLoginSuccessDelegate = FVoidHandler::CreateLambda([&]() {
FAccountUserData AccountUserData = ApiClient->CredentialsRef->GetAccountUserData();

FString AccountUserDataString;
FJsonObjectConverter::UStructToJsonObjectString(AccountUserData, AccountUserDataString);

FString Message = FString::Printf(TEXT("Login to AB Service Success : %s"), *AccountUserDataString);//Success Login to AB Service
});
const FErrorHandler OnLoginErrorDelegate = FErrorHandler::CreateLambda([=](int32 ErrorCode, const FString& ErrorMessage) {
FString Message = FString::Printf(TEXT("Error Login to AB Service : %s"), *ErrorMessage);
});

const FOnLoginCompleteDelegate NativeLoginComplete = FOnLoginCompleteDelegate::CreateLambda([=]
(int32 LocalUserNum, bool bWasSuccessful, const FUniqueNetId& UserId, const FString& Error) {
UE_LOG(LogTemp, Warning, TEXT("OnLoginComplete %s : %s"), bWasSuccessful ? TEXT("Success") : TEXT("Fail"), *Error);
FString Message = FString::Printf(TEXT("OnLoginComplete %s : %s"), bWasSuccessful ? TEXT("Success") : TEXT("Fail"), *Error);
OnActionInfoUpdated.Broadcast(Message);

if (bWasSuccessful)
{
const FString PlatformToken = OnlineIdentity->GetAuthToken(LocalPlayer->GetControllerId());
UE_LOG(LogTemp, Warning, TEXT("PlatformToken : %s"), *PlatformToken);
OnActionInfoUpdated.Broadcast(FString::Printf(TEXT("PlatformToken : %s"), *PlatformToken));//Will Obtained Auth Ticket from OnlineIdentity

UserApi->LoginWithOtherPlatform(EAccelBytePlatformType::Steam, PlatformToken, OnLoginSuccessDelegate, OnLoginErrorDelegate);
UE_LOG(LogTemp, Warning, TEXT("Request LoginWithOtherPlatform"));
OnActionInfoUpdated.Broadcast(TEXT("Request LoginWithOtherPlatform"));
}//this method will hitting the AccelByte endpoint and will return value after success
});
OnlineIdentity->AddOnLoginCompleteDelegate_Handle(LocalPlayer->GetControllerId(), NativeLoginComplete);
const bool bWaitForDelegate = OnlineIdentity->Login(LocalPlayer->GetControllerId(), Credentials);
if (!bWaitForDelegate)
{
FString Message = TEXT("The online subsystem couldn't login");
UE_LOG(LogTemp, Warning, TEXT("%s"), *Message);
}

FString Message = TEXT("Sending login request to native subsystem!");
UE_LOG(LogTemp, Warning, TEXT("%s"), *Message);
注記

Steam 認証における platform_token は Auth Ticket です。

このサンプルコードをプロジェクトに追加したら、コンパイル、ビルド、実行を行います。以上で設定は完了です。

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

次の画像は、サンプルコードを使用した Steam ログインの成功例を示しています。

Steam login with sample code login Unreal success

トラブルシューティング

このセクションでは、サービスの利用時に発生する可能性がある一般的なエラーや問題と、その解決方法を紹介します。

設定の誤り

Unreal Engine の設定(DefaultEngine.ini 内)で Steam App ID が誤っている場合や設定されていない場合、ゲームは Steam のログインサービスにアクセスできません。

  • DefaultEngine.ini ファイルを再確認し、Steam App ID が正しく設定されていることを確認してください。

Steam ログインが機能しない

Steam 側でアクセストークンを取得できない場合、プレイヤーは Steam でのログインに失敗します。

  • Steam アプリがバックグラウンドで実行されていることを確認してください。