シングルサインオン
どのように動作するか
ユーザー認証用の共通の単一アカウントを持つ複数の接続済みサービスがある場合は、シングルサインオンを使用できます。ゲームのウェブサイトはサービスとして機能します。これにより、ユーザーは資格情報を一度だけ入力できます。その後、接続されているサービスの1つを開くと、ユーザーは既に認証されています。
統合フロー
- 認証されていないユーザーがサービスの1つを開きます。
- あなたのクライアントは
Check user authentication リクエストをエクソーラログインサーバーへ送信して、エラー401が発生します。 - クライアントは、ユーザーの認証フォーム(ログインウィジェットまたはログインUI)を開きます。
- ユーザーは、ユーザー名とパスワードまたはソーシャルネットワークを介して認証されます。
- クライアントは、ログインプロジェクトでユーザーを認証します:ユーザーセッションデータはエクソーラログインサーバーに保存されます。サーバーは、クエリパラメータの
code
があるredirect_uri
を含むlogin_uri
を送信します。
- あなたのクライアントがユーザーを
redirect_uri
にリダイレクトします。 - サーバーは
Generate JWT リクエストを送信して、受信したcode
をJWTと交換します。ユーザーはサービスで認証されます。 - ユーザーが別のサービスを開きます。
- クライアントは
Check user authentication リクエストをエクソーラログインに送信し、クエリパラメータのcode
があるredirect_uri
を含むlogin_uri
を受け取ります。 - サーバーは
Generate JWT リクエストを送信して、受信したcode
をJWTと交換します。ユーザーは第二サービスで認証されます。
さまざまのサービスのアクセス権を区別する
さまざまなサービスのユーザーアカウントアクセス権を区別するには、さまざまなOAuth 2.0クライアントに対してscope=playfab
)。使用に適した方
ログインを統合し、エクソーラ、FirebaseまたはPlayFabデータベースを使用しているパートナー。
入手方法
シングルサインオンを接続するには:
OAuth 2.0プロトコルを接続する
説明に従ってOAuth 2.0プロトコルを接続します。すべてのサービスに1つのOAuth 2.0クライアントを使用するか、サービスごとに個別のOAuth 2.0クライアントを作成できます。ユーザーセッションを取得するための呼び出しリクエスト
サービスを開くときに
リクエストの例:
Copy
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
- http
HTTP/1.1 200 OK
Content-Type: application/json
{
"login_url": "<redirect_uri>?code=<code>"
}
ユーザーJWTを取得するには:
- クライアントは、受信した
redirect_uri
にユーザーをリダイレクトするリクエストを実装して使用します。 - サーバーは、受信した
code
とgrant_type=authorization_code
を使用してGenerate JWT リクエストを送信して、JWTを取得します。
ユーザーが認証されていない場合の応答例:
Copy
- http
HTTP/1.1 401 Unauthorized
Content-Type: application/json
{
"error": {
"code": "003-040",
"description": "User is unauthorized."
}
}
この記事は役に立ちましたか?
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。