EOS Epic Account Services は、Epic Online Services (EOS) の一部です。EOS は EOS Epic Game Services と EOS Epic Account Services という 2 つのサブセットに分かれています。 詳細については、 Epic Online Services (EOS) 概要 と EOS クイック スタート ドキュメントを参照してください。
EOS Epic アカウント サービスは、ゲームで Epic Games アカウントを使用するための固有のリソースセットです。
ゲームで EOS Game Services を使用する場合、EOS Epic Account Services は必須ではありません。 プレイヤーは、サポートされている ID プロバイダー (Steam アカウントなど) の ID または Epic Games アカウントのいずれかを使用してゲームに接続できます。
Tip
- Steam アカウントなど、サポートされている ID プロバイダー からの ID を介して接続するプレイヤーは、以下を使用します。
- EOS Game Services: Connect インターフェース。
- Epic Games アカウントを介して接続するプレイヤーは、以下の両方を使用します。
- EOS Game Services: Connect インターフェース、および
- EOS Epic Account Services: Auth インターフェース。
詳細については、以下のドキュメントを参照してください。
- EOS Game Services: Connect インターフェース
- EOS Epic Account Services: Auth インターフェース
- Developer Portal: ID プロバイダの管理
- EOS SDK API リファレンス: サポートされている ID プロバイダ External Credential Types
始める前に
EOS Epic Account Services アカウント とアプリケーションのセットアップを開始する前に、以下の前提条件を満たしていることを確認してください。
1.Developer Portal (dev.epicgames.com/portal) にサインアップし、アカウントの 2 段階認証を有効にする。
2. Developer Portal で自分の組織をc新しく作成するか、既存の組織に参加する。
この作業を進めるには、 Epic Games アカウント (www.epicgames.com/account を参照してください) と
組織のメンバーシップロールが Admin である必要があります。
- EOS Epic Account Services を使用する製品を作成または選択する。
- Developer Portal から最新版の EOS SDK をダウンロードする。
EOS SDK の詳細については、 EOS クイック スタート を参照してください。
使用を開始する
1. Developer Portal で EOS Epic Account Servicesにアクセスする。
EOS Epic Account Servicesには Developer Portal のナビゲーション パネルか、製品 のホーム ページからアクセスできます。
EOS Epic Account Services に進むには、EOS Epic Account Services のサービス補遺を確認してこれに同意する必要があります。同意した契約内容は、 Developer Portal の [Organization (組織)] セクションにある [Licenses (ライセンス)] タブからいつでも確認できます。
また、「EPIC GAMES プライバシーポリシー」を確認して、Epic Games によるユーザー データの収集、使用、共有について十分に把握しておくことをお勧めします。
組織のタイプ によっては、それぞれのライセンス契約を一度のみ同意すればよい場合 ( 組織 エンティティ) もありますが、個人 エンティティの場合は、EAS ダッシュボードへのアクセスを持つすべてのメンバーがそれぞれライセンス契約に同意する必要があります。
通常の EOS サービスでは、デベロッパーは Epic Games がサービス プロバイダーとして、ユーザーのデータをデベロッパーに代わって処理するように許可を与えています。 ただし、EAS の場合、Epic Games はユーザー データおよび認証フローを管理し、ユーザーの同意のもと、ユーザーに代わってこのデータおよび機能を提供しています。デベロッパーは、 Epic アカウント サービスのサービス補遺 の規定に基づき、許可された特定の使用目的のみにデータを使用することに同意します。
2. EOS アプリケーションをセットアップする
EOS Epic Account Services ダッシュボードで最初のアプリケーションの作成を開始できます。Developer Portal には作成するアプリケーションのためのプレースホルダーが表示されますが、設定の詳細は空です。
クリックして画像を拡大します。
アプリケーションの設定は主に以下の 3 つのセクションで構成されます。
- Brand Settings (ブランド設定): 名前、ロゴ、プライバシー ポリシー URL、サポート URL です。
- Permissions (許可): アプリケーションがユーザーに要求するアクセス許可です。
- Linked Clients (リンクされたクライアント): 認証フローにおいて SDK が使用する、アプリケーションとクライアント認証との関連付けです。
各セクションの設定を開始するには [Configure (設定)] をクリックします。
アプリケーション ブランド設定
最初に行うアプリケーション設定は アプリケーション ブランド設定 です。
クリックして画像を拡大します。
左側に同意ダイアログのプレビューが表示されます。これは Epic ユーザーに対して表示され、そのアプリケーションがユーザーの情報を共有する許可を要求します。このプレビューはモバイルおよび Web バージョンで利用可能です。
初回は同意ダイアログのプレビューの上部に、赤い警告バナーが表示されます。この警告は、危険性またはブランドのなりすまし行為の可能性に関して、アプリケーション ブランド設定のレビューが完了していないことを示すものです。さらに、未検証のアプリケーションの場合、同意ダイアログに先立って別の警告ダイアログが表示されます。この 2 段階の警告は、未検証のアプリケーションで処理を続行することに伴う結果について、ユーザーに十分に理解してもらうことを目的としています。
すべてのアプリケーションは未検証で作成され、オーディエンス 制限が設定されます。同一の開発組織に属するメンバーのみが Epic Games アカウントを使用してこの未検証アプリケーションに対して認証を行うことができます。他のすべてのユーザーにはオーディエンス制限のエラー メッセージが表示されます。これらのオーディエンス制限は、Epic ユーザーを保護すると同時に、ブランド レビューのためのアプリケーション準備の間に、デベロッパーが繰り返し統合を行えるようにすることを意図しています。
これらの制限を取り払うには、右側のフィールドに詳細情報を入力して、アプリケーション ブランド レビューに提出する必要があります。このようなプラグインには、以下のものがあります。
- アプリケーション名: ユーザーに表示するアプリケーションのフレンドリ名。デフォルトでは製品名が設定されています。
- プライバシー ポリシーの URL: ユーザーがアプリケーションのプライバシー ポリシーを確認できる URL。
- アプリケーション ロゴ: 同意ダイアログでアプリケーションのシンボルとして使用される 128 x 128 の不透過の PNG または JPG ファイル。
これらのフィールドを更新すると、プレビューに変更が反映され、即座に更新されます。
クリックして画像を拡大します。
アプリケーションを作成してブランド設定を保存したら、次のタブに移動します。
アプリケーション許可
[Parmissions (許可)] タブではアプリケーションがユーザーに要求するアクセスのレベルを定義します。
クリックして画像を拡大します。
EOS Epic Account Services には以下の 3 つの基本的な許可が備わっています。
- Basic Profile (基本プロファル): ユーザーの表示名、言語設定、リンクされたアカウントの表示名の読み取りを許可します。
- Online Presence (オンライン プレゼンス): 現在のユーザーのオンライン プレゼンスの設定およびユーザーのフレンドのオンライン プレゼンスの更新を受け取ることを許可します。
- Friends (フレンド): 現在のユーザー アカウントのフレンド リストへの読み取りアクセスを許可します。
EOS Epic Account Services では基本設定は常に必要で無効にはできません。設定していない場合、ユーザー データにはアクセスできません。Online Presence と Friends はアプリケーションでの必要に応じて有効か無効かを設定できます。アプリケーションで有効にしたい場合は許可を有効に切り替え、[Save] をクリックして変更を保存します。許可の追加または削除を反映して同意ダイアログ プレビューが更新されます。
Click to enlarge image.
アプリケーション クライアント
最後は [Clients (クライアント)] タブです。アプリケーションと関連付けられたクライアントのリストを設定することができます。クライアント とは、EOS Epic Account Services のバックエンドでアプリケーションのデータにアクセス可能な任意のソフトウェアまたは Web サイトです。アプリケーションに関連付けられたクライアントがすべて「Product Settings」に表示され、与えられたユーザーの許可がそれらによって共有されます。
クリックして画像を拡大します。
アプリケーションでクライアントを設定済みの場合は、[Select Clients (クライアントを選択)] ドロップダウンから選択できます。それ以外の場合は、[Create New Client (新規クライアントの作成)] をクリックして [Product Settings] ページを開き、新規クライアントを設定してください。新規クライアントの追加についての詳細は、「クライアント資格情報」を参照してください。
リストへのクライアントの追加が完了したら、[Save] ボタンをクリックして変更を保存します。
クリックして画像を拡大します。
ここまでで EAS アプリケーションの設定が完了しました。これで EAS を製品に統合し、これによってユーザー データにアクセスする準備ができました。サブミットしたアプリケーション ブランド設定のレビューが完了すると、オーディエンス制限が解除され、アプリケーションが組織外のユーザーから見えるようになります。
クリックして画像を拡大します。
3. EOS SDK で Epic Games ユーザーを認証する
EOS SDK では Epic アカウントを使用する際に特別な設定は必要ありません。ただし、ターゲット プラットフォームに適切なログイン タイプを使用する必要があり (「 Auth インターフェース 」を参照)、 ブランド レビュー アプリケーション (プロファイル、プレゼンス情報、フレンズ リスト) で指定したログイン呼び出しにおいてユーザーの同意を求めるスコープを必ず含める必要があります。
例えば、PC のアカウント ポータル経由でログインする場合は、ログイン呼び出しは以下のようになります。
これによってデフォルトのシステム ブラウザが起動し、ユーザーにログインとアクセス アプリケーション リクエストの確認を求めます。
4. Web サイトで Epic Games ユーザーを認証する
Web サイトおよび Web アプリケーションの認証では、 OpenID Connect Core 1.0 の承認コード フローがサポートされますが、開始する前に ブランド レビュー アプリケーション と クライアント資格情報 を設定する必要があります。
ユーザーの承認
認証フローを開始するには、アプリケーションでユーザーを承認ページにリダイレクトする必要があります。ユーザーは承認ページで Epic Games アカウントにログインします。
ユーザーを次の認証 URL にリダイレクトします。
追加の許可をリクエストするには、必要な許可のリスト (スペース区切り) を使って承認リクエストのスコープ パラメータを変更します。For example, scope=basic_profile friends_list
.
次に、Developer Portal でクライアント向けのリダイレクト URL を設定します。
ログイン時にユーザーはリクエストされた許可の承認を要求されます。ユーザーが同意すると、ユーザーは code
パラメータとともにアプリケーションにリダイレクトされます。このコードはアクセス トークンをリクエストする際に使用されます。
Epic Games では、リクエストとコールバック間の状態の維持に使用可能なオプションの state
パラメータをサポートしています。これによって「クロスサイト リクエスト フォージェリ攻撃」を防止します。
以下はユーザー認証後のリダイレクト URL の例です。
アクセス トークンをリクエストする
アクセス トークンをリクエストするために、クライアントがリクエストをトークン エンドポイントに送信します。これにはクライアント資格情報と承認コードが含まれます。Epic Games トークン エンドポイントは https://api.epicgames.dev/epic/oauth/v1/token
です。
クライアント資格情報が基本の 承認 で Authorization
ヘッダ内に渡されます。
また、リクエストには authorization_code
グラント種別を指定し、 承認フロー で取得したコードとリダイレクト URL も含める必要があります。
以下のスニペットはリクエストの例です (パスワード グラント種別を使用)
応答には以下のフィールドが含まれます。
応答 | 説明 |
---|---|
access_token | アクセス トークン。プレフィックスを含む場合があります (例:eg1~token ) 。Epic サービスに対するすべてのリクエストで、この値は Bearer タイプを使用して、そのままの形で Authorization ヘッダに渡される必要があります。 |
expires_in | トークンの有効期限切れまでの秒数。 |
expires_at | ISO 8601 形式での有効期限日付。 |
account_id | トークンが発行されるユーザーの Epic アカウント ID。 |
client_id | このトークンを発行するために使用されるクライアント ID。 |
application_id | クライアントが関連付けられるアプリケーション ID。 |
token_type | 発行されるトークンのタイプ。値は常に bearer です。 |
refresh_token | クライアントの設定に応じ、オプションでリフレッシュ トークンが返されます。このリフレッシュ トークンを使用して、有効期限の前または後でセッションを延長することができます。 |
refresh_expires | リフレッシュ トークンが有効期限になるまでの秒数。 |
refresh_expires_at | リフレッシュ トークン の ISO 8601 形式での有効期限。 |
以下のスニペットはリクエストの例です。
アクセス トークンは Epic Games サービスへの Authorization ヘッダに含まれるため、常に渡す必要があります。使用するコマンドの例:Bearer eyJraWQiOiJ0RkM...`