AEM stellt eine Vielzahl von HTTP-Endpunkten bereit, mit denen auf Headless-Weise interagiert werden kann, von GraphQL über AEM Content Services bis zur Assets-HTTP-API. Häufig müssen sich diese Headless-Nutzerinnen und -Nutzer bei AEM authentifizieren, um auf geschützte Inhalte oder Aktionen zugreifen zu können. Um dies zu erleichtern, unterstützt AEM die Token-basierte Authentifizierung von HTTP-Anfragen von externen Anwendungen, Services oder Systemen.
In diesem Tutorial wird untersucht, wie eine externe Anwendung sich programmgesteuert authentifizieren und mit AEM as a Cloud Service über HTTP unter Verwendung von Zugriffstoken interagieren kann.
Stellen Sie sicher, dass Folgendes vorhanden ist, bevor Sie mit diesem Tutorial fortfahren:
In diesem Tutorial wird eine einfache Node.js-Anwendung verwendet, die über die Befehlszeile ausgeführt wird, um Asset-Metadaten in AEM as a Cloud Service mithilfe der Assets-HTTP-API zu aktualisieren.
Die Node.js-Anwendung wird wie folgt ausgeführt:
Die Node.js-Anwendung wird über die Befehlszeile aufgerufen
Befehlszeilenparameter definieren Folgendes:
aem
)folder
)propertyName
und propertyValue
)file
)Das Zugriffstoken, das für die Authentifizierung bei AEM verwendet wird, wird von der JSON-Datei abgeleitet, die über den Befehlszeilenparameter file
bereitgestellt wird
a. Wenn in der JSON-Datei (file
) Service-Anmeldeinformationen für die nicht-lokale Entwicklung angegeben sind, wird das Zugriffstoken von den Adobe IMS-APIs abgerufen
Die Anwendung verwendet das Zugriffstoken, um auf AEM zuzugreifen und alle Assets in dem mit dem Befehlszeilenparameter folder
angegebenen Ordner aufzulisten
Für jedes Asset im Ordner aktualisiert die Anwendung seine Metadaten auf der Grundlage des Eigenschaftsnamens und des Werts, die in den Befehlszeilenparametern propertyName
und propertyValue
angegeben sind
Diese Beispielanwendung ist zwar Node.js, jedoch können diese Interaktionen mit verschiedenen Programmiersprachen entwickelt und von anderen externen Systemen ausgeführt werden.
Lokale Entwicklungs-Zugriffstoken werden für eine bestimmte AEM as a Cloud Service-Umgebung generiert und bieten Zugriff auf Autoren- und Veröffentlichungs-Services. Diese Zugriffstoken sind temporär und dürfen nur bei der Entwicklung externer Anwendungen oder Systeme verwendet werden, die mit AEM über HTTP interagieren. Anstatt dass Entwicklerinnen und Entwickler Anmeldeinformationen für Services abrufen und verwalten müssen, können sie schnell und einfach ein temporäres Zugriffstoken erstellen, das ihnen die Entwicklung ihrer Integration ermöglicht.
Service-Anmeldeinformationen sind die echten Anmeldeinformationen, die in allen Nicht-Entwicklungsszenarien verwendet werden – am offensichtlichsten in der Produktion – und die es einer externen Anwendung oder einem externen System ermöglichen, sich bei AEM as a Cloud Service über HTTP zu authentifizieren und mit ihm zu interagieren. Die Service-Anmeldeinformationen selbst werden nicht zur Authentifizierung an AEM gesendet. Stattdessen verwendet die externe Anwendung diese, um ein JWT zu generieren, das mit den APIs von Adobe IMS für ein Zugriffstoken ausgetauscht wird, das dann zur Authentifizierung von HTTP-Anfragen an AEM as a Cloud Service verwendet werden kann.