Aktionen
Logto Aktionen ermöglichen es dir, vertrauenswürdigen JavaScript-Code an bestimmten Punkten im Authentifizierungsablauf auszuführen. Eine Aktion läuft synchron ab: Die Authentifizierungsanfrage wartet auf das Skript, und das Skriptergebnis kann den Benutzer aktualisieren oder bestimmen, ob der Ablauf fortgesetzt wird.
Aktionen sind nützlich, wenn die Entscheidung innerhalb des Authentifizierungsablaufs getroffen werden muss. Häufige Anwendungsfälle sind:
- Migration von Benutzern und Passwörtern aus einem Legacy-Identitätssystem beim ersten Anmelden.
- Aktualisierung des Benutzerprofils oder anwendungsspezifischer Daten, bevor Logto eine Anmeldung abschließt.
- Aufruf eines externen Dienstes und Anwendung seines Ergebnisses auf den Logto-Benutzer.
Aktionen sind in Logto Cloud Enterprise-Plänen verfügbar.
Aktionsskripte können die Authentifizierung beeinflussen und Benutzerdaten ändern. Nur vertrauenswürdige Administratoren sollten sie anzeigen, erstellen, bearbeiten, testen, aktivieren oder löschen dürfen.
In selbstgehosteten Bereitstellungen laufen Aktionsskripte im Logto-Serverprozess mit dessen Berechtigungen. Das Gewähren von Skriptbearbeitungs- oder Testzugriff entspricht der Gewährung von Codeausführung auf dem Logto-Host, daher sollte die Admin-Konsole nicht mit nicht vertrauenswürdigen Benutzern geteilt werden. Behandle Skripte wie vertrauenswürdigen serverseitigen Code; die Laufzeit begrenzt die Zeit und den Speicher eines Skripts, ist aber keine Sicherheitsgrenze für nicht vertrauenswürdigen Code.
Wie Aktionen in die Anmeldung passen
Logto bietet derzeit zwei Aktionstypen:
| Aktionstyp | Wann sie ausgeführt wird | Was sie tun kann |
|---|---|---|
| Post-First-Factor-Verifizierung | Während einer Passwort-Anmeldung, nur nachdem die lokale Passwortüberprüfung von Logto fehlgeschlagen ist. Sie läuft nicht, wenn das Passwort gültig ist. | Die übermittelten Anmeldedaten gegen ein Legacy-System prüfen, dann einen neuen Logto-Benutzer erstellen oder einen bestehenden Benutzer aktualisieren und das Passwort migrieren. |
| Post-Anmeldung | Nachdem der Benutzer alle Authentifizierungsfaktoren abgeschlossen hat, einschließlich MFA falls erforderlich, und bevor Logto die Anmeldung abschließt und Tokens ausstellt. | Den bestehenden Logto-Benutzer mit dem finalen Anmeldekontext aktualisieren und anreichern. |
Beide Aktionstypen laufen nur für SignIn-Interaktionen in der Experience API. Post-First-Factor-Verifizierung gilt nur für Passwort-Anmeldungen; Post-Anmeldung ist unabhängig von der Authentifizierungsmethode.
Skriptmodell
Jeder Aktionstyp hat eine Konfiguration und eine JavaScript-Einstiegsfunktion namens runAction:
const runAction = async ({ event, environmentVariables = {} }) => {
// Das Ereignis inspizieren, optional externe Daten abrufen und
// ein Ergebnis zurückgeben, das von diesem Aktionstyp unterstützt wird.
};
Die Nutzlast enthält:
event: Das produktive Authentifizierungsereignis. Die Struktur hängt vom Aktionstyp ab.environmentVariables: Die für diese Aktion konfigurierten Zeichenfolgenwerte. Diese Werte werden durch die Funktionsnutzlast übergeben; sie sind nicht überprocess.envverfügbar.
Der Editor stellt Typinformationen bereit, aber das gespeicherte Skript wird als JavaScript ausgeführt. Das Skript kann asynchron sein und die injizierte fetch-Funktion verwenden, um externe HTTPS-APIs aufzurufen. Es kann keine Pakete importieren oder auf Node.js-Globals wie require oder process zugreifen.
Das unterstützte Ergebnis ist für jeden Aktionstyp unterschiedlich; siehe die entsprechende Referenzseite, bevor du eine Aktion aktivierst.
Aktionen und Webhooks
Aktionen und Webhooks dienen unterschiedlichen Zwecken:
| Aktionen | Webhooks | |
|---|---|---|
| Ausführung | Synchron und im Authentifizierungsablauf | Asynchron und außerhalb der Authentifizierungsanfrage |
| Kann den aktuellen Authentifizierungsablauf beeinflussen | Ja | Nein |
| Kann einen Benutzer durch das Ergebnis ändern | Ja, mit dem unterstützten Benutzer-Patch | Nicht direkt; der Empfänger kann die Management API separat aufrufen |
| Ereignisabdeckung | Ausgewählte Authentifizierungspunkte | Eine breite Palette von Interaktions- und Datenänderungsereignissen |
| Typische Verwendung | Anmeldedatenmigration, Profilanreicherung vor Token-Ausstellung | Benachrichtigungen, Downstream-Synchronisation, Analytik |
Halte asynchrone Arbeiten in Webhooks. Verwende eine Aktion nur, wenn Logto das Ergebnis benötigt, bevor die Authentifizierung fortgesetzt werden kann.