Zum Hauptinhalt springen

Sende-Rate-Limitierung

Logto wendet eine integrierte, empfängerbasierte Rate-Limitierung auf ausgehende Verifizierungscodes und andere Nachrichten an, die per E-Mail und SMS versendet werden. Dies schützt deine Benutzer und deine Messaging-Anbieter vor Sende-Missbrauch – etwa wenn ein Angreifer das Postfach oder Telefon eines Opfers mit Codes zuspammt oder SMS-Traffic erzeugt, um deine Kosten in die Höhe zu treiben.

Dieses Limit ist verpflichtend und systemweit: Es gilt für jeden Mandanten, unabhängig vom Tarif, und ist nicht mandantenspezifisch konfigurierbar. Es ist unabhängig von:

  • Den Identifier Lockout- und CAPTCHA-Richtlinien, die fehlgeschlagene Verifizierungsversuche zur Verifizierungszeit drosseln, nicht jedoch den Versand selbst.
  • Dem globalen, mandantenbasierten API-Rate-Limit (Fehlercode request.rate_limited), das das gesamte Anfragevolumen eines Mandanten begrenzt.

Funktionsweise

  • Empfängerbasierte Begrenzung: Logto begrenzt, wie viele Nachrichten an denselben Empfänger (E-Mail-Adresse oder Telefonnummer) innerhalb eines kurzen, rollierenden Zeitfensters gesendet werden können. Standardmäßig sind bis zu 10 Sendungen pro Empfänger alle 10 Minuten erlaubt.
  • Anwendungsbereich: Alle serverseitigen Versandpfade, einschließlich Experience API- und Account API-Verifizierungscode-Versand (Anmeldung, Registrierung, Passwort zurücksetzen, MFA und Identifier-Bindung), Management API-Verifizierungscode-Versand, Organisations-Einladungsversand und erneuter Versand sowie Account (/me)-Verifizierungscode-Versand.
  • Wenn das Limit überschritten wird: Die Anfrage wird mit HTTP 429 und dem Fehlercode request.message_rate_limited abgelehnt – dies unterscheidet sich vom globalen Mandanten-Limiter (request.rate_limited) und der Verifizierungszeit-Sperre (session.verification_blocked_too_many_attempts), sodass du es gezielt in deiner Integration behandeln kannst.

Überwache rate-limitierte Sendungen mit einem Webhook

Wenn ein Endbenutzer das empfängerbasierte Limit erreicht, löst Logto das Message.RateLimited-Webhook-Ereignis aus, sodass du auf Sende-Missbrauch reagieren oder diesen melden kannst.

  • Ausgelöst für: Nur Endbenutzer-Verifizierungscode-Versandpfade – die Experience API und Account API. Es wird nicht für First-Party- oder Admin-initiierte Sendungen ausgelöst (Management API-Verifizierungscodes, Organisationseinladungen oder /me).
  • Payload: Die Webhook-Payload enthält die action (zum Beispiel VerificationCodeSend) und den recipient (die E-Mail-Adresse oder Telefonnummer).

Typische Anwendungsfälle:

  • Sende Sicherheitswarnungen an dein Team zur Überprüfung.
  • Löse nachgelagerte Anti-Missbrauchs-Automatisierung für den betroffenen Empfänger aus.

Navigiere zu Konsole > Webhooks, um dich zu registrieren, oder erstelle den Webhook über die Management API. Für die detaillierte Ereignisstruktur und Konfiguration siehe Webhooks.

Unterdrückte Zustellung an unbekannte Empfänger

Um die Konto-Aufzählung zu verhindern, wird – wenn die Anmeldung über einen Identifier deaktiviert ist – ein für eine E-Mail-Adresse oder Telefonnummer angeforderter Anmelde-Verifizierungscode, der keinem Konto zugeordnet ist, stillschweigend nicht zugestellt. Die API antwortet dabei genauso wie bei einer echten Sendung. Ein Angreifer kann diese Antworten daher nicht nutzen, um herauszufinden, welche Adressen registriert sind. Die Zustellung an bestehende Benutzer ist davon nicht betroffen. Siehe auch Konto-Existenz verbergen.