Zum Hauptinhalt springen

Richte deinen App-Service mit der Logto Management API ein

Logto bietet eine leistungsstarke Management API, mit der du deinen eigenen Organisations-Flow innerhalb deiner App erstellen und anpassen kannst. Zu verstehen, wie sie funktioniert, ist entscheidend für die Gestaltung deines individuellen Setups. Nachfolgend findest du die grundlegenden Schritte und eine Übersicht zur Integration der Management API, um deine Organisationserfahrung umzusetzen.

Wenn du die Grundlagen bereits kennst, kannst du direkt zum Tutorial springen. Sobald du mit dem Setup vertraut bist, kannst du zusätzliche APIs erkunden, um die restlichen Abläufe an deine Geschäftsanforderungen anzupassen.

Etabliere eine Maschine-zu-Maschine-Verbindung

Logto verwendet Maschine‑zu‑Maschine (M2M) Authentifizierung (Machine-to-machine (M2M) authentication), um deinen Backend-Service sicher mit dem Logto Management API-Endpunkt zu verbinden. Dein Backend-Service kann dann die Management API nutzen, um organisationsbezogene Aufgaben wie Organisationen erstellen, Mitglieder hinzufügen oder entfernen und mehr zu erledigen.

Das beinhaltet:

  1. Erstelle eine Maschine-zu-Maschine (M2M) App in der Logto-Konsole.
M2M app details
  1. Erhalte ein M2M Zugangstoken (access token) von Logto. Mehr erfahren.
  2. Rufe Logto Management APIs von deinem Backend-Service aus auf. Zum Beispiel, um alle Organisationen aufzulisten:
curl \
-X GET https://[tenant_id].logto.app/api/organizations \
-H "Authorization: Bearer $M2M_ACCESS_TOKEN" \
-H "Content-Type: application/json"

Schütze deinen App-Server

Da Endbenutzer bestimmte Organisationsaktionen selbst durchführen können, ist es wichtig, eine Autorisierungsschicht zwischen dem Endbenutzer und deinem App-Server einzufügen. Du kannst diese Schicht global oder auf Organisationsebene anwenden, abhängig davon, welche Logto Management API-Endpunkte du verwendest und wie die API deines Produkts strukturiert ist. Der Server sollte jede Anfrage vermitteln, das organisationsbezogene Token des Benutzers und die erforderlichen Berechtigungen (scopes) validieren und erst dann mit einem serverseitig gehaltenen M2M-Zugang die Management API aufrufen.

Wenn ein Benutzer ein Organisationstoken (organization token) vorlegt, um eine Aktion anzufordern (zum Beispiel das Erstellen einer Organisation), validiert der Server zuerst die Berechtigungen (scopes) im Token. Wenn das Token die erforderliche Berechtigung wie org:create enthält, autorisiere die Anfrage und rufe die Logto Management API über den M2M-Flow auf, um die Organisation zu erstellen.

Enthält das Token nicht die erforderlichen Berechtigungen, gib einen 403 Forbidden zurück und überspringe die M2M-Logik. So wird sichergestellt, dass Benutzer ohne die entsprechenden Privilegien keine Organisationen erstellen können.

Nachfolgend findest du gängige Autorisierungsmuster.

Verwendung von Organisationsberechtigungen

Stelle zunächst sicher, dass du Organisationsberechtigungen (organization permissions) und Rollen (roles) in deiner Organisationstemplate im vorherigen Abschnitt definiert hast.

Stelle dann sicher, dass UserScope.Organizations (Wert: urn:logto:organization) in der Logto-Konfiguration enthalten ist. Am Beispiel des React SDK:

// src/App.js
import { UserScope } from '@logto/react';

const config = {
endpoint: 'https://<tenant-id>.logto.app/', // Dein Logto-Endpunkt
appId: '40fmibayagoo00lj26coc', // Deine App-ID
resources: [
'https://my.company.com/api', // Dein globaler API-Ressourcen-Identifikator
],
scopes: [
UserScope.Email,
UserScope.Phone,
UserScope.CustomData,
UserScope.Identities,
UserScope.Organizations, // Fordere ein Organisationstoken an
],
};

So wird sichergestellt, dass beim Aufruf von getOrganizationToken(organizationId) das Client-SDK ein Organisationstoken anfordert, das die dem Benutzer zugewiesenen Organisationsberechtigungen enthält. Dein Backend-Service kann dann das Token validieren und nach diesen Berechtigungen nachfolgende Anfragen autorisieren.

Details zum Schutz von organisationsbezogenen (nicht-API-)Berechtigungen findest du im vollständigen Leitfaden.

Verwendung von API-Ebene-Berechtigungen

Dies gilt, wenn deine API-Ressourcen und Berechtigungen global registriert sind, aber Rollen auf Organisationsebene definiert werden (du kannst API-Ebene-Berechtigungen zu Organisationsrollen im Organisationstemplate zuweisen).

Die Implementierung ist identisch mit dem vorherigen Abschnitt. Gib immer die Organisations-ID an und rufe getOrganizationToken(organizationId) auf, um ein Organisationstoken zu erhalten; andernfalls werden keine Organisationsberechtigungen enthalten sein.

Details zum Schutz von organisationsbezogenen API-Berechtigungen findest du im vollständigen Leitfaden.

Verwendung von globalem RBAC

In diesem Fall kannst du die Logto Management API nutzen, um systemweite Zugangskontrolle zu implementieren.

In einer Multi-Tenant-Umgebung ist ein gängiges Muster die Einführung einer Superuser- oder Superadmin-Rolle. Wenn du beispielsweise eine SaaS-Plattform mit Logto aufbaust, möchtest du vielleicht einen Superuser, der alle Kundenorganisationen direkt in deiner eigenen App verwalten kann, ohne sich in der Logto-Konsole anmelden zu müssen.

Dieser Superuser kann höherstufige Aktionen durchführen, wie das Erstellen oder Löschen von Organisationen in großen Mengen, die systemweite Berechtigungen über den Kontext einer einzelnen Organisation hinaus erfordern. Um dies zu ermöglichen, registriere eine API-Ressource in Logto, nutze die Logto Management API und verwalte diese Berechtigungen mit globalem RBAC.

Weitere Details zur Integration und Verwaltung der Zugangskontrolle für RBAC findest du im vollständigen Leitfaden.