Logins für Websites mit WebAuthn erstellen

WebAuthn ist ein junger Webstandard zur Anmeldung an Websites ohne Passwort. Dafür muss man nur wenige Schritte implementieren. Bibliotheken gibt es bereits.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Logins für Websites mit WebAuthn
Lesezeit: 11 Min.
Von
  • Jan Mahn
Inhaltsverzeichnis

Wie meldet man sich an einer Website an? Mit einem Kennwort – für die meisten Nutzer ist das noch immer der einzig vorstellbare Weg. Technisch gesehen handelt es sich um ein gemeinsames Geheimnis zwischen Nutzer und Server. WebAuthn, das Teil des FIDO2-Standards ist, schafft dieses Prinzip ab und ersetzt es durch öffentliche und private Schlüssel. Der Nutzer besitzt einen Authenticator (zum Beispiel einen U2F-Stick) und gibt dem Server den öffentlichen, aber niemals den privaten Schlüssel. Um WebAuthn in Aktion zu erleben, und zwar nicht nur in einer Online-Demo, sondern auf einem eigenen Server, muss man selbst Hand anlegen.

Das Beispiel-Projekt für diesen Artikel ist als Zusammenstellung von Microservices aufgebaut, verpackt in zwei Container. Das bringt den Vorteil mit sich, dass Sie Frontend und Backend später unabhängig voneinander in anderen Projekten einsetzen können.

Das Frontend besteht aus statischen HTML-Seiten, die ein nginx-Webserver ausliefert. So weit, so unspektakulär. WebAuthn funktioniert mit reinem JavaScript. Um die nötigen HTTP-Aufrufe etwas schöner zu verpacken, kommt im Beispiel die JavaScript-Bibliothek jQuery zum Zug, die zwar etwas aus der Mode gekommen, aber leicht zu lesen ist. Nutzer von modernen Frontend-Frameworks wie Vue.js oder React können die entscheidenden Stellen schnell in ihre Welt übertragen.