Token-basierte Authentifizierung bei AEM as a Cloud Service

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 erfahren Sie, wie sich eine externe Anwendung programmgesteuert authentifizieren und mithilfe von Zugriffs-Token über HTTP mit AEM as a Cloud Service interagieren kann.

Voraussetzungen

Stellen Sie sicher, dass Folgendes vorhanden ist, bevor Sie mit diesem Tutorial fortfahren:

  1. Zugriff auf eine AEM as a Cloud Service-Umgebung (vorzugsweise eine Entwicklungsumgebung oder ein Sandbox-Programm)
  2. Zugehörigkeit zum Produktprofil „AEM Administrator“ des Author-Service der AEM as a Cloud Service-Umgebung
  3. Abonnement oder Zugang zu den Administrierenden Ihrer Adobe IMS-Organisation (diese müssen eine einmalige Initialisierung der Service-Anmeldeinformationen durchführen)
  4. Die neueste WKND-Site, die in Ihrer Cloud Service-Umgebung bereitgestellt wird

Übersicht über externe Anwendungen

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:

Externe Anwendung

  1. Die Node.js-Anwendung wird über die Befehlszeile aufgerufen

  2. Befehlszeilenparameter definieren Folgendes:

    • Den Host des Autoren-Services von AEM as a Cloud Service, mit dem eine Verbindung hergestellt werden soll (aem)
    • Den AEM Asset-Ordner, dessen Assets aktualisiert wurden (folder)
    • Die zu aktualisierende Metadateneigenschaft und den zu aktualisierenden Wert (propertyName und propertyValue)
    • Den lokalen Pfad zur Datei mit den Anmeldeinformationen, die für den Zugriff auf AEM as a Cloud Service erforderlich sind (file)
  3. 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

  4. Die Anwendung verwendet das Zugriffstoken, um auf AEM zuzugreifen und alle Assets in dem mit dem Befehlszeilenparameter folder angegebenen Ordner aufzulisten

  5. 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.

Zugriffs-Token für die lokale Entwicklung

Zugriffs-Token für die lokale Entwicklung werden für eine bestimmte AEM as a Cloud Service-Umgebung generiert und bieten Zugriff auf den Author- und den Publish-Service. 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 echte Service-Anmeldedaten abrufen und verwalten müssen, können sie schnell und einfach selbst ein temporäres Zugriffs-Token generieren, mit dem sie ihre Integration entwickeln können.

Service-Anmeldeinformationen

Service-Anmeldedaten sind die tatsächlichen Anmeldedaten, die in allen Nicht-Entwicklungsszenarien – insbesondere in der Produktion – verwendet werden und es einer externen Anwendung oder einem externen System ermöglichen, sich über HTTP bei AEM as a Cloud Service zu authentifizieren und damit 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.

Zusätzliche Ressourcen

recommendation-more-help
experience-manager-learn-help-headless-tutorial