Zum Hauptinhalt springen

Richte deinen App-Service mit der Logto Management API ein

Nutze die Logto Management API, um benutzerdefinierte Organisationsabläufe in deiner App zu erstellen. Nachfolgend findest du die grundlegenden Einrichtungsschritte für die Integration der Management API. Wenn du bereits vertraut bist, kannst du direkt zum Tutorial springen.

Sobald du mit der Einrichtung vertraut bist, kannst du zusätzliche APIs erkunden, um die restlichen Abläufe an deine Geschäftsanforderungen anzupassen.

Aufbau einer Maschine-zu-Maschine-Verbindung

Logto verwendet Maschine‑zu‑Maschine (M2M) Authentifizierung, 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.

Dies umfasst:

  1. Erstelle eine Maschine-zu-Maschine (M2M) App in der Logto Console.
M2M-App-Details
  1. Erhalte ein M2M Zugangstoken von Logto. Mehr erfahren.
  2. Rufe Logto Management APIs von deinem Backend-Service 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 Organisationsoperationen selbstständig durchführen können, füge eine Autorisierungsschicht zwischen dem Endbenutzer und deinem App-Server hinzu. Der Server sollte jede Anfrage vermitteln, das organisationsbezogene Token des Benutzers und die erforderlichen Berechtigungen validieren und erst dann ein serverseitig gehaltenes M2M-Zertifikat verwenden, um die Management API aufzurufen.

Wenn ein Benutzer ein Organisationstoken präsentiert, um eine Aktion anzufordern (zum Beispiel das Erstellen einer Organisation), validiert der Server zuerst die Berechtigungen im Token. Wenn das Token die notwendige 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 entsprechende Privilegien keine Organisationen erstellen können.

Nachfolgend findest du gängige Autorisierungsmuster.

Verwendung von Organisationsberechtigungen

Stelle zunächst sicher, dass du Organisationsberechtigungen und Rollen 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-Identifier
],
scopes: [
UserScope.Email,
UserScope.Phone,
UserScope.CustomData,
UserScope.Identities,
UserScope.Organizations, // Organisationstoken anfordern
],
};

Dies stellt sicher, 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.

Kombination von organisationsbezogenen Berechtigungen und API-Berechtigungen

Dies gilt, wenn deine API-Ressourcen und Berechtigungen global registriert sind, aber Rollen auf Organisationsebene definiert werden (du kannst API-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 Organisationsberechtigungen nicht enthalten sein.

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