Es ist jetzt fast auf den Tag fünf Jahre her, dass WordPress 4.4 vorgestellt wurde. Eines der großen Features war seiner Zeit die neue REST-API. Die Programmierschnittstelle wurde von viele (auch von mir) als großer Durchbruch und nächster Schritt in der Weiterentwicklung von WordPress gefeiert. Viel passiert ist seither nicht. Unter anderem auch deshalb, weil die API ab Werk keine Möglichkeit zur Authentifizierung mitgebracht hat.

WordPress 5.6, das am 8. Dezember 2020 veröffentlich werden soll, will diese Unzulänglichkeit nun beheben und legt den wichtigen Passwortschutz in Form von Application Passwords (auch für die ältere XML-RPC-API) nach.

Was soll das eigentlich?

In einer idealen Welt ließen sich verschiedenste Dienste und Apps unkompliziert mit WordPress verbinden. So könnte ich einen Text-Editor auf meinem Computer mit einem Klick dazu befähigen, direkt Inhalte hier auf KrautPress.de zu veröffentlichen, könnte mit einer App wie IsyPress Fotos von meinem Smartphone veröffentlichen oder diese WordPress-Installation mit einem zentralen Management-Service verbinden, mit dem ich den Zustand all meiner WordPress-Seiten immer im Blick haben kann.

Diese Möglichkeiten habe ich heute schon, bin in vielen Fällen aber einige, teils komplizierte, Schritte davon entfernt, die jeweiligen Dienste mit WordPress zu verbinden.

Dieses Fehlen eines zuverlässigen und vor allem einfachen Authentifizierungsmechanismus ist eines der größten Hemmnisse für die weitere Verbreitung von API-basierten Diensten rund um WordPress. Die neuen Application Passwords werden es ermöglichen, externen Diensten (und Apps) entweder Passwörter zu generieren oder ihnen den Zugriff über eine gesonderte Anmelde-Seite zu gewähren.

Application Passwords generieren

Nach dem Update auf WordPress 5.6 findet sich ein Abschnitt Application Passwords in jedem Profil in der Benutzer-Verwaltung. Hier können Zugänge generiert werden, die dann dem Zugriffs-Level des jeweiligen Accounts entsprechen. Nach kurzer Benennung des neuen Zugangs zeigt WordPress das 20-Zeichen-Passwort einmalig an und listet anschließend Zeit und IP-Adresse des jeweils letzten Zugriffs. Nicht mehr benötigte App-Zugänge können mit einem Klick widerrufen werden.

In seinem Integration Guide berichtet George Stephanis, der das neue Feature maßgeblich mit vorangetrieben hat, zusätzlich noch von einem einfacheren „Authorization Flow“, der von der App angestoßen werden kann, die um den Zugang bittet. Die App öffnet dafür eine Seite im WordPress-Backend, in der mit einem Klick Zugriffsrechte gewährt werden können, bevor das dabei generiere Passwort automatisch mittels GET-Parameter an die App übergeben wird.

Voraussetzung für die Nutzung von Application Passwords ist im Übrigen die Nutzung eines SSL-Zertifikats für die gesamte WordPress-Installation.

Blick in die Zukunft

Stephanis plant, den Umfang der Berechtigungen zukünftig feiner steuerbar zu machen. So könnten eines Tages zum Beispiel gezielt nur Rechte für die Verwaltung von Kommentaren, das Anlegen und Managen von Inhalt oder die Benutzerverwaltung vergeben werden.

Auch zukünftige neue APIs können recht unproblematisch auf Application Passwords zurückgreifen. Neben den bestehenden XML-RPC- und REST-Schnittstellen könnte so zum Beispiel auch eine GraphQL-API auf denselben Authentifizierungsmechanismus zurückgreifen.

Die bisherige Implementation der Application Passwords ist recht minimal, wird aber dennoch ein gigantischer Schritt für das ganze Ökosystem API-basierter WordPress-Erweiterungen bedeuten. Jetzt wo Authentifizierung ein einfach lösbares Problem geworden ist, sind Entwicklerinnen und Entwickler hoffentlich eher dazu geneigt, neue Experimente zu wagen und sich an Funktionen zu versuchen, die uns heute noch gar nicht in den Sinn kommen.