Dinoer

Das Ziel verlangt einen zweiten Faktor

Zwei Wege durch eine Zwei-Faktor-Abfrage, je nachdem, woher der Code kommt, warum ein Code im Szenario abgelehnt wird, und der Fall, den keiner abdeckt: die Einrichtung.

Die Lage. Die Anmeldung klappt, dann verlangt das Ziel einen sechsstelligen Code. Woher dieser Code kommt, entscheidet über den Weg.

Der Code wird aus einem Schlüssel erzeugt, den Sie besitzen

Standard-TOTP, wie es eine Authenticator-App erzeugt. Liegt der Base32-Schlüssel in der Datei mit den Zugangsdaten unter totp_cle, berechnet Dinoer den aktuellen Code selbst:

{"type": "remplir", "selecteur": "input[name=\"otp\"]",
 "valeur": "depuis_secrets_totp"}

Niemand muss etwas eintippen oder auf die Uhr achten. Der Schlüssel bleibt im verschlüsselten Verzeichnis, und den Code berechnet Dinoer, nicht die Seite.

Nehmen Sie diesen Weg, wann immer er möglich ist.

Der Code wird Ihnen geschickt

Per SMS, per E-Mail, in einer App: Dinoer kann ihn nicht erzeugen. attendre_mfa_ntfy veröffentlicht einen Warte-Hinweis auf Ihrem ntfy-topic (der Schlüssel ntfy_topic in der Datei mit den Zugangsdaten), wartet, bis Sie den Code dorthin senden, und tippt ihn dann ins Feld. Abgeschickt wird nicht: Fügen Sie den folgenden Klick hinzu.

[
  {"type": "cliquer", "selecteur": "#send-code"},
  {"type": "attendre_mfa_ntfy", "selecteur": "input[name=\"otp\"]", "timeout": 120},
  {"type": "cliquer", "selecteur": "#confirm"}
]

timeout ist die Wartezeit in Sekunden, standardmäßig 120. Nur eine Nachricht aus 4 bis 8 Ziffern gilt als Code; alles andere auf dem topic wird ignoriert.

Ein Code im Szenario wird abgelehnt

{"type": "remplir", "selecteur": "input[name=\"otp\"]", "valeur": "123456"}

Dinoer lehnt dieses Szenario ab, bevor der Browser startet: Ein Selektor, der otp, totp, mfa oder 2fa enthält, gilt als sensibles Feld, und sein Wert muss aus depuis_secrets oder depuis_secrets_totp stammen. Muss ein Mensch den Code ablesen, ist der vorige Weg der richtige: Dieser Mensch sendet ihn an das topic.

Der Fall, den keiner abdeckt

Die Einrichtung: der allererste Code, in dem Moment, in dem der Schlüssel entsteht.

Wenn Sie die Zwei-Faktor-Authentifizierung einschalten, erzeugt der Server den Schlüssel und zeigt ihn ein einziges Mal. In diesem Moment gibt es ihn sonst nirgends: nicht in Ihrer Datei mit den Zugangsdaten, nicht auf einem topic. depuis_secrets_totp hat nichts zu lesen.

Für diesen Schritt hat Dinoer keine Aktion. Richten Sie es von Hand ein, legen Sie den Schlüssel unter totp_cle in der Datei mit den Zugangsdaten ab und lassen Sie Dinoer ihn danach verwenden.

Wenn Sie einen Code in der Seite berechnen

Die Browser-API crypto.subtle existiert nur in einem sicheren Kontext, HTTPS oder localhost. Auf einem Ziel mit einfachem HTTP ist sie undefiniert, und ein Skript, das sie braucht, scheitert mit Cannot read properties of undefined. depuis_secrets_totp hängt nicht davon ab, da Dinoer den Code außerhalb der Seite berechnet.

Kurz gesagt

  • Schlüssel in der Datei mit den Zugangsdaten: depuis_secrets_totp. Vorzuziehen.
  • Code wird Ihnen geschickt: attendre_mfa_ntfy, dann ein Klick zum Absenden.
  • Ein Code im Szenario wird auf einem Feld, das nach Code aussieht, abgelehnt.
  • Die Einrichtung geschieht einmal von Hand; legen Sie den Schlüssel danach ab.