Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

JWT-Authentifizierung

Token-Authentifizierung für die REST- und GraphQL-APIs der DXP mit lexik/jwt-authentication-bundle - Erzeugen und Wechseln des Schlüsselpaars, die Umgebungsvariablen, die Firewalls, die das Rezept auskommentiert…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/dxp-developers/jwt-authentication.md

On this page

This page is a translation. Read the English original

JWT-Authentifizierung

Diese Seite richtet sich an Entwickler, die Apps und Dienste sich mit Tokens an den APIs der DXP anmelden lassen. Die DXP verlangt lexik/jwt-authentication-bundle; die Anleitung des Skeletons (Abschnitt 10) sagt, das Schlüsselpaar sei "required for the REST API to function", und es wird bei jeder Installation erzeugt.

Inhalt

  1. Das Schlüsselpaar
  2. Die JWT-Firewalls einschalten
  3. Ein Token holen und verwenden
  4. Die Schlüssel wechseln
  5. Sicher halten

Das Schlüsselpaar

php bin/console lexik:jwt:generate-keypair
# writes config/jwt/private.pem and config/jwt/public.pem

Die Pfade und die Passphrase kommen aus .env.local:

JWT_SECRET_KEY=%kernel.project_dir%/config/jwt/private.pem
JWT_PUBLIC_KEY=%kernel.project_dir%/config/jwt/public.pem
JWT_PASSPHRASE=<64 random hex characters>

Git ignoriert die Schlüsseldateien. Sichern Sie sie sicher: Gehen sie verloren, ist jedes Token ungültig.

Die JWT-Firewalls einschalten

In einem installierten Projekt auf Platform v5 enthält die config/packages/security.yaml des Rezepts drei JWT-Firewalls, auskommentiert, unter der Zeile "Uncomment the rules below to enable JSON Web Token (JWT) authentication for REST and/or GraphQL":

FirewallZweck
ibexa_jwt_reststellt Tokens aus: eine JSON-Anmeldung auf der Route ibexa.rest.create_token
ibexa_jwt_rest.apinimmt Tokens bei REST-Anfragen an, die einen Header Authorization tragen
ibexa_jwt_graphqlnimmt Tokens bei GraphQL-Anfragen von außerhalb der Administration an

Kommentieren Sie die benötigten ein, behalten Sie ihre Reihenfolge vor den allgemeinen Firewalls bei und leeren Sie den Cache. Prüfen Sie die Datei Ihres eigenen Projekts: Hat das Rezept sie anders geschrieben, folgen Sie Ihrer Datei.

Ein Token holen und verwenden

Die Token-Route ibexa.rest.create_token ist /user/token/jwt unter dem REST-Präfix (Die REST-API). Die Anmeldefelder sind JWTInput.username und JWTInput.password:

BASE="https://127.0.0.1:8000/api/ibexa/v2"       # your prefix
curl -s -X POST "$BASE/user/token/jwt" \
  -H "Content-Type: application/vnd.ibexa.api.JWTInput+json" \
  -H "Accept: application/vnd.ibexa.api.JWT+json" \
  -d '{"JWTInput": {"username": "api-reader", "password": "..."}}'

curl -s "$BASE/content/locations/1/2" \
  -H "Accept: application/vnd.ibexa.api.Location+json" \
  -H "Authorization: Bearer <token>"

Legen Sie für jeden Client einen eigenen Benutzer an, mit einer Rolle, die nur erlaubt, was der Client braucht. Verwenden Sie nie das Administratorkonto für einen API-Client.

Die Schlüssel wechseln

php bin/console lexik:jwt:generate-keypair --overwrite
php bin/console cache:clear

Vorhandene Tokens funktionieren nicht mehr; Clients melden sich erneut an. Planen Sie den Wechsel wie eine Bereitstellung.

Sicher halten

  • Nur HTTPS; ein Token ist für seine Lebensdauer ein Passwort.
  • JWT_PASSPHRASE und die Schlüsseldateien gehören nie in Git, Tickets oder Chats.
  • Kurze Lebensdauern für Tokens von Clients, die auf Geräten von Benutzern laufen.
  • JWT authentication errors nach einer Bereitstellung bedeuten meist fehlende oder nicht lesbare Schlüsseldateien (Fehlersuche).

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x