認証

高度な設定については、ハウツーをご覧ください。

OAuth 2.0認証をセットアップする方法

OAuth 2.0では、長持ちするトークンの代わりに、短命のトークンを使用しています(リフレッシュトークン)。リフレッシュトークンを使用することで、ユーザーはユーザー名とパスワードを再入力することなく、長期間アプリケーションに滞在することができます。これにより、ユーザー認証データが危険にさらされるリスクがなくなります。

認証用にOAuth 2.0を設定するには:

  • ユーザー名またはメールとパスワード経由
  • ソーシャルネットワーク経由
  • Steam経由

このオプションが有効になっている場合、ユーザー登録と認証は、Register new userおよびJWT auth by username and password APIコールを呼び出すことによって実行されます。Login & Account Systemプラグインは、OAuth 2.0認証のためにJWTトークン認証と同じ方法を提供しています。FXsollaAuthToken構造で、更新トークンはRefreshTokenフィールドで指定されます。

お知らせ
この設定を有効にしても、アプリケーションでのユーザーの認証プロセスは変わりません。

OAuth 2.0認証を設定するには:

  1. パブリッシャーアカウントでログインプロジェクトのOAuth 2.0認証をセットアップします。
  2. UE4プロジェクトでプラグインをセットアップします。

アドミンページでログインプロジェクトのOAuth 2.0認証を設定する

  1. パブリッシャーアカウントに移動します。
  2. サイドメニューでログインをクリックします。
  3. ログインプロジェクトペインで構成するをクリックします。
  4. セキュリティブロックに移動してOAuth 2.0セクションを選択します。
  5. OAuth 2.0を追加するをクリックします。
  6. OAuth 2.0リダイレクトURIを指定して接続するをクリックします。
  7. クライアントIDをコピーして保存します。

Unreal Engineプロジェクトでプラグインを設定する

  1. Unreal EditorでUE4プロジェクトを開きます。
  2. Settings > Project Settings > Plugins > Xsolla Loginに移動します。
  3. Use OAuth 2.0オプションを有効にします。
  4. Client IDフィールドで、パブリッシャーアカウントでOAuth 2.0を設定するときに受信したクライアントIDを指定します。

更新トークンを操作するために、Login & Account Systemプラグインには次のメソッドが実装されています:

  • RefreshToken — 有効期限が切れている場合は、トークンを更新します。
  • ExchangeAuthenticationCodeToToken — ユーザーの認証コードを有効なJWTと交換します。

RegisterUserGetSocialAuthenticationUrlおよびAuthenticateWithSessionTicketメソッドにあるStateパラメータは、OAuth 2.0認証時の追加のユーザ検証に使用されます。この引数は、CSRF攻撃の可能性を軽減するために使用されます。

この記事は役に立ちましたか?
ありがとうございます!
改善できることはありますか? メッセージ
申し訳ありません
この記事が参考にならなかった理由を説明してください。 メッセージ
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
非表示

独自の認証システムの使い方

注意

以下のプラグインのみを使用する場合は、このハウツーを参考してください:

  • Game Commerce
  • Cross-Buy

Cross-Buyプラグインが2022年3月に非推奨となることが決定しました。引き続き使用することは可能ですが、新機能のアップデートや補完は行われません。Game Commerceプラグインへの切り替えを推奨します。エクソラ製品との連携に必要なクラスとメソッドがすべて含まれています。

本SDKは、お客様独自の認証システムと統合することができます。そのためには、カスタムID(サーバーで生成したユーザーID)によるユーザー識別を実装し、ゲーム内ストアの開設、決済、インベントリ管理などを行います。

独自の認証システムを使用する場合のエクソラサーバーとのインタラクションのフローは以下の通り:

  1. クライアントは、サーバーに認証リクエストを送信します。
  2. サーバーはユーザーを認証し、エクソラサーバーにユーザーJSONウェブトークン(JWT)を受け取るリクエストを送信し、カスタムIDを渡します。
  3. エクソラサーバーはユーザーJWTを返します。
  4. サーバーは、ユーザーJWTをクライアントに渡します。
  5. SDKメソッドでは、受け取ったユーザーJWTを認証トークンを代用として、ゲーム内ストアの開設、決済、インベントリ管理を行います。

エクソラ製品で独自の認証システムを使用するには:

  1. パブリッシャーアカウントでサーバーOAuth 2.0クライアントをセットアップします。
  2. サーバーJWTの取得を実装します。
  3. ユーザーJWTの取得を実装します。
  4. ユーザーJWTを使用して、ゲーム内ストア、購入、インベントリを操作するロジックを実装します。

お知らせ
PlayFabまたはFirebaseの認証システムを使用している場合は、BaaSInsert用のエクソラ既製エクステンションを使用してユーザーJWTを取得します。

サーバーOAuth 2.0クライアントをセットアップする

  1. パブリッシャーアカウントでプロジェクトを開き、ログインセクションに移動します。
  2. ログインプロジェクトのパネルでの構成するをクリックします。
  3. セキュリティブロックに移動してOAuth 2.0セクションに移動します。
  4. OAuth 2.0を追加するをクリックします。
  5. OAuth 2.0のリダイレクトURIを指定します。
  6. 機密(サーバ間接続に推奨)チェックボックスを入ります。
  7. 接続をクリックします。
  8. クライアントIDと秘密鍵をコピーして保存してください。

サーバーJWTを取得する

アプリケーションのバックエンドで、JWTを生成するAPIコールを使用してサーバーJWTを取得するメソッドを実装します。リクエストには、以下のパラメータを含める必要があります:

お知らせ
サーバーJWTの有効期限は59分です。

ユーザーJWTを取得する

アプリケーションのバックエンドで、custom IDによる認証APIコールを使用してユーザーJWTを取得するメソッドを実装します。リクエストはX-Server-Authorization: <server_JWT>ヘッダーを含まなければなりません。ここで、<server_JWT>前のステップで取得したサーバーJWTです。

お知らせ
ユーザーJWTの有効期限は24時間です。変更するには、アカウントマネージャに連絡するか、integration@xsolla.comにメールを送信してください。

ユーザーJWTを使用する

SDKメソッドを使用して、ゲーム内ストアの開設、決済、インベントリ管理を行います。SDKメソッドを使用している際に、認証トークンの代わりにユーザーJWTを渡します。

以下のチュートリアルでは、トークンの使用例を紹介しています:

期限切れ後に新しいユーザーJWTを受け取るためのロジックを実装します。ユーザーがアプリケーションに再度ログインする必要がないように、バックグランドモードで新しいトークンを取得することをお勧めします。

この記事は役に立ちましたか?
ありがとうございます!
改善できることはありますか? メッセージ
申し訳ありません
この記事が参考にならなかった理由を説明してください。 メッセージ
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
非表示

ソーシャルネットワーク経由でネイティブ認証を設定する方法

ネイティブ認証では、ソーシャルネットワークのアカウントを使用するインストール済みのアプリケーションを介して、プレイヤーがアプリケーションにログインすることができます。現在、SDKでは、以下のソーシャルネットワークを経由したネイティブ認証が実装されています:

  • Google
  • Facebook

お知らせ
ソーシャルネットワークを介したネイティブ認証は、次の場所で利用できます:
  • UE4用の場合、Game Commerceプラグインバージョン0.5.7以降
  • UE4用の場合、Login & Account Systemプラグインバージョン0.3.0以降
  • UE4用の場合、Cross-Buyプラグインバージョン0.3.0以降

ネイティブ認証を構成するには:

  1. Android用のUE4プロジェクトビルドを作成します。

お知らせ
さらにネイティブ認証を設定するには、Android Package Name (‘com.YourCompany.Project’ [PROJECT] is replaced with project name)フィールドでのEdit > Project Settings > Platforms > AndroidセクションにあるAndroidアプリケーションのパッケージ名が必要です。
  1. エクソーラ側でソーシャルネットワークによる認証を設定します:
    1. FacebookとGoogleの場合は、アドミンページでソーシャルコネクションを設定します。
    2. WeChatとQQの場合は、カスタマーサクセスマネージャーまでお問い合わせるか、csm@xsolla.comcsm@xsolla.comに電子メールを送信してください。
  2. Unreal EngineプロジェクトのSDKを設定します。
  3. アプリケーション側で認証ロジックを実装します。

Facebook開発者アカウントでアプリケーションページをセットアップする

  1. Facebook開発者アカウントのプロジェクト設定に移動します。
  2. 設定>基本に移動します。
  3. プラットフォームを追加するをクリックし、Androidを選択します。
  4. Google Playパッケージ名フィールドでのAndroidアプリケーションのパッケージ名を指定します。
  5. クラス名フィールド(デフォルト値はcom.epicgames.ue4.GameActivity)でのアクティビティの完全修飾クラス名を指定します。
  6. キーハッシュフィールドでハッシュキーを生成して指定します。
  7. 変更を保存するをクリックします。

さらにネイティブ認証の設定を行うには、設定 > 基本セクションのプロジェクト設定にあるアプリIDアプリシークレットが必要です。

Google API Consoleでプロジェクトをセットアップする

  1. Google API Consoleに移動します。
  2. 新しいプロジェクトをクリックします。
  3. プロジェクト名場所を指定して保存するをクリックします。
  4. 作成したプロジェクトに移動してサイドメニューでのOAuth同意画面をクリックします。
  5. 外部オプションを選択して作成するをクリックします。
  6. 必要なパラメータを指定して、保存をクリックします。サイドメニューで
  7. 資格情報をクリックします。
  8. Androidアプリ用のOAuth 2.0クライアントを作成します:
    1. 資格情報を作成するをクリックして、OAuthクライアントIDを選択します。
    2. アプリケーションタイプフィールドでAndroidを指定します。
    3. 名称を指定します。
    4. パッケージ名フィールドであなたのAndroidアプリケーションのパッケージ名を指定します。
    5. SHA-keyを取得します。
    6. SHA-1証明書のフィンガープリントフィールドで前の手順で生成されたSHAキーを指定します。
    7. 作成するをクリックします。
    8. OKをクリックします。
  1. Webアプリケーション用のOAuth 2.0クライアントを作成します:
    1. 資格情報を作成するをクリックして、OAuthクライアントIDを選択します。
    2. アプリケーションタイプフィールドでウェブアプリケーションを指定します。
    3. 名称を指定します。
    4. 許可されたリダイレクトURIセクションでURIを追加するをクリックして、 https://login.xsolla.com/api/social/oauth2/callback URIを指定します。
    5. 作成するクリックします。
    6. OKクリックします。

さらにネイティブ認証の設定を行うには、ウェブアプリケーションのクライアントIDの設定にあるクライアントIDクライアントシークレットが必要です。

エクソーラアドミンページでログインプロジェクトのソーシャルコネクションを設定します

  1. パブリッシャーアカウントでプロジェクトを開きます。
  2. サイドメニューのログインをクリックし、ログインプロジェクト > ログインプロジェクト > ソーシャル接続に移動します。
  3. Facebook経由で認証を設定するには:
    1. Facebookパネルで編集するをクリックしてステータスを切断済みを変更します。
    2. アプリケーションIDフィールドでのFacebook開発者アカウントからアプリIDを指定します。
    3. アプリケーションシークレットフィールドでのFacebook開発者アカウントからアプリシークレットを指定します。
    4. 接続するをクリックします。
  1. Google経由で認証を設定するには:
    1. Googleパネルで編集するをクリックしてステータスを切断済みを変更します。
    2. アプリケーションIDフィールドでのGoogle API ConsoleからクライアントIDを指定します。
    3. アプリケーションシークレットフィールドでのGoogle API Consoleからクライアントシークレットを指定します。
    4. 接続するをクリックします。

Unreal EngineプロジェクトのSDKをセットアップする

  1. UE4プロジェクトに移動します。
  2. Settings > Project Settings > Plugins > Xsolla Login > Xsolla Login Androidに移動します。
  3. Allow Native Authボックスをチェックいれます。
  4. Facebook App IdフィールドでFacebook開発者からアプリIDを指定します。
  5. Google App IdフィールドでGoogle API ConsoleからウェブアプリケーションのクライアントIDを指定します。
この記事は役に立ちましたか?
ありがとうございます!
改善できることはありますか? メッセージ
申し訳ありません
この記事が参考にならなかった理由を説明してください。 メッセージ
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
非表示

Steam経由でネイティブ認証を設定する方法

ネイティブ認証では、プレイヤーはインストールされているSteamクライアント経由であなたのアプリケーションに入ることができます。Steam経由のネイティブ認証を設定した後、Steam経由の決済をアプリケーションに追加することもできます。

ネイティブ認証を設定するには:

  1. パブリッシャーアカウントでStreamを介してサイレント認証をセットアップします。
  2. UE4プロジェクトを構成します。
  3. イベントの処理を構成します。
  4. Steamを介して認証を確認します。

Unreal Engineプロジェクトを構成する

  1. UE4プロジェクトのConfigカタログに移動します。
  2. DefaultEngine.iniファイルに下のラインを追加して、SteamDevAppIdパラメータにアプリIDを指定します。
Copy
Full screen
Small screen
    [/Script/Engine.GameEngine]
    +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
    
    [OnlineSubsystem]
    DefaultPlatformService=Steam
    
    [OnlineSubsystemSteam]
    bEnabled=true
    SteamDevAppId=480
    
    [/Script/OnlineSubsystemSteam.SteamNetDriver]
    NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"
    
    1. Unreal Editorでプロジェクトを開きます。
    2. Settings > Plugins > Online Platformに移動します。
    3. Online Subsystem Steamモジュールで、Enabledボックスをチェックして、Restart Nowボタンをクリックして設定を保存し、Unreal Editorをリロードします。

    イベントの処理を構成する

    1. 以下のイメージは、プロジェクトにノードを追加する方法を示しています:
      Steam経由でユーザーを認証するには、GetSessionTicketメソッドを介してsession ticket>を取得する必要があります。AuthenticateWithSessionTicketメソッドを呼び出す際に受信した値を渡します。その結果、APIを呼び出すときに使用されるトークンを取得します。
    1. 追加のトークン検証のために、ValidateTokenメソッドコールバックを追加します(任意)。

    Steamによる認証を確認する

    1. スタンドアロンプラットフォーム用のUE4プロジェクトのビルドを作成します。
    2. Steamを起動してログインします。
    3. アプリケーションを起動します。すべてが正しければ、Steamポップアップウィンドウが表示されます。
    この記事は役に立ちましたか?
    ありがとうございます!
    改善できることはありますか? メッセージ
    申し訳ありません
    この記事が参考にならなかった理由を説明してください。 メッセージ
    ご意見ありがとうございました!
    あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
    非表示

    トークン無効化の設定方法

    トークンの無効化により、アプリケーション内のユーザー認証データのセキュリティを向上させることができます。このオプションを有効にすると、ユーザーが認証を行うたびに無効になる古いトークンが新しいトークンに置き換わります。

    お知らせ
    JWTトークンを使用する認証では、トークン無効化を設定することができます。OAuth 2.0認証の場合、トークン無効化はプロトコル自体が提供するものであり、別途設定する必要はありません。

    SDKを利用する場合、with_logoutパラメータの値が1の場合、Auth by username and passwordAuth via social networkのAPIコールを呼び出すことで、既存のトークンの無効化と新しいトークンの生成を行います。

    UE4プロジェクトでトークンの無効化を有効にするには:

    1. Settings > Project Settings > Plugins > Xsolla Loginに移動します。
    2. Invalidate Existing Sessionsオプションを有効にします。

    この記事は役に立ちましたか?
    ありがとうございます!
    改善できることはありますか? メッセージ
    申し訳ありません
    この記事が参考にならなかった理由を説明してください。 メッセージ
    ご意見ありがとうございました!
    あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
    非表示

    ランチャー経由でアプリケーションに認証を設定する方法

    エクソラランチャーを使用して、アプリケーションをユーザーに配信したり、更新したりすることができます。ランチャーには認証ツールが組み込まれています。ユーザー名とパスワードを再入力する必要がないように、ランチャーを介してアプリケーションの認証を設定します。

    注意
    ランチャーを使用するには、ログインの設定が必要です。別の認証システムを使用することはサポートされていません。

    SDKとランチャーを連携するためにセットアップする

    1. パブリッシャーアカウントでランチャーをセットアップします。
    お知らせ
    config.jsonファイルで、以下のオブジェクトの値を変更するだけで十分です:
    • launcher_project_idパブリッシャーアカウント > ランチャー > 一般設定 > 一般情報にあるランチャーIDを指定します。
    • login_project_idパブリッシャーアカウント > ランチャー > 一般設定 > 認証にあるログインIDを指定します
    1. ランチャーUIをカスタマイズします
    注意
    エクソラサーバーとのSDKの統合は、Commerce APIコールを使用しているため、ランチャーストアはサポートされていません。
    1. あなたのアプリケーションのランチャー認証ロジックを実装します。
    2. ランチャーインストールファイルとビルドアーカイブを生成します
    3. アプリケーションのビルドを作成します
    4. アプリケーションのビルドをエクソラアップデートサーバーにアップロードします

    ランチャーによる認証ロジックを実装する

    ランチャーによるアプリケーションでの認証の流れは以下の通り:

    1. ユーザーはランチャーで認証されています。
    2. ユーザーはアプリケーションをインストールして実行します。
    3. ランチャーは、アプリケーションを実行し、コマンドラインでユーザーのパラメータを渡します。認証トークンは、xsolla-login-tokenパラメータで渡されます。
    4. アプリケーションは、コマンドラインパラメーターを処理し、トークンを取得します。
    5. アプリケーションは受信したトークンを検証します。
    6. アプリケーションは、認証ページを表示することなく、自動的にユーザーを認証します。

    このロジックの実装例は、デモプロジェクトのW_LoginDemoブループリントにあります。

    お知らせ
    取得したトークンは、SDKメソッドでゲーム内ストアの開設や決済などに使用されます。

    アプリケーションのビルドを作成する

    1. UE4プロジェクトに移動します。
    2. Content Browserで、トークンが処理されているユーザ認証マップを開きます。
    3. メインメニューでEdit > Project Settingsに移動します。
    4. Project> Maps & Modesに移動し、Game Default Mapフィールドで、以前に開いた認証マップを選択します。
    1. Plugins > Xsolla Loginに移動します。
    2. Project IDフィールドで、パブリッシャーアカウント > プロジェクト設定 > プロジェクトIDにあるプロジェクトIDを指定します。
    3. Login IDフィールドで、パブリッシャーアカウント > ランチャー > 一般設定 > 認証にあるログインIDを指定します。
    4. File > Package Project > Windows (64 bit)に移動し、またはメインメニューでのFile > Package Project > Macに移動するのはビルドを作成するプラットフォームに依存します。
    5. ポップアップウィンドウで、完成したビルドが置かれるディレクトリへのパスを指定します。
    この記事は役に立ちましたか?
    ありがとうございます!
    改善できることはありますか? メッセージ
    申し訳ありません
    この記事が参考にならなかった理由を説明してください。 メッセージ
    ご意見ありがとうございました!
    あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
    非表示

    デバイスIDによるユーザー認証を実現する方法

    デバイスID認証は、ユーザーが登録データを入力することなく、モバイルデバイスでアプリケーションを使い始めることを可能にします。ユーザーが初めてデバイスIDを使ってアプリケーションにログインすると、新しいアカウントが自動的に作成され、ユーザー名やメールアドレスなどを入力する必要がありません。

    注意
    デバイスIDで作成されたアカウントは、現在使用しているモバイルデバイスでのみアプリケーションを使用することができ、AndroidやiOSのデバイスを変更したり、iOSデバイスでアプリケーションをアンインストールしたりすると、アクセスできなくなります。アプリケーションの進捗状況を保存し、他のデバイスで使用するには、ソーシャルネットワークのリンク、またはユーザー名、メールアドレス、パスワードを入力してアカウントをアップグレードします。

    デバイスIDを使用すると、バックグラウンドモードで1台または複数のモバイルデバイスにユーザー認証を実装することができます。この機能を利用するには、ユーザーはデバイスIDを既存のアカウントにリンクさせる必要があります。

    本SDKは、AndroidおよびiOSのモバイルデバイスのIDによる認証に対応しています。

    デバイスIDを取得する

    デバイスIDは、プラットフォームによって生成され、モバイルデバイスにインストールされたアプリケーションが利用できます。SDKはプラットフォームのAPIを使ってIDの値を取得し、この値を使ってXsolla APIを使って様々な機能を実行します。

    iOSデバイスIDは、UIDevice.identifierForVendorプロパティで渡されます。AndroidのデバイスIDは、android.provider.Settings.Secure.ANDROID_ID定数で渡されます。IDの決定には、UE4デバイスIDを取得するメソッドが使用されます。

    SDKメソッド

    本SDKは以下の機能のメソッドを実装しています:

    認証

    SDKメソッドの名称説明
    AuthenticateViaDeviceId
    現在のデバイスIDを使って、ユーザーをアプリケーションに認証します。

    アカウントアップグレード

    SDKメソッドの名称説明
    LinkEmailAndPassword
    現在のアカウントに、認証に使用できるユーザー名、メールアドレス、パスワードを追加します。
    LinkSocialNetworkToUserAccount
    認証に使用できるソーシャルネットワークを現在のアカウントにリンクします。
    注意
    リストされたメソッドは、任意の利用可能な方法で作成されたアカウントをアップグレードするために使用することができます(例:ソーシャルネットワークを使用したり、電子メールアドレスとパスワードを使用したり)。

    デバイス管理

    SDKメソッドの名称説明
    UpdateUsersDevices
    現在のユーザーアカウントにリンクされているデバイスのリストを返します。
    LinkDeviceToAccount
    指定されたデバイスを現在のユーザーアカウントにリンクします。
    UnlinkDeviceFromAccount
    指定されたデバイスを現在のユーザーアカウントからリンク解除します。
    この記事は役に立ちましたか?
    ありがとうございます!
    改善できることはありますか? メッセージ
    申し訳ありません
    この記事が参考にならなかった理由を説明してください。 メッセージ
    ご意見ありがとうございました!
    あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
    非表示
    最終更新日: 2024年1月22日

    誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。

    問題を報告する
    当社は常にコンテンツを見直しています。お客様のご意見は改善に役立ちます。
    フォローアップ用のメールをご提供してください
    ご意見ありがとうございました!