Zum Hauptinhalt springen
Authentication ist neu. Führen Sie jeden Import zuerst in einer Sandbox-Anwendung aus und importieren Sie danach in Ihre Live-Anwendung.
Ein Import überführt Personen von einer anderen Identitätsplattform zu Didit Authentication. Ihr Passwort, ihre verifizierte E-Mail-Adresse, ihre Social-Login-Verknüpfungen, ihre Authenticator-App und ihre Organisationsrollen werden dabei übernommen. Für die Personen ändert sich zunächst nichts, bis Ihre Anwendung sie mit Didit anmeldet. Importe verwenden die Management-API für Authentication Ihrer Anwendung mit einer Konsolensitzung, die write:authentication besitzt (oder read:authentication, um Importe aufzulisten). Sie verwenden niemals ein Endbenutzer-Token oder einen Verifizierungs-API-Schlüssel. In den Beispielen lautet MANAGEMENT_BASE:

Zwei Importwege

Datei importieren

1. Hochladen

Jeder Schalter keep_* ist true, sofern Sie nicht false senden. Der Aufruf gibt 202 mit einem Auftrag zurück. Eine Anwendung speichert gleichzeitig höchstens 5 hochgeladene Dateien.

2. Probelauf prüfen

Jeder Upload startet einen Probelauf. Dieser prüft jede Person und schreibt nichts. Fragen Sie GET import-jobs/{id}/ ab: Ein fehlgeschlagener Probelauf listet seine Fehler auf. Korrigieren Sie die Datei und laden Sie sie erneut hoch.

3. Import starten

POST import-jobs/{id}/start/ importiert, was der Probelauf geprüft hat, und gibt 202 zurück.
  • Personen werden in Batches von 1.000 importiert. Jeder Batch wird einzeln übernommen.
  • Pro Anwendung läuft jeweils nur ein Import (sonst import_running).
  • Ein unterbrochener Import wird nach seinem letzten übernommenen Batch fortgesetzt.
  • Bereits importierte Personen werden übersprungen, sodass Sie dieselbe Datei erneut ausführen können.
  • Die Person, die den Import gestartet hat, erhält eine E-Mail, wenn der Import endet oder abbricht.
Die hochgeladene Datei wird verschlüsselt gespeichert. Sie wird gelöscht, wenn der Import endet, wenn ihr Probelauf fehlschlägt oder 24 Stunden nach einem Probelauf, der nie importiert wurde.

Importe in Batches

Senden Sie bis zu 1.000 Personen pro Anfrage mit einem idempotency_key von höchstens 100 Zeichen.
  • Ein Probelauf gibt 200 mit dem Ergebnis zurück und schreibt nichts.
  • Bei dry_run: false gibt ein erfolgreicher Import 201 zurück. Ein Batch mit einem Fehler gibt 400 zurück und importiert niemanden.
  • Eine Wiederholung einer übernommenen Anfrage mit demselben Schlüssel gibt das gespeicherte Ergebnis zurück. Derselbe Schlüssel mit anderem Inhalt gibt 400 {"idempotency_key": "different_payload"} zurück.
  • Firebase-Parameter gehören in ein firebase-Objekt: {signer_key, salt_separator, rounds, mem_cost}.
  • GET imports/ listet übernommene Batches auf.

Dateiformat

JSON

Ein Array mit Personen oder ein Objekt, dessen users das Array enthält.

CSV

Dieselben Spalten mit einzelnen Werten, dazu google_id, apple_id, github_id, microsoft_id, microsoft_tenant_id, organization_slug, organization_name und organization_role. Eine Person in mehreren Organisationen bekommt eine Zeile pro Organisation.
Unbekannte Felder oder Spalten sind Fehler und werden niemals ignoriert.

Duplikate und bestehende Konten

  • Zeilen mit derselben E-Mail-Adresse ergeben eine Person. Eine identische Zeile zählt als Duplikat. Eine Zeile mit mehr Verknüpfungen, Organisationen oder einer Authenticator-App wird zusammengeführt.
  • Zwei verschiedene Passwort-Hashes, Authenticator-Geheimnisse oder Organisationsrollen für dieselbe Person sind Fehler. Ebenso ist es ein Fehler, wenn zwei Personen dieselbe external_id oder denselben Provider-Subject beanspruchen.
  • Existiert bereits ein Konto mit dieser E-Mail-Adresse und hat ein früherer Import es erstellt, wird die Person übersprungen (already_imported). Hat sich die Person selbst registriert, ist es ein identity_conflict-Fehler. Ein Import ändert niemals ein bestehendes Konto.

Passwörter

Firebase-Parameter werden verschlüsselt und nur für diese Anwendung gespeichert. Jedes andere Format oder ein Kostenfaktor über diesen Grenzwerten bedeutet, dass die Person ein neues Passwort benötigt. Nach der ersten erfolgreichen Anmeldung einer Person speichert Didit ihr Passwort erneut in dem eigenen Format.

Personen ohne verwendbares Passwort

Wenn für eine Person kein Hash oder ein nicht unterstützter Hash vorliegt, erhält ein Anmeldeversuch mit Passwort die übliche Antwort für ein falsches Passwort. Didit sendet dieser Person außerdem einen Link per E-Mail, um ein neues Passwort festzulegen (30 Minuten gültig, höchstens einmal täglich). Das geschieht nur, wenn ihre E-Mail-Adresse verifiziert ist, das Konto nicht gesperrt ist und die Anmeldung mit Passwort aktiviert ist. Im Ergebnis zählt reset_required die Personen ohne verwendbares Passwort. reset_emails zählt davon diejenigen mit einer verifizierten E-Mail-Adresse, denn nur sie können auf diesem Weg erreicht werden. Personen mit einer nicht verifizierten E-Mail-Adresse können sich nicht mit einem Passwort anmelden. Sie können sich weiterhin mit einem E-Mail-Code anmelden, sofern Sie diese Methode aktivieren.
  • Social-Links werden für Anbieter beibehalten, die Ihre Anwendung bereits konfiguriert hat, unter der aktuellen Client-ID Ihrer Anwendung. Bei einer erneuten Anmeldung ist dann kein Nachweis per E-Mail erforderlich. Google- und GitHub-Subjects sind global. Apple-Subjects sind pro Entwicklerteam und Microsoft-Subjects sind pro App-Registrierung gültig, daher passen diese Links nur, wenn Ihre alte Plattform dasselbe Team oder dieselbe Registrierung verwendet hat. Links zu Anbietern, die Sie nicht konfiguriert haben, werden als social_unavailable gezählt und nicht importiert.
  • Die TOTP-Secrets der Authenticator-Apps (SHA-1, 6 Stellen, 30 Sekunden) werden verschlüsselt gespeichert. Importierte Personen müssen sie als zweiten Faktor verwenden. Sie erhalten keine Wiederherstellungscodes.
  • Organisationen, die noch nicht existieren, werden anhand ihres Slugs angelegt.
  • Passkeys können nicht importiert werden. Sie gehören zu Ihrer alten Anmelde-Domain, daher fügen Personen nach der Anmeldung bei Didit einen neuen Passkey hinzu.

Ergebnisse

Jeder Probelauf, jeder Batch und jeder Job liefert dasselbe result: Antworten enthalten niemals Passwort-Hashes, Salts, Authenticator-Secrets oder Feldwerte.

Vor der Umstellung

Testen Sie in Ihrer Sandbox-Anwendung:
  • die Anmeldung mit jedem importierten Passwortformat,
  • die E-Mail zum Festlegen eines neuen Passworts für eine Person ohne verwendbaren Hash,
  • Social-Anmeldung und Authenticator-Codes für importierte Personen,
  • die zweimalige Ausführung derselben Datei.
Prüfen Sie anschließend, ob das vendor_data jeder Person mit dem Wert übereinstimmt, den Sie für deren Verifizierungen und Transaktionen verwenden.
Zuletzt geändert am 7. November 2026