OAuth 2.0 Übersicht

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Du kannst Apps erstellen oder autorisieren, die Open Cloud-APIs verwenden, um auf Roblox-Ressourcen zuzugreifen. Open Cloud bietet Authentisierung für diese Apps mit OAuth 2.0.

Als Ersteller oder Gruppenbesitzer eines Erlebnisses

Du kannst sicher Tools verwenden, die von anderen entwickelt wurden, um deine Erzeugungsproduktivität zu verbessern. Die OAuth 2.0-Authentisierungsstufe erlaubt dir, Berechtigungen für Dritt-Apps zu gewähren, um auf deine Erlebnisse oder die deines Gruppen zuzugreifen, ohne ihnen deine Anmeldeinformationen und persönlichen Informationen zu geben. Du wählst die Zugriffsberechtigungen deiner spezifischen Roblox-Ressourcen aus und Roblox beh

Als App-Entwickler

Du kannst Apps für dich und andere in der Roblox-Community erstellen. OAuth 2.0 definiert die Rollen, die im Authentisierungsprozess beteiligt sind, das Protokoll, wie Rollen miteinander interagieren, und die Autorisierungsflows, die du folgen musst, um sichere und kompatible Apps zu entwickeln.

Rollen

Das Open Cloud OAuth 2.0-Protokoll hat die folgenden Rollen. Es ist nützlich, die spezifischen Rollen zu verstehen, bevor Sie darüber lernen, wie sie sich mit einander in der Autorisierungsmaschine interagieren.

  • Ressourcenbesitzer : Ein Objekt, das Zugriff auf einen geschützten Inhalt gewährt. Zum Beispiel ein Schöpfer, der einem Drittanbieter-App den Zugriff auf seine Roblox-Ressourcen über Open Cloud-Web-APIs ermöglicht.

  • Ressourcen-Server : Ein Roblox-Dienst, der geschützte Ressourcen hostet und auf Anfragen von einem Eigentümerreagiert.

  • Client : Eine App, die auf behalf des Ressourceneigentümers geschützte Ressourcen zugänglich macht (mit der Autorisierung des Eigentümer).

  • Autorisierungsserver : Der Roblox-Server, der die Identität des Ressourceninhabers authentifiziert und Zugriffsschlüssel an den Client ausgibt.

Gewährungstypen

Autorisierungsflows oder -Typen sind die Schritte der Aktionen, die Rollen während des Autorisierungsprozesses ausführen. Roblox unterstützt den OAuth 2.0-Autorisierungscode und seine Proof Key for Code Exchange (PKCE) -Erweiterung mit verschiedenen Umsetzungsanforderungen für Anwendungen, die clientseitige Geheimnisse speichern können oder können nicht.

Autorisierungscode-Fluss

Durch den Autorisierungscode-Fluss tauscht ein Client einen Autorisierungscode gegen einen Zugriffstoken und einen Aktualisierungstoken, um den Autorisierungsprozess in den folgenden Schritten abzuschließen:

  1. Der Client sendet eine Autorisierungsanfrage an den Server.

  2. Der Autorisierungsserver überprüft die Identität des Eigentümer.

  3. Der Autorisierungsserver erhält Berechtigungen für den Zugriff auf bestimmte Roblox-Ressourcen vom Eigentümer.

  4. Der Autorisierungsserver leitet den Ressourcenbesitzer mit einem Codeszurück zum Client.

  5. Der Client verlangt einen Zugriffs-Token, indem er den Autorisierungscode am Token-Endpunkt verwendet.

  6. Der Client erhält eine Antwort vom Token-Endpunkt, der ein Zugangs-Token, eine ID-Token und einen Aktualisierungs-Token enthält.

  7. Der Client ruft die erlaubten Ressourcen ab, nachdem er den Zugriffstoken erhalten hat.

Die folgende Figur beschreibt die Interaktionen zwischen Rollen im Autorisierungscode-Fluss, den Sie in den folgenden Abschnitten lesen werden:

Autorisierungscode-Fluss mit PKCE

Die PKCE-Erweiterung des Autorisierungscodes hilft, das Risiko, den Autorisierungscode zu leaken, zu reduzieren und die Cross-Site-Anforderung zu verhindern (CSRF), einen Angriff, der Benutzer dazu bringt, unbeabsichtigte Web-Anfragen einzureichen. Dieser Flow schließt den Autorisierungsprozess mit den folgenden Schritten ab:

  1. Der Client generiert einen einzigartigen und kryptografisch zufälligen Schlüssel namens Code-Verifizierer für jede Anfrage.

  2. Der Client führt eine SHA-256-Has алgorithmus auf dem Code-Verifizierer aus, um eine Code-Herausforderung zu generieren.

  3. Wenn der Client:

    • Ist ein öffentlicher Client, anstatt den Client-Secret zu verwenden, überträgt es die Client-ID und die Code-Herausforderung in der Anfrage.

    • Ist ein konfidencial Cliente, fügt es die Code-Herausforderung zusammen mit der Client-ID und dem Geheimnis in der Anfrage hinzu.

  4. Der Client sendet eine Autorisierungsanfrage an den Server.

  5. Der Autorisierungsserver überprüft die Identität des Eigentümer.

  6. Der Autorisierungsserver erhält Berechtigungen für den Zugriff auf bestimmte Roblox-Ressourcen vom Eigentümer.

  7. Der Autorisierungsserver leitet den Ressourcenbesitzer mit einem Codeszurück zum Client.

  8. Der Client enthält den Autorisierungscode und den ursprünglichen Code-Verifier in der Token-Anfrage an den Token-Endpunkt.

  9. Der Autorisierungsserver überprüft den Autorisierungscode und den zugeordneten Code-Verifizierer.

  10. Der Client erhält eine Antwort vom Token-Endpunkt, der ein Zugangs-Token, eine ID-Token und einen Aktualisierungs-Token enthält.

  11. Der Client ruft die erlaubten Ressourcen ab, nachdem er den Zugriffstoken erhalten hat.

OpenID Connect-Support

Roblox verwendet OpenID Connect (OIDC) als Identitätsschutz auf dem OAuth-2.0-Protokoll für die Authentisierung, um sensible Kontoinformationen zu schützen. OIDC ermöglicht es Anwendungen, die Identität von Benutzern zu überprüfen und ihre grundlegenden öffentlichen Profile-Informationen, z. B. Benutzer-ID, Benutzernamen, Anzeigename und Profil-Links, zu erhalten.

Registrierung und Umsetzung

Um ein Web oder eine mobile App zu implementieren, die Autorisierungscode-Fluss verwendet, musst du:

  1. Registrieren Sie Ihre App mit Roblox. Dies ermöglicht es Ihnen, eine Client-ID und ein Geheimnis zu erhalten, um Ihre App mit Roblox zu registrieren und Anrufe an Ihre Endpunkte vorzunehmen.

  2. implementiere den Autorisierungscode-Flow. Für eine vollständige Referenz der OAuth 2.0-Endpunkte, die Sie aufrufen müssen, sehen Sie die Authentisierung-Referenz.

  3. Gehen Sie durch den Bewertungsprozess, um mehr Benutzerquellen zu erhalten.