Single Sign-on

So funktioniert's

Wenn Sie mehrere verknüpfte Dienste mit einem gemeinsamen Konto für die Benutzerauthentifizierung haben, können Sie Single Sign-on verwenden. Die Website des Spiels fungiert dabei als Dienst. Sie erlaubt es einem Benutzer, seine Anmeldedaten nur einmal einzugeben. Danach ist der Benutzer beim Öffnen eines der verknüpften Dienste bereits authentifiziert.

Interaktionsablauf

  1. Nicht authentifizierter Benutzer öffnet einen der Dienste.
  2. Ihr Client sendet die Anfrage Check user authentication an den Xsolla-Login-Server und erhält die Fehlermeldung 401.
  3. Ihr Client öffnet das Authentifizierungsformular (Login-Widget oder Ihre Anmeldeoberfläche) für den Benutzer.
  4. Der Benutzer authentifiziert sich mittels Benutzername und Passwort oder über ein soziales Netzwerk.

  1. Ihr Client authentifiziert den Benutzer in Ihrem Login-Projekt:
    • Die folgenden Anfragen werden bei der Integration von Login über die API-Aufrufe verwendet:
      • Authentifizierung über Benutzername und Passwort (JWT und OAuth 2.0).
      • Authentifizierung über soziale Netzwerke (JWT und OAuth 2.0).
    • Bei der Integration von Login über das Widget wird das OAuth 2.0-Protokoll verwendet.
    Die Benutzersitzungsdaten werden auf dem Xsolla-Login-Server gespeichert. Der Server sendet den login_uri samt dem darin enthaltenen redirect_uri mit code im Anfrageparameter.

  1. Ihr Client leitet den Benutzer zum redirect_uri um.
  2. Ihr Server sendet die Anfrage Generate JWT, um den empfangenen code gegen einen JWT auszutauschen. Daraufhin wird der Benutzer bei dem Dienst authentifiziert.
  3. Der Benutzer ruft einen weiteren Dienst auf.
  4. Ihr Client sendet die Anfrage Check user authentication an den Xsolla-Login-Server und empfängt den login_uri samt darin enthaltenem redirect_uri mit code im Abfrageparameter.
  5. Ihr Server sendet die Anfrage Generate JWT, um den empfangenen code gegen einen JWT auszutauschen. Daraufhin wird der Benutzer bei dem zweiten Dienst authentifiziert.

Zugriffsrechte für verschiedene Dienste differenzieren

Sie können spezielle Werte des Parameters scope (z. B scope=playfab) in verschiedenen OAuth 2.0-Clients verwenden, um die Benutzerkonto-Zugriffsrechte für verschiedene Dienste zu differenzieren.

Für wen ist es

Partner, die Login bereits integriert haben und die Xsolla-Datenbank oder PlayFab nutzen.

Wie komme ich dazu

So binden Sie den Single Sign-on ein:

  1. Verknüpfen Sie das OAuth 2.0-Protokoll.
  2. Implementieren Sie die Rückrufanfrage für das Abrufen der Benutzersitzung.

OAuth 2.0-Protokoll verknüpfen

Folgen Sie der Anleitung, um das OAuth 2.0-Protokoll zu verknüpfen. Sie können einen OAuth 2.0-Client für alle Dienste verwenden oder für jeden Dienst einen separaten OAuth 2.0-Client erstellen.

Aufrufanfrage für das Abrufen der Benutzersitzung

Implementieren Sie die Rückrufanfrage Check user authentication beim Öffnen Ihres Dienstes. Die Anfrage ist auszuführen, bevor das Authentifizierungsformular für den Benutzer geöffnet wird. Verwenden Sie zur Authentifizierung die OAuth 2.0-Client-Parameter genau jenes Dienstes, mit dem sich der Benutzer authentifizieren möchte.

Anfragebeispiel:

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'

Antwortbeispiel bei authentifiziertem Benutzer:

Copy
Full screen
Small screen
HTTP/1.1 200 OK
Content-Type: application/json

{
  "login_url": "<redirect_uri>?code=<code>"
}

So rufen Sie einen JWT ab:

  1. Ihr Client implementiert und verwendet die Anfrage, die den Benutzer an den empfangenen redirect_uri weiterleitet.
  2. Ihr Server sendet die Anfrage Generate JWT samt empfangenem code und grant_type=authorization_code, um einen JWT abzurufen.

Antwortbeispiel bei nicht authentifiziertem Benutzer:

Copy
Full screen
Small screen
HTTP/1.1 401 Unauthorized
Content-Type: application/json

{
  "error": {
    "code": "003-040",
    "description": "User is unauthorized."
  }
}

War dieser Artikel hilfreich?
Vielen Dank!
Gibt es etwas, das wir verbessern können? Nachricht
Das tut uns leid
Bitte erläutern Sie, weshalb dieser Artikel nicht hilfreich ist. Nachricht
Vielen Dank für Ihr Feedback!
Wir werden Ihr Feedback aufgreifen und dazu nutzen, Ihr Erlebnis verbessern.
Diese Seite bewerten
Diese Seite bewerten
Gibt es etwas, das wir verbessern können?

Jetzt nicht

Vielen Dank für Ihr Feedback!
Letztmalig aktualisiert: 9. Juni 2021

Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.

Problem melden
Wir überprüfen unsere Inhalte ständig. Ihr Feedback hilft uns, sie zu verbessern.
Geben Sie eine E-Mail-Adresse an, damit wir Sie erreichen können
Vielen Dank für Ihr Feedback!