ログイン / シングルサインオン
 ドキュメントに戻る

ログイン

  • 統合ガイド

  • 認証オプション

  • ユーザーデータストレージ

  • セキュリティ

  • カスタマイゼーション

  • 通信サービスプロバイダー

  • 特徴

  • ハウツー

  • 拡張機能

  • 法的設定

  • リファレンス

  • シングルサインオン

    どのように動作するか

    ユーザー認証用の共通の単一アカウントを持つ複数の接続済みサービスがある場合は、シングルサインオンを使用できます。ゲームのウェブサイトはサービスとして機能します。これにより、ユーザーは資格情報を一度だけ入力できます。その後、接続されているサービスの1つを開くと、ユーザーは既に認証されています。

    統合フロー

    1. 認証されていないユーザーがサービスの1つを開きます。
    2. あなたのクライアントはCheck user authenticationリクエストをエクソーラログインサーバーへ送信して、エラー401が発生します。
    3. クライアントは、ユーザーの認証フォーム(ログインウィジェットまたはログインUI)を開きます。
    4. ユーザーは、ユーザー名とパスワードまたはソーシャルネットワークを介して認証されます。

    1. クライアントは、ログインプロジェクトでユーザーを認証します:
      • APIコールを介してログインを統合する場合、次のリクエストが使用されます:
        • ユーザー名とパスワードによる認証(JWTOAuth 2.0)。
        • ソーシャルネットワークによる認証(JWTOAuth 2.0)。
      • OAuth 2.0プロトコルは、ウィジェットを介してログインを統合するときに使用されます。
      ユーザーセッションデータはエクソーラログインサーバーに保存されます。サーバーは、クエリパラメータのcodeがあるredirect_uriを含むlogin_uriを送信します。

    1. あなたのクライアントがユーザーをredirect_uriにリダイレクトします。
    2. サーバーはGenerate JWTリクエストを送信して、受信したcodeをJWTと交換します。ユーザーはサービスで認証されます。
    3. ユーザーが別のサービスを開きます。
    4. クライアントはCheck user authenticationリクエストをエクソーラログインに送信し、クエリパラメータのcodeがあるredirect_uriを含むlogin_uriを受け取ります。
    5. サーバーはGenerate JWTリクエストを送信して、受信したcodeをJWTと交換します。ユーザーは第二サービスで認証されます。

    さまざまのサービスのアクセス権を区別する

    さまざまなサービスのユーザーアカウントアクセス権を区別するには、さまざまなOAuth 2.0クライアントに対してscopeパラメータの特別な値を使用できます(例えば、scope=playfab)。

    使用に適した方

    ログインを統合し、エクソーラFirebaseまたはPlayFabデータベースを使用しているパートナー。

    入手方法

    シングルサインオンを接続するには:

    1. OAuth 2.0プロトコルを接続する
    2. ユーザーセッションリクエストの取得コールバックを実装する

    OAuth 2.0プロトコルを接続する

    説明に従ってOAuth 2.0プロトコルを接続します。すべてのサービスに1つのOAuth 2.0クライアントを使用するか、サービスごとに個別のOAuth 2.0クライアントを作成できます。

    ユーザーセッションを取得するための呼び出しリクエスト

    サービスを開くときにCheck user authenticationリクエストコールバックを実装します。リクエストは、ユーザーの認証フォームを開く前に実行する必要があります。認証には、ユーザーが認証する正確なサービスのOAuth 2.0クライアントパラメータを使用します。

    リクエストの例:

    Copy
    Full screen
    Small screen
    http
    • http
    • curl

    GET https://login.xsolla.com/api/oauth2/sso?client_id=<client_id>&redirect_uri=<redirect_uri>&scope=<scope>&state=<state>&response_type=code HTTP/1.1
    curl --request GET \
      --url 'https://login.xsolla.com/api/oauth2/sso?redirect_uri=redirect_uri&response_type=code&state=state&scope=scope&client_id=client_id'

    ユーザー認証時の応答例:

    Copy
    Full screen
    Small screen

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
      "login_url": "<redirect_uri>?code=<code>"
    }

    ユーザーJWTを取得するには:

    1. クライアントは、受信したredirect_uriにユーザーをリダイレクトするリクエストを実装して使用します。
    2. サーバーは、受信したcodegrant_type=authorization_codeを使用してGenerate JWTリクエストを送信して、JWTを取得します。

    ユーザーが認証されていない場合の応答例:

    Copy
    Full screen
    Small screen

    HTTP/1.1 401 Unauthorized
    Content-Type: application/json
    
    {
      "error": {
        "code": "003-040",
        "description": "User is unauthorized."
      }
    }

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

    答えたくない

    ご意見ありがとうございました!
    最終更新日: 2023年2月14日

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

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