Verwendung der Logto Management API: Eine Schritt-für-Schritt-Anleitung
Erfahren Sie, wie Sie die Logto Management API in verschiedenen Szenarien für Ihre Anwendung nutzen können.
Während Logto Ihnen ein web-basiertes Console bietet, um Identitäten zu verwalten, ist die Nutzung der Management API eine leistungsstarke Alternative, wenn Sie Ihren Arbeitsablauf automatisieren oder programmatisch auf Logto zugreifen möchten. Diese Anleitung führt Sie durch die Schritte zur Nutzung der Logto Management API in verschiedenen Szenarien.
Übersicht
Sie werden bemerken, dass es in der Logto Console eine integrierte API-Ressource "Logto Management API" gibt. Sie wird in dieser Anleitung eine Schlüsselrolle spielen.
Im Vergleich zu anderen API-Ressourcen erlaubt die Logto Management API derzeit keinen direkten Zugriff von Endbenutzern, da sie für die Kommunikation zwischen Maschinen ausgelegt ist. Sie ist so leistungsstark, dass sie zur Verwaltung Ihres Logto-Kontos und Ihrer Ressourcen verwendet werden kann.
Hier sind einige typische Szenarien, in denen Sie die Logto Management API verwenden möchten:
CI/CD
Dienstkommunikation
Single-Page-App
Web-Server, der HTML rendert
Architektur
Unabhängig von den Szenarien gibt es zwei Muster, die Sie verwenden können, um auf die Logto Management API zuzugreifen.
Muster 1: Direkter Zugriff
Bei diesem Muster greift Ihr Client oder Dienst direkt auf die Logto Management API zu. In Logto wird der Client oder Dienst als "Machine-to-Machine"-App bezeichnet.
Ein Beispiel für die Verwendung eines Backend-Dienstes:
Muster 2: Indirekter Zugriff
Bei diesem Muster greift Ihr Client oder Dienst über einen Backend-Dienst auf die Logto Management API zu. Muster 2 basiert auf Muster 1, bei dem eine weitere App beteiligt ist. Die neue App kann traditionell web-basiert, nativ oder eine Single-Page-App sein, die auf den Backend-Dienst zugreifen wird.
Ein Beispiel für die Verwendung einer Single-Page-App:
Dieses Muster ist nützlich, wenn Sie benutzerdefinierte Logik anwenden möchten, um den Zugriff auf die Logto Management API zu steuern. Beispielsweise möchten Sie möglicherweise alle Bestellungen für einen Verbraucher zurückgeben und die Informationen des Verkäufers zu jeder Bestellung anfügen. In diesem Fall können Sie die Single-Page-App verwenden, um den Backend-Dienst zur Abfrage der Bestellungen zu bitten, und im Backend-Dienst können Sie die Logto Management API nutzen, um die Informationen des Verkäufers zu erhalten.
Zugriff auf Logto Management API
Erstellen einer Machine-to-Machine-App
Zuerst müssen Sie eine Machine-to-Machine-App in der Logto Console erstellen. Gehen Sie zur Registerkarte "Anwendungen" und klicken Sie auf die Schaltfläche "Anwendung erstellen". Dann klicken Sie auf "Mit dem Erstellen beginnen" in der "Machine-to-Machine"-Karte.
Einrichten einer Machine-to-Machine-Rolle
Um auf die Logto Management API zuzugreifen, müssen Sie eine Machine-to-Machine-Rolle mit den entsprechenden Berechtigungen erstellen. Gehen Sie in der Logto Console zur Registerkarte "Rollen" und klicken Sie auf die Schaltfläche "Rolle erstellen". Klicken Sie auf "Weitere Optionen anzeigen" und wählen Sie "Machine-to-Machine-App-Rolle" im Abschnitt "Rollentyp".
Nun erscheint die "Logto Management API" im Abschnitt "Berechtigungen zuweisen". Haken Sie die API-Ressource für alle Berechtigungen an und klicken Sie auf die Schaltfläche "Rolle erstellen".
Sobald die Rolle erstellt ist, können Sie sie der zuvor erstellten Machine-to-Machine-App zuweisen.
Zugriffstoken abrufen
Sie können die Schritte in diesem Artikel befolgen, um ein Zugriffstoken über den Client-Credentials-Grant für Ihre Machine-to-Machine-App zu erhalten. Testen Sie das Zugriffstoken, indem Sie eine Anfrage an einen Endpunkt der Logto Management API senden.
Nun sind Sie bereit für Muster 1. Beachten Sie, dass das Zugriffstoken nur für kurze Zeit gültig ist, daher sollten Sie es möglicherweise regelmäßig aktualisieren, wenn Sie es zwischenspeichern möchten.
Eine weitere Ebene hinzufügen
Obwohl der Zugriff auf die Logto Management API für Endbenutzer nicht gestattet ist, können Sie eine weitere Ebene hinzufügen, um die Leistungsfähigkeit der Logto Management API zu nutzen und Ihren Dienst zu stärken.
Ein Beispiel: Sie erstellen eine Online-Community mit einer Single-Page-App und einem Backend-Dienst. Sie möchten möglicherweise eine Funktion haben, die es angemeldeten Benutzern ermöglicht, die Top-10-Benutzer zu sehen, die die meisten Follower haben. Ein Endpunkt GET /api/top-users
wird erstellt:
Um sicherzustellen, dass der Endpunkt nur von angemeldeten Benutzern zugänglich ist, können Sie eine "Single-Page-App" in der Logto Console erstellen und das Logto SDK integrieren in diese App. Dann können Sie das SDK verwenden, um das Zugriffstoken zu erhalten und die Anfrage an den Endpunkt zu senden:
Im Backend-Dienst können Sie zuerst die Top-10-Benutzer aus der Datenbank abfragen und dann die Logto Management API verwenden, um die Benutzerinformationen zu erhalten:
Schließlich können Sie die Antwort an die Single-Page-App zurückgeben:
Ein vollständiges Sequenzdiagramm:
In diesem Flow sind zwei Arten von Zugriffstokens involviert: eines für den Backend-Dienst, um auf die Logto Management API zuzugreifen, und ein weiteres für die Single-Page-App, um auf den Backend-Dienst zuzugreifen.
Das erste Zugriffstoken ist dasjenige, das Sie im vorherigen Abschnitt erhalten haben. Das zweite Zugriffstoken können Sie mit dem Logto SDK erhalten.
Mein Zugriffstoken in der Single-Page-App ist kein JSON Web Token (JWT)
Wenn Sie die Ressource nicht angeben, wenn Sie die Methode getAccessToken
in den Logto SDKs aufrufen, wird das Zugriffstoken eine opake Zeichenfolge sein, die für den userinfo Endpunkt vorgesehen ist. Um ein JWT zu erhalten:
- Definieren Sie eine API-Ressource in der Logto Console, z. B.
https://api.example.com
. - Fügen Sie die API-Ressource zur
resources
Konfiguration des Logto SDK hinzu, z. B.resources: ['https://api.example.com']
. - Rufen Sie die
getAccessToken
Methode mit der API-Ressource auf, z. B.getAccessToken('https://api.example.com')
.
Um das JWT in Ihrem Backend-Dienst zu validieren, lesen Sie bitte Validieren des Autorisierungstokens der API-Anfrage.
Was impliziert das JWT in der Single-Page-App?
Das JWT impliziert nur, dass der Benutzer sich angemeldet hat und versucht, auf die API-Ressource zuzugreifen. Es impliziert nicht, dass der Benutzer über spezifische Berechtigungen der API-Ressource verfügt. Es liegt an Ihnen zu entscheiden, ob Sie dem Benutzer den Zugriff auf die API-Ressource gewähren.
Wenn Sie eine granulare Zugriffskontrolle benötigen, können Sie auch eine rollenbasierte Zugriffskontrolle (RBAC) auf den Benutzer anwenden. Siehe 🔐 Rollenbasierte Zugriffskontrolle (RBAC) für Details.
Schlussbemerkungen
Logto Management API ist leistungsstark und flexibel in verschiedenen Szenarien. Mit Hilfe von Standardprotokollen können Sie die Logto Management API problemlos in Ihre Anwendung integrieren und ein sicheres und skalierbares System aufbauen. Wenn Sie Fragen haben, können Sie uns gerne kontaktieren.