Zum Inhalt springen
BeoHosting
BeoHosting
WordPress

Leitfaden zur WordPress REST API-Authentifizierung

BeoHosting Team··13 Min. Lesezeit Lesezeit
Leitfaden zur WordPress REST API-Authentifizierung

Einführung in die WordPress REST API-Authentifizierung

Die WordPress-API-Schnittstelle REST API ist ein leistungsstarkes Werkzeug, das den Zugriff auf WordPress-Inhalte und -Funktionalitäten über HTTP-Anfragen aus jeder Anwendung ermöglicht, sei es eine mobile App, ein JavaScript-Frontend, ein externer Dienst oder eine völlig separate Webanwendung. Während das Lesen öffentlicher Inhalte normalerweise ohne Authentifizierung verfügbar ist, erfordert das Erstellen, Aktualisieren und Löschen von Inhalten, dass sich der Nutzer authentifiziert, damit WordPress weiß, wer die Aktion ausführt und ob er die erforderlichen Berechtigungen hat.

WordPress unterstützt mehrere Authentifizierungsmethoden für die REST API, und jede hat ihre Vor-, Nachteile und idealen Anwendungsszenarien. Die Wahl der richtigen Methode hängt davon ab, wer auf die API zugreift (Frontend auf derselben Website, externe Anwendung, mobile App), welches Sicherheitsniveau erforderlich ist und wie komplex die Integration sein soll. In diesem Leitfaden gehen wir jede Methode detailliert mit praktischen Beispielen durch.

Cookie-Authentifizierung mit Nonce

Die Cookie-Authentifizierung ist die Standardmethode für Anfragen, die von der WordPress-Website selbst kommen, typischerweise aus JavaScript-Code im Admin-Panel oder im Frontend. Wenn ein Nutzer in WordPress angemeldet ist, sendet der Browser automatisch ein Cookie mit jeder Anfrage, und die WordPress REST API verwendet es zur Identifizierung des Nutzers. Das Cookie allein reicht jedoch nicht aus, da dies CSRF-Angriffe ermöglichen würde, bei denen eine bösartige Website Anfragen im Namen des angemeldeten Nutzers auslösen könnte.

Wie Nonce funktioniert

WordPress verwendet Nonce (Number Used Once) als zusätzliche Schutzschicht gegen CSRF-Angriffe. Ein Nonce ist ein zeitlich begrenztes Token, das WordPress für einen angemeldeten Nutzer generiert und das mit jeder mutierenden Anfrage (POST, PUT, DELETE) gesendet werden muss. Der JavaScript-Code erhält es über die Funktion wp_localize_script() oder die globale Variable wpApiSettings.nonce im Admin-Panel.

  • Generierung - wp_create_nonce('wp_rest') auf der Serverseite
  • Weiterleitung - wp_localize_script() zur Übergabe des Nonce in JavaScript
  • Senden - X-WP-Nonce-Header oder _wpnonce Query-Parameter
  • Gültigkeit - Nonce läuft nach 24 Stunden ab (zwei WordPress-Nonce-Perioden von 12h)
  • Revalidierung - für lange Sitzungen fordern Sie regelmäßig ein neues Nonce über die API an

Die Cookie-Authentifizierung ist ideal für JavaScript-Code, der auf der WordPress-Website selbst ausgeführt wird, da sie außer der korrekten Übergabe des Nonce keine zusätzliche Konfiguration erfordert. Sie ist nicht für externe Anwendungen geeignet, da diese nicht auf das WordPress-Cookie zugreifen können. Beachten Sie auch, dass das Nonce abläuft und lange Sitzungen einen Mechanismus zur Token-Aktualisierung erfordern, damit der Nutzer keinen 403-Fehler mitten in der Arbeit erhält.

Application Passwords

Application Passwords wurden in WordPress 5.6 als eingebaute Methode zur Authentifizierung externer Anwendungen ohne Weitergabe des Hauptpassworts des Nutzers eingeführt. Jeder Nutzer kann mehrere Application Passwords mit beschreibenden Namen (z. B. Mobile App, Zapier Integration, Custom Script) erstellen, und jedes kann unabhängig widerrufen werden, ohne die anderen oder das Hauptpasswort des Nutzers zu beeinflussen.

Erstellung und Verwendung

Ein Application Password wird im WordPress Admin-Panel unter Users, Edit User, Application Passwords-Abschnitt erstellt. Sie geben den Anwendungsnamen ein und WordPress generiert ein 24-Zeichen-Passwort, das in 4 Gruppen zu 6 Zeichen durch Leerzeichen getrennt gruppiert ist. Dieses Passwort wird für HTTP Basic Authentication verwendet, wobei Username und Application Password im Authorization-Header in base64-codiertem Format gesendet werden.

Eine Anfrage mit Application Password sieht wie standardmäßiges HTTP Basic Auth aus: der Authorization-Header enthält Basic gefolgt von einem base64-codierten String username:application_password. Leerzeichen im Passwort werden ignoriert, sodass Sie sie entfernen oder belassen können. WordPress erkennt automatisch, dass es sich um ein Application Password und nicht um das Hauptpasswort des Nutzers handelt, und wendet die entsprechenden Berechtigungen an.

Vorteile und Einschränkungen

  • Einfachheit - integrierte Funktionalität ohne Bedarf an Plugins
  • Granulare Kontrolle - jede Anwendung hat ein eigenes Passwort, das widerrufen werden kann
  • Logging - WordPress protokolliert die letzte Verwendung jedes Application Passwords
  • Einschränkung - funktioniert nur über HTTPS, da Basic Auth Zugangsdaten in jeder Anfrage sendet
  • Einschränkung - keine Scope- oder Berechtigungsgranularität außerhalb der Benutzerrolle

Application Passwords sind eine ausgezeichnete Wahl für Server-zu-Server-Integrationen, ideal für VPS-Hosting-Umgebungen, Automatisierungsskripte und Anwendungen, bei denen Einfachheit wichtiger ist als granulare Zugriffskontrolle. Verwenden Sie unbedingt HTTPS, da Zugangsdaten in jeder Anfrage gesendet werden und ohne HTTPS abgefangen werden können. Für Produktionsintegrationen erstellen Sie einen separaten WordPress-Nutzer mit minimal erforderlichen Berechtigungen, anstatt ein Admin-Konto zu verwenden.

OAuth 2.0

OAuth 2.0 ist ein Industriestandard für Autorisierung, der von Google, Facebook, GitHub und vielen anderen Diensten verwendet wird. WordPress hat keine eingebaute OAuth-Unterstützung, aber sie ist über Plugins wie WP OAuth Server und OAuth 2.0 Provider verfügbar. OAuth ist ideal für Szenarien, in denen Sie Drittanbieter-Anwendungen Zugriff auf Ihre WordPress-API mit präziser Berechtigungskontrolle ohne Weitergabe von Benutzeranmeldedaten gewähren möchten.

OAuth 2.0 Flow

Der häufigste OAuth-Flow für Webanwendungen ist der Authorization Code Flow, der aus mehreren Schritten besteht. Die Anwendung leitet den Nutzer zum WordPress Authorize-Endpoint weiter, wo der Nutzer den Zugriff genehmigt. WordPress leitet den Nutzer mit einem Authorization Code zurück zur Anwendung. Die Anwendung tauscht den Code gegen ein Access Token durch einen Aufruf des Token-Endpoints. Das Access Token wird dann für API-Anfragen im Authorization Bearer Header verwendet.

  • Authorization Code - sicherster Flow für Webanwendungen mit Serverseite
  • Implicit - für SPA-Anwendungen ohne Server (weniger sicher, normalerweise nicht empfohlen)
  • Client Credentials - für Server-zu-Server-Kommunikation ohne Benutzerkontext
  • PKCE - Proof Key for Code Exchange, verbessert die Sicherheit für mobile und SPA-Anwendungen

OAuth bietet das höchste Maß an Kontrolle und Sicherheit, ist aber auch am komplexesten zu implementieren. Access Tokens haben eine begrenzte Lebensdauer und Refresh Tokens werden verwendet, um neue ohne erneute Benutzerautorisierung zu erhalten. Der Scope-Parameter definiert, welche Berechtigungen die Anwendung anfordert, was dem Nutzer Transparenz darüber gibt, was die Anwendung mit seinen Daten tun kann.

JWT (JSON Web Tokens)

JWT-Authentifizierung ist eine beliebte Alternative für REST-API-Zugriff, die Tokens anstelle von Sitzungen verwendet. Ein JWT-Token ist ein signierter String, der Informationen über den Nutzer und Berechtigungen enthält und im Authorization-Header jeder Anfrage gesendet wird. WordPress hat keine eingebaute JWT-Unterstützung, aber sie ist über Plugins wie JWT Authentication for WP REST API und Simple JWT Login verfügbar.

Wie JWT funktioniert

Der Nutzer sendet Username und Passwort an den Token-Endpoint (normalerweise /wp-json/jwt-auth/v1/token) und erhält ein JWT-Token in der Antwort. Dieses Token wird dann im Authorization: Bearer Header aller API-Anfragen gesendet. Der Server verifiziert die Token-Signatur und extrahiert Benutzerinformationen, ohne dass eine Datenbankabfrage erforderlich ist, was JWT für hochbelastete APIs effizienter macht.

Ein JWT-Token besteht aus drei durch Punkte getrennten Teilen: Header (Algorithmus und Token-Typ), Payload (Benutzerdaten, Ablaufzeit, Aussteller) und Signature (kryptografische Signatur, die die Token-Integrität garantiert). Das Token kann clientseitig decodiert werden, aber nicht ohne den Secret Key gefälscht werden, der nur dem Server bekannt ist. Dies ermöglicht es dem Client, Benutzerinformationen aus dem Token ohne zusätzlichen API-Aufruf zu lesen.

Vorteile von JWT

  • Stateless - der Server speichert keine Sitzungen, was die Skalierung erleichtert
  • Self-contained - das Token enthält alle erforderlichen Benutzerinformationen
  • Cross-Domain - funktioniert mit verschiedenen Domains ohne CORS-Probleme mit Cookies
  • Mobile Anwendungen - ideal für mobile Anwendungen, die keine Cookies verwenden
  • Leistung - die Token-Verifizierung erfordert keine Datenbankabfrage

Vergleich der Authentifizierungsmethoden

Die Wahl der Authentifizierungsmethode hängt von Ihrem spezifischen Szenario ab. Cookie und Nonce sind ideal für JavaScript auf derselben Website, da sie keine zusätzliche Konfiguration erfordern. Sehen Sie sich unsere Hosting-Pläne für WordPress-Websites für eine optimale Umgebung an. Application Passwords sind am besten für einfache Server-zu-Server-Integrationen und Skripte, da sie eingebaut und einfach zu verwenden sind. OAuth 2.0 ist die richtige Wahl für Drittanbieter-Anwendungen, bei denen granulare Zugriffskontrolle und Benutzerautorisierung erforderlich sind. JWT ist optimal für mobile Anwendungen und SPA-Frameworks, die mit WordPress als Headless-CMS kommunizieren.

Sicherheitsempfehlungen

  • Verwenden Sie immer HTTPS - alle Authentifizierungsmethoden erfordern eine verschlüsselte Verbindung
  • Minimale Berechtigungen - erstellen Sie Benutzer mit nur den für API-Zugriff erforderlichen Berechtigungen
  • Token-Rotation - implementieren Sie Refresh Tokens und kurze Access-Token-Laufzeiten
  • Rate Limiting - begrenzen Sie die Anzahl der Anfragen pro Nutzer zum Schutz vor Brute-Force-Angriffen
  • Logging - protokollieren Sie alle API-Anfragen für Audits und Erkennung bösartiger Aktivitäten
  • CORS-Konfiguration - beschränken Sie den API-Zugriff nur auf zugelassene Domains

Für Produktionsanwendungen empfehlen wir eine Kombination mehrerer Methoden, bei denen jede ein anderes Szenario abdeckt. Cookie-Authentifizierung für Admin-Panel und Frontend-Interaktionen, Application Passwords für interne Skripte und Automatisierung, JWT für mobile Anwendungen und OAuth für Drittanbieter-Integrationen. Überprüfen Sie regelmäßig aktive Tokens und Application Passwords und widerrufen Sie diejenigen, die nicht mehr verwendet werden, da jedes aktive Token ein potenzieller Angriffsvektor ist.

BeoHosting Team

10+ Jahre Erfahrung — Spezialisten für Webhosting und Infrastruktur

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Zuletzt aktualisiert: