Wie API-Schlüssel Gespeichert Werden (Und Was Zu Tun Ist, Wenn Sie Einen Verlieren)
In diesem Artikel
Wenn Sie einen Entwickler-API-Schlüssel verloren oder verlegt haben, lautet die direkte Antwort: Es gibt keine Möglichkeit, ihn abzurufen, und auch der Support kann ihn nicht für Sie wiederherstellen, weil der tatsächliche Schlüsselwert nach dem Moment seiner Erstellung nirgendwo gespeichert wird. Die einzige Lösung besteht darin, den alten Schlüssel zu widerrufen und einen neuen zu generieren. Hier erfahren Sie genau, warum das so ist und was stattdessen tatsächlich serverseitig gespeichert wird.
Was Im Moment der Schlüsselgenerierung Geschieht
Wenn Sie einen neuen API-Schlüssel erstellen, generiert das System einen zufälligen Schlüsselwert, mit einem Präfix versehen, damit er auf einen Blick als API-Schlüssel erkennbar ist, aufgebaut aus kryptografisch zufälligen Bytes statt aus etwas Vorhersehbarem. Dieser rohe Schlüssel wird Ihnen genau einmal angezeigt, in der Antwort auf die Erstellungsanfrage, mit einem ausdrücklichen Hinweis, ihn jetzt zu kopieren, da er nicht erneut angezeigt wird. Bevor er irgendwo gespeichert wird, lässt das System ihn durch einen Einweg-Hash laufen und speichert nur diesen Hash — der rohe Schlüssel selbst wird niemals in die Datenbank geschrieben, niemals protokolliert, und niemals auf eine Weise aufbewahrt, die später abgerufen werden könnte, weder von Ihnen noch von jemandem mit Serverzugriff.
Warum Ein Einweg-Hash Statt Einfach den Schlüssel zu Speichern
Ein Einweg-Hash ist so konzipiert, dass Sie verifizieren können, ob ein Wert übereinstimmt, ohne den Prozess umkehren und die ursprüngliche Eingabe wiederherstellen zu können. Wenn Sie eine API-Anfrage stellen, hasht das System den von Ihnen gesendeten Schlüssel und vergleicht diesen Hash mit dem gespeicherten — stimmen sie überein, wird die Anfrage authentifiziert. Das bedeutet, selbst bei einer vollständigen Datenbankkompromittierung erhält ein Angreifer eine Liste von Hashes, keine verwendbaren API-Schlüssel; er kann einen Hash nicht in den ursprünglichen Schlüsselwert zurückverwandeln, sodass Ihre tatsächlichen Anmeldedaten geschützt bleiben, selbst wenn die Speicherschicht selbst offengelegt wird.
Dies ist auch der Grund, warum Ihnen der Schlüssel nur einmal angezeigt wird. Könnte das System ihn Ihnen später erneut anzeigen, würde das bedeuten, dass er irgendwo im Speicher abrufbar war, was den gesamten Zweck des Hashens zunichtemachen würde.
Was in Ihrem Dashboard Tatsächlich Sichtbar Ist
Ihre Liste der API-Schlüssel zeigt den Namen, den Sie jedem gegeben haben, wer ihn erstellt hat, und wann er erstellt und zuletzt aktualisiert wurde — bewusst nicht der Schlüsselwert selbst, da dieser nie aufbewahrt wurde. Dies ist genug Information, um zu identifizieren, welcher Schlüssel welcher ist (nützlich, wenn Sie mehrere für verschiedene Integrationen ausgegeben haben) und zu sehen, wann ein Schlüssel erstellt wurde, ohne jegliches Risiko, dass der Wert über das Dashboard selbst durchsickert.
Wenn Sie Einen Schlüssel Verlieren
Da der rohe Wert nach der Erstellungsantwort tatsächlich nirgendwo mehr existiert, ist sein Verlust kein Support-Ticket — er ist per Design nicht wiederherstellbar. Der richtige Schritt ist, den verlorenen Schlüssel zu widerrufen (was seinen Datensatz vollständig entfernt und alles, was ihn verwendet, sofort ungültig macht) und einen neuen zu erstellen, um ihn in der jeweiligen Integration zu ersetzen, die den alten Wert verwendete. Dies ist ein etwas störenderer Prozess als ein "Schlüssel vergessen"-Wiederherstellungsablauf, aber er existiert genau deshalb, weil die starke Version dieses Sicherheitsmodells keine Möglichkeit hat, im Nachhinein "was war mein Schlüssel" zu beantworten — der Kompromiss ist bewusst.
Was das Löschen Eines Schlüssels Tatsächlich Bewirkt
Das Widerrufen eines Schlüssels entfernt seinen Datensatz vollständig, statt ihn an Ort und Stelle zu deaktivieren. Da die Authentifizierung funktioniert, indem ein eingehender Schlüssel gehasht und nach einem übereinstimmenden gespeicherten Hash gesucht wird, gibt es, sobald der Datensatz weg ist, nichts mehr, womit eine Anfrage mit dem alten Schlüssel übereinstimmen könnte — sie scheitert sofort bei der allernächsten Anfrage, ohne Kulanzfrist oder Verzögerung.
Häufig Gestellte Fragen
Kann ich eine partielle Version meines Schlüssels sehen, wie die letzten vier Zeichen, um ihn später zu identifizieren? Derzeit nicht — nur der Name und Zeitstempel werden zur Identifikation aufbewahrt. Wenn Sie mehrere Schlüssel verwalten, ist die Vergabe eines klar beschreibenden Namens bei der Erstellung der praktische Weg, um den Überblick zu behalten, welcher welcher ist.
Wenn ich einen Schlüssel versehentlich widerrufe, kann ich ihn zurückbekommen? Nein — der Widerruf löscht den Datensatz, und der ursprüngliche Schlüsselwert wurde von vornherein nie gespeichert, sodass es nichts wiederherzustellen gibt. Sie würden einen neuen Schlüssel generieren und aktualisieren, was den alten verwendete.
Hat jeder API-Schlüssel dieselbe Zugriffsebene, oder können sie eingegrenzt werden? Schlüssel sind an Ihren Workspace als Ganzes gebunden, statt individuell auf bestimmte Berechtigungen eingegrenzt zu sein, sodass jeder gültige Schlüssel für einen Workspace die Aktionen ausführen kann, für die Ihr Konto autorisiert ist. Wenn Sie mit mehreren externen Diensten integrieren, macht es die Verwendung eines separaten Schlüssels pro Integration — statt eines gemeinsam genutzten Schlüssels überall — einfach, den Zugriff für eine einzelne Integration zu widerrufen, ohne die anderen zu beeinträchtigen.
Ähnliche Artikel
Wie eine Rechnung Gespeichert Wird: Eine Zeile pro Position, Plus eine Vollständige Kopie
Eine gespeicherte Rechnung besteht aus einer Datenbankzeile pro Position, verbunden über eine gemeinsame Gruppen-ID, und jede Zeile enthält eine vollständige Kopie der Rechnung. Beim Speichern einer Änderung werden all diese Zeilen in einer Transaktion ersetzt.
Warum Anmeldeversuche Begrenzt Werden
Anmeldung, Registrierung, Zwei-Faktor-Prüfungen und das erneute Senden von Bestätigungs-E-Mails teilen sich ein Kontingent von 10 Versuchen pro Stunde und IP-Adresse. Das ist deutlich strenger als die Grenze für normale Anfragen in der App. Darum unterscheiden sich die Zahlen.
Wie Registrierung und E-Mail-Verifizierung Tatsächlich Funktionieren
Beim Anlegen eines Kontos wird in derselben Datenbanktransaktion ein persönlicher Arbeitsbereich eingerichtet. Der Bestätigungslink ist 24 Stunden gültig, und wer auf einen abgelaufenen Link klickt, bekommt automatisch einen neuen zugeschickt.
Wie Ihr Logo Beim Hochladen Gespeichert Wird
Ein als externe URL eingefügtes Logo wird serverseitig abgerufen, gegen eine 2-MB-Grenze und einen echten Bild-Inhaltstyp geprüft und vor dem Speichern in eine eigenständige Daten-URL umgewandelt.
Warum Sie Nach Einer Stunde Abgemeldet Werden
Jedes Sitzungstoken läuft exakt nach einer Stunde ab, und es gibt keinen versteckten Aktualisierungsmechanismus, der es still und heimlich verlängert — plus die eine bewusste Ausnahme für Anmeldungen mit Zwei-Faktor-Authentifizierung.
Wie Kundenportal-Links Ablaufen
Ein Portallink ist standardmäßig 30 Tage gültig, prüft das Ablaufdatum bei jeder Anfrage statt im Voraus, und ordnet die Dokumente eines Kunden über einen exakten Abgleich zu — nicht über einen Fremdschlüssel.