Gut entwickelte Headless-Fähigkeiten sind ein starkes Merkmal der Ibexa DXP. REST API und GraphQL, die "out of the box" verfügbar sind, sind leistungsstark, schnell und zuverlässig und bieten Zugriff auf alle Kernfunktionen des Produkts. Diese APIs werden von Entwicklern häufig zur Erstellung eleganter Front-End-JavaScript-Einzelseitenanwendungen, zur Verbindung eigenständiger mobiler Anwendungen sowie für viele andere Fälle verwendet.
Der Technologiemarkt verändert sich rasant, insbesondere wenn es um Authentifizierung, Autorisierung oder allgemein um die Kommunikation zwischen verschiedenen Diensten geht.
Aufgrund ihrer Natur ist die Authentifizierung immer ein wenig heikel. Die breite Palette verfügbarer Lösungen macht es nicht einfacher, da es nicht möglich wäre, sie alle in Ibexa's DXP zu überwachen, zu implementieren und auszuliefern.
Wir sind also stolz darauf, einen Schritt nach vorn zu machen und eine neue Methode der Authentifizierung gegen unsere Public Headless APIs einzuführen. Bisher war es nur möglich, auf sie entweder über sitzungsbasierte Authentifizierung oder HTTP-Basisauthentifizierung zuzugreifen. Mit der Version 3.2 führen wir eine neue, moderne Authentifizierungsmethode ein - JSON Web Token (JWT). JWT ist eine sichere, schnelle und anerkannt einfache Technologie, die es schon seit einiger Zeit gibt und die in der modernen Webentwicklungswelt weit verbreitet ist.
JSON Web Token - JWT
JWT ist ein Mechanismus, der im Zusammenhang mit Web-APIs, aber auch im weiteren Sinne in den allgemeinen Begriffen Web- und mobile Anwendungen verwendet wird. Anstelle der Verwendung eines traditionellen Session-Cookies oder HTTP-basierter Auth-Header wird bei dieser Methode ein eindeutiges Token generiert, das für jede einzelne Anfrage, die eine Berechtigungsprüfung erfordert, verwendet werden muss. Ein solches Token hat seine TTL (Time To Live), nach der es nicht mehr verwendbar ist und ein neues Token erneut generiert werden muss.
Die Berechtigungsnachweise müssen nur einmal an die Anwendung gesendet werden, wenn ein neues Token angefordert wird. Einmal generiert, reicht das Token allein aus, um sich erfolgreich im System zu authentifizieren.
Weitere Informationen finden sich unter JWT.io.
Konfiguration in Ibexa DXP
In v3.2 der Ibexa DXP ist die JWT-Authentifizierung ein Opt-in-Feature. Sie muss also aktiviert werden, um verfügbar zu sein.
Da es bisher ausschließlich für die Authentifizierung in Page Builder verwendet wurde, ist die Funktion bereits installiert. Auch sollten bereits einige Konfigurationen im System verfügbar sein. Einige grundlegende Konfigurationen sind in der Datei config/packages/lexik_jwt_authentication.yaml zu finden. Im Gegensatz zu dem, was Page Builder benötigt, erfordert die vollständige JWT-Unterstützung die Aktivierung der authorization_header Option.
Die gesamte Konfiguration könnte wie folgt aussehen:
Darüber hinaus wird auch eine neue Symfony Firewall benötigt. Sie sollte vor ezpublish_front in der Datei config/packages/security.yaml definiert werden.
Für REST API sollte die folgende Firewall konfiguriert werden:
Für GraphQL ist es fast dasselbe:
In der neuesten Version sind diese Firewalls bereits in der Standardkonfigurationsdatei enthalten.
Verwendung
Diese neue Funktion fügt einen neuen REST-API-Endpunkt und eine GraphQL-Mutation hinzu, die aufgerufen werden kann, um ein Token zu erhalten.
Method |
POST |
Endpoint |
/api/ezp/v2/user/token/jwt |
Accept header |
application/vnd.ez.api.JWT+json |
Content-Type header |
application/vnd.ez.api.JWTInput+json |
Beispiel für eine Anfrageinstanz:
Und die erwartete Antwort, wenn die angegebenen Berechtigungsnachweise gültig sind:
Jetzt muss das Token als Wert für die Inhaber-Token-Authentifizierungsmethode in der Client-Anwendung festgelegt werden.
Zusammenfassung
Diese neue bequeme Authentifizierungsmethode trägt dazu bei, dass Ibexa's DXP ein noch besseres Entwicklererlebnis bietet, indem es die Arbeit mit Headless schneller, unkomplizierter und reibungsloser macht. In der kommenden Version wird es weitere Verbesserungen für Entwickler geben!
K3 Innovationen GmbH
Hohenzollern Str. 66-68
D - 52351 Düren
Kommunikation:
Tel.: +49 (0) 24 21 / 50 59 90
Fax: +49 (0) 24 21 / 22 93 11
E-Mail: contact (at) k3-innovationen.de
Web:
www.k3-innovationen.de
www.beolo.de
www.jitsi-meet-server.de
www.bigbluebutton-hosting.de
www.intranetbox.de
www.cms-webprojekte.de
www.emailverschluesselung.com
www.pressebox.de/digitalisierung
Social Media:
K3 Innovationen GmbH auf Facebook
K3 Innovationen GmbH auf Twitter
K3 Innovationen GmbH auf Youtube
K3 Innovationen GmbH auf Instagram
K3 Innovationen GmbH auf LinkedIn
K3 Innovationen GmbH auf XING
DIGITALAGENTUR
Die Zukunft digital gestalten mit der K3 Innovationen GmbH – der Digitalagentur. Wir beraten und begleiten Unternehmen bei der Digitalisierung.
Seit 1998 entwickeln, realisieren und betreiben wir integrierte E-Business Lösungen für den Mittelstand, soziale Träger, Verbände und Kommunen. Maßgeschneidert, technologisch aktuell und auf betriebswirtschaftlichen Nutzen für unsere Kunden geprüft – für das gemeinsame Wirken von Marketing, Sales und IT.
Unser Portfolio umfasst innovative Lösungen für Portale, E-Commerce, SEO, CRM, Videochat und Video-Konferenzlösungen, PIM, ERP, sowie Security und Datenschutz konformen Rechenzentrumsbetrieb. Also alles für Ihren Erfolg in der digitalen Welt.
Insbesondere Kunden aus den Branchen Chemie, Energie, Maschinenbau, Sozialwirtschaft, Dienstleistungen, Verbände, Transport und Medizin vertrauen auf die Digitalagentur K3 Innovationen. Denn wir sind mit Strukturen, Abläufen und Anforderungen in der jeweiligen Branche bestens vertraut.
So können wir als fundierte Partner auf Augenhöhe beraten und für das Unternehmen spezifische Potentiale erkennen.
Das gewonnene Wissen wird dann zielführend und effizient umgesetzt – von einem hoch qualifizierten und motivierten Team, das Ihnen langfristigen Vorsprung am Markt gewährleistet.
Lesen Sie mehr über unsere Onlineprojekte, die Intranet-Lösung „IntranetBOX“ sowie der Videochat Lösung „beolo“ für mittelständische Unternehmen, soziale Träger, Verbände und Kommunen.
Lernen Sie uns kennen und schätzen.