ID プロバイダを管理する

Developer Portal でのプレイヤー ID 管理の概要です。

Epic Online Services (EOS) は、Identity Provider (ID プロバイダ) (または「プラットフォーム」) と呼ばれる複数のオンライン ストアおよびゲーム サービスのプレイヤー アカウントをリンクすることができます。これにより、ユーザーは使用するさまざまなプラットフォーム間でデータを共有し、マッチメイキングなどのクロスプラットフォーム機能に参加できます。

EOS がサポートする ID プロバイダー:

  • Apple

  • Discord

  • Epic Games*

  • GOG Galaxy

  • Google

  • itch.io

  • Nintendo

  • Oculus

  • PlayStation™ Network

  • Steam

  • Xbox Live

  • OpenID

(*) マークのあるプロバイダーは Developer Portal での設定が必要ありません。

IdentityProviderFlow.png

ユーザーが製品のインスタンスを有効な ID プロバイダ (上図で表示) で開始する場合、その製品は毎回 接続インターフェース を使用してローカル ユーザーを認証します。

この ID プロバイダは認証トークンを提供します。EOS_EExternalCredentialTypeEOS_Connect_Login は、ローカル ユーザーを検証する認証トークンの種類と、トークンの信頼性と有効性を確認する ID プロバイダを特定します。環境を複数利用する製品には、複数の認証トークンが必要になる場合があります。

EOS は ID プロバイダ構成を使用して送信されたトークンやユーザー ID を検証し、そのユーザーを既存の製品データに接続します。

ユーザーが新しいプラットフォームで最初に製品をプレイする場合、EOS はそのプラットフォームにそのプレイヤーの製品データが存在しないことを確認します。そして製品クライアントが現在のプラットフォームでアカウント手続きを続行するようにユーザーに要求し、ユーザーはそのゲームの新しいアカウントをこのプラットフォームに作成するか、その製品のプレイに以前使用した別のアカウントでログインします。

ユーザーが別の ID プロバイダを使用して既存のアカウントでログインすることを選択した場合、製品はユーザーにアカウントをリンクするかどうかを尋ねることができます。この最初のイベントの後、ユーザーがこの製品をプレイするときに使用するアカウントを EOS は記憶し、ユーザーに再度プロンプトを表示することはありません。

ID プロバイダを設定する

製品の ID プロバイダを設定する際は、アクセスする製品を選択して [Product Settings] をクリックし、[Identity Providers] タブを選択します。次に [Configure] ボタンで各プロバイダを構成します。

ID プロバイダを設定した後、[Product Settings (製品設定)] をクリックして [Environments (環境)] タブを選択することで、製品のサンドボックスで ID プロバイダーを有効にできます。[Identity Providers] ボタンをクリックして、サンドボックスの ID プロバイダーを設定します。

OpenID プロバイダ

会社に独自のユーザー アカウント システムがある場合は、認証のサポートを追加できます。この場合はまず OpenID プロバイダの設定を追加して、EOS SDK でユーザーを認証します。その後、他の ID プロバイダと同様の方法でゲーム サービスを利用します。

OpenID プロバイダは UserInfo API エンドポイントまたは JSON Web Key Set (JWKS) を使用してトークンを検証します。

UserInfo API エンドポイント

UserInfo API エンドポイントを構成するには、そのユーザーのアカウント ID に対応する JWT アクセス トークン と JSON 応答フィールド名 のクレーム名、さらに UserInfo エンドポイントが返す表示名を指定する必要があります。

EOS の認証バックエンドは EOS_Connect_Login に渡したアクセス トークンを使用して、UserInfoAPI エンドポイントを呼び出します。

この API エンドポイントは、HTTPS プロトコルに加えて、GET と POST の HTTP メソッドのいずれかを使用します。また、発生する可能性がある以下のエラーに対して応答を実装する必要があります。

HTTP 応答コード

返される EOS_Result

説明

200 OK

EOS_Success

アクセス トークンは有効で信頼できます。

401 Unauthorized

EOS_Connect_ExternalTokenValidationFailed

アクセス トークンが無効、有効期限切れ、または信頼できません。

403 Forbidden

EOS_Connect_ExternalTokenValidationFailed

EOS の認証バックエンドがリクエストを許可されていません。注意:これは発生しないはずです。

404 Not Found

EOS_Connect_ExternalTokenValidationFailed

このユーザーはアカウント システムに存在しません。注意:これは発生しないはずです。

500 Internal Server Error

EOS_Connect_ExternalServiceUnvailable

エラーが発生したため認証サービスがリクエストを完了できません。

JSON Web Key Set (JWKS)

OpenID プロバイダは、JWKS を使用して送信された ID トークンを検証します。そのために、公開されてアクセス可能な JWKS URL を提供する必要があります。

ユーザーのアカウント ID は "sub" クレームから取得されます。

ID トークンの予想されるオーディエンス値 ("aud" クレーム) は、ユーザーの表示名のクレーム名とともに設定する必要があります。