Konfigurieren des OAuth-Server-zu-Server-Zugriffs für AEM Forms Communications-APIs
Dieses Handbuch enthält Anweisungen zum Konfigurieren und Aufrufen von synchronen AEM Forms Communications-APIs, auf die über die Adobe Developer Console mithilfe der OAuth-Server-zu-Server-Authentifizierung zugegriffen wird.
Voraussetzungen
Um eine Umgebung zum Ausführen und Testen von AEM Forms Communications-APIs einzurichten, stellen Sie Folgendes sicher:
Aktualisieren der AEM as a Cloud Service-Umgebung
- AEM-Version 2024.10.18459.20241031T210302Z oder höher
- Aktualisieren von Produktprofilen, wenn die Umgebung vor November 2024 erstellt wurde
Zugriff und Berechtigungen
Vergewissern Sie sich, dass Sie über die erforderlichen Zugriffsrechte und Berechtigungen verfügen, bevor Sie mit der Konfiguration der Kommunikations-APIs beginnen.
Benutzer- und Rollenberechtigungen
- In der Adobe Admin Console zugewiesene Entwicklerrolle
- Berechtigung zum Erstellen von Projekten in der Adobe Developer Console
Git-Repository-Zugriff
- Zugriff auf das Cloud Manager-Git-Repository
- Git-Anmeldeinformationen für das Klonen und Pushen von Änderungen
Generieren eines Zugriffs-Tokens mithilfe von Adobe Developer Console (ADC)
- Generieren Sie ein Zugriffstoken über die Adobe Developer Console mithilfe der OAuth-Server-zu-Server-Authentifizierung.
- Abrufen der Client-ID aus der Adobe Developer Console
Entwicklungs-Tools
- Node.js zum Ausführen von Beispielanwendungen
- Neueste Version von Git
- Zugriff auf Terminal/Befehlszeile
- Texteditor oder IDE zum Bearbeiten von Konfigurationsdateien (VS Code, IntelliJ usw.)
- Postman oder ein ähnliches Tool für API-Tests
Konfigurieren synchroner AEM Forms Communications-APIs
Der Zugriff auf AEM Forms-Kommunikations-APIs erfolgt über Adobe Developer Console mithilfe der OAuth-Server-zu-Server-Authentifizierung.
In den folgenden Schritten wird erläutert, wie Sie die synchronen Forms-Kommunikations-APIs konfigurieren, um PDF mithilfe der Vorlage und der XDP-Datei zu generieren:
Schritt 1: Zugriff auf die AEM Cloud Service-Umgebung und den AEM Forms-Endpunkt
Greifen Sie auf Ihre AEM Cloud Service-Umgebungsdetails zu, um die für die API-Konfiguration erforderlichen URLs und Kennungen abzurufen.
1.1 Bei Adobe Cloud Manager anmelden
- Navigieren Sie zu my.cloudmanager.adobe.com
- Mit Adobe ID anmelden
1.2 Zur Programmübersicht navigieren
Wählen Sie Ihr Programm aus der Liste aus. Sie werden zur Seite Programmübersicht“
1.3 Zugreifen auf und Anzeigen der AEM Cloud Service-Umgebung
Sie können die Umgebungsdetails von AEM Cloud Service mit einer der beiden Optionen anzeigen oder darauf zugreifen:
-
Auf der Seite Programmübersicht
-
Klicken Sie Menü links„Umgebungen“. Es wird eine Liste aller Umgebungen angezeigt
-
Klicken Sie auf den spezifischen Umgebungsnamen, um die Details anzuzeigen
-
Auf der Seite Programmübersicht
-
Suchen Sie den Abschnitt Umgebungen.
-
Klicken Sie auf „Alle anzeigen, um alle Umgebungen anzuzeigen
-
Klicken Sie auf Menü mit den Auslassungspunkten (…) neben der Umgebung
-
Wählen Sie Details anzeigen“
1.4. Suchen des AEM Forms-Endpunkts
Notieren Sie sich auf Detailseite Umgebung“ Ihre AEM-URL-Instanz.
Schritt 2: Git-Repository klonen
Klonen Sie das Cloud Manager-Git-Repository, um Ihre API-Konfigurationsdateien zu verwalten.
2.1 Suchen Sie den Abschnitt Repository .
-
Klicken Sie auf der Programmübersicht auf die Registerkarte Repositorys
-
Suchen Sie den Repository-Namen und klicken Sie auf das Menü mit den Auslassungspunkten (…)
-
Repository-URL kopieren
https://git.cloudmanager.adobe.com/<org>/<program>/2.2 Klonen mit dem Git-Befehl
-
Öffnen Sie die Eingabeaufforderung oder das Terminal
-
Führen Sie den
git cloneBefehl aus, um das Git-Repository zu klonen.code language-bash git clone [repository-url]
Um beispielsweise Ihr Git-Repository zu klonen, führen Sie den folgenden Befehl aus:
https://git.cloudmanager.adobe.com/formsinternal01/AEMFormsInternal-ReleaseSanity-pXXX-ukYYYY/
Weitere Informationen zur Integration von Adobe Cloud Manager und Adobe Cloud Manager finden Sie unter Dokumentation zur Git-Integration.
Schritt 3: Adobe Developer Console-Projekteinrichtung
3.1 Zugriff auf Adobe Developer Console
- Navigieren Sie zu Adobe Developer Console
- Mit Adobe ID anmelden
- Neues Projekt erstellen oder zu Ihrem vorhandenen Projekt navigieren
-
Klicken Sie Abschnitt „Schnellstart auf Neues Projekt erstellen
-
Ein neues Projekt wird mit einem Standardnamen erstellt
-
Klicken oben auf „Projekt bearbeiten“
-
Geben Sie einen aussagekräftigen Namen an (z. B. „FormsProject„)
-
Klicken Sie auf Speichern.
-
Klicken Sie Adobe Developer Console auf Alle Projekte“
-
Suchen Sie Ihr Projekt und klicken Sie darauf, um es zu öffnen.
3.2 Hinzufügen von Forms-Kommunikations-APIs
-
Klicken Sie auf API hinzufügen
-
Filtern im Dialogfeld „API" nach Experience Cloud
-
Wählen Sie Forms-Kommunikations-APIs“
-
Klicken Sie auf Weiter.
-
Wählen Sie OAuth Server-zu-Server Authentifizierungsmethode aus
-
Klicken Sie auf Weiter.
3.3 Produktprofil hinzufügen
-
Wählen Sie das Produktprofil aus, das Ihrer AEM-Instanz-URL (
https://Service Type -Environment Type-Program XXX-Environment XXX.adobeaemcloud.com) entspricht. -
Klicken Sie auf Konfigurierte API speichern. Die API und das Produktprofil werden zu Ihrem Projekt hinzugefügt
-
Sehen Sie sich den Abschnitt Anmeldedaten an
API-Anmeldeinformationen aufzeichnen
API Credentials:
================
Client ID: <your_client_id>
Client Secret: <your_client_secret>
Technical Account ID: <tech_account_id>
Organization ID: <org_id>
Scopes: AdobeID,openid,read_organizations
3.4 Zugriff generieren
Manuelles Generieren von Zugriffs-Token in Adobe Developer Console:
-
Klicken Sie im API-Abschnitt Ihres Projekts auf Schaltfläche Zugriffs-Token generieren“.
-
Kopieren des generierten Zugriffstokens
| note note |
|---|
| NOTE |
| Das Zugriffs-Token ist nur für 24 Stunden gültig |
Programmgesteuerte Generierung von Token mithilfe Adobe IMS-API:
Erforderliche Anmeldedaten:
- Client-ID
- Client-Geheimnis
- Bereiche (typischerweise:
openid, AdobeID, read_organizations, additional_info.projectedProductContext, read_pc.dma_aem_cloud, aem.document)
Token-Endpunkt:
| code language-none |
|---|
|
Beispielanfrage (curl):
| code language-bash |
|---|
|
Antwort:
| code language-json |
|---|
|
Sie können jetzt das generierte Zugriffstoken verwenden, um API-Aufrufe für Entwicklungs-, Staging- oder Produktionsumgebungen durchzuführen.
Schritt 4: Registrieren der Client-ID in der AEM-Umgebung
Damit die Client-ID Ihres ADC-Projekts mit der AEM-Instanz kommunizieren kann, müssen Sie sie mithilfe einer YAML-Konfigurationsdatei registrieren und über eine Konfigurations-Pipeline bereitstellen.
4.1 Suchen oder Erstellen eines Konfigurationsverzeichnisses
-
Navigieren Sie zum geklonten AEM Project-Repository und suchen Sie nach dem
configOrdner . -
Wenn es nicht vorhanden ist, erstellen Sie es auf der Stammprojektebene:
code language-bash mkdir config -
Erstellen Sie eine neue Datei mit dem Namen
api.yamlimconfig:code language-bash touch config/api.yaml -
Fügen Sie den folgenden Code in die
api.yaml-Datei ein:code language-yaml kind: "API" version: "1" metadata: envTypes: ["dev"] # or ["prod", "stage"] for production environments data: allowedClientIDs: author: - "<your_client_id>" publish: - "<your_client_id>" preview: - "<your_client_id>"
Im Folgenden werden die Konfigurationsparameter erläutert:
-
kind: Immer auf
"API"gesetzt (gibt dies als API-Konfiguration an) -
version: API-Version, normalerweise
"1"oder"1.0" -
envTypes: Array von Umgebungstypen, für die diese Konfiguration gilt
["dev"]- Nur Entwicklungsumgebungen["stage"]- Nur Staging-Umgebungen["prod"]- Nur Produktionsumgebungen
-
allowedClientIDs: Client-IDs dürfen auf Ihre AEM-Instanz zugreifen
- author: Client-IDs für die Autorenebene
- publish: Client-IDs für die Veröffentlichungsebene
- preview: Client-IDs für die Vorschauebene
4.2 Änderungen übertragen und übertragen
-
Navigieren Sie zum Stammordner des geklonten Repositorys und führen Sie die folgenden Befehle aus:
code language-bash git add config/api.yaml git commit -m "Whitelist client id for api invocation" git push origin <your-branch>
Schritt 5: Einrichten der Konfigurations-Pipeline
5.1 Bei Adobe Cloud Manager anmelden
- Navigieren Sie zu my.cloudmanager.adobe.com
- Mit Adobe ID anmelden
5.1 Suchen der Karte „Pipelines“
-
Suchen Sie die Karte Pipelines auf der Seite Programmübersicht .
-
Klicken Sie auf Schaltfläche „Hinzufügen
5.2 Pipeline-Typ auswählen
-
Für Entwicklungsumgebungen: Wählen Sie Produktionsfremde Pipeline hinzufügen“. Produktionsfremde Pipelines sind für Entwicklungs- und Staging-Umgebungen vorgesehen
-
Für Produktionsumgebungen: Wählen Sie Produktions-Pipeline hinzufügen“. Produktions-Pipelines erfordern zusätzliche Genehmigungen
1. Pipeline konfigurieren - Registerkarte „Konfiguration“
Auf der Registerkarte Konfiguration:
a. Pipeline-
- Wählen Sie Bereitstellungs-Pipeline“
b. Name der Pipeline
- Geben Sie einen beschreibenden Namen an, z. B. benennen Sie die Pipeline wie
api-config-pipieline
c. Bereitstellungs-Trigger
- Manuell: Bereitstellung nur bei manueller Auslösung (für die Ersteinrichtung empfohlen)
- Bei Git-: Automatische Bereitstellung, wenn Änderungen an die Verzweigung gepusht werden
d. Verhalten bei bedeutenden Metrikfehlern
- Jedes Mal fragen: Bei Fehlern Aktion anfordern (Standard)
- Sofort fehlschlagen: Pipeline bei Metrikfehlern automatisch fehlschlagen
- Sofort fortfahren: Trotz Fehlern fortfahren
e. Klicken Sie auf „Weiter“, um zur Registerkarte Source-Code zu gelangen
2. Pipeline konfigurieren - Registerkarte "Source-Code“
Auf der Registerkarte Source Code:
a. Bereitstellungstyp
- Wählen Sie Zielgerichtete Bereitstellung“
b. Bereitstellungsoptionen
- Wählen Sie „Konfiguration“ (nur Konfigurationsdateien bereitstellen). Dadurch wird Cloud Manager mitgeteilt, dass es sich um eine Konfigurationsbereitstellung handelt.
c. Geeignete Bereitstellungsumgebung auswählen
- Wählen Sie die Umgebung aus, in der Sie die Konfiguration bereitstellen möchten. In diesem Fall handelt es sich um eine
devUmgebung.
d. Definieren von Source-Code-Details
- Repository: Wählen Sie das Repository aus, das Ihre
api.yamlenthält. Wählen Sie beispielsweise dasAEMFormsInternal-ReleaseSanity-pXXXXX-ukYYYYYRepository aus. - Git-Verzweigung: Wählen Sie Ihre Verzweigung aus. In diesem Fall wird unser Code beispielsweise in der
mainbereitgestellt. - Code-Speicherort: Geben Sie den Pfad zu
configVerzeichnis ein. Da sichapi.yamlim Stammordnerconfigbefindet, geben Sie/configein
e. Klicken Sie auf „Speichern, um die Pipeline zu erstellen
Schritt 6: Konfiguration bereitstellen
Stellen Sie nach der Erstellung der Pipeline Ihre api.yaml bereit
6.1 Aus der Pipeline-Übersicht
- Suchen Sie auf der Seite Programmübersicht die Karte Pipelines
- Navigieren Sie zur neu erstellten Konfigurations-Pipeline in der Liste. Suchen Sie beispielsweise nach dem von Ihnen erstellten Pipeline-Namen (z. B. „api-config-pipeline„). Sie können Pipeline-Details einschließlich Status und letzter Ausführung sehen.
6.2 Starten Sie die -Bereitstellung**
- Klicken Sie auf die „Erstellen-Schaltfläche (oder das Wiedergabesymbol ▶) neben Ihrer Pipeline
- Bestätigen Sie die Bereitstellung, wenn Sie dazu aufgefordert werden und die Pipeline-Ausführung beginnt
6.3 Überprüfen der erfolgreichen Bereitstellung
-
Warten Sie, bis die Pipeline abgeschlossen ist.
-
Wenn dies erfolgreich ist, ändert sich der Status in „Erfolg“ (grünes Häkchen ✓).
-
Wenn dies fehlschlägt, ändert sich der Status in „Fehlgeschlagen“ (rotes Kreuz ✗). Klicken Sie Protokolle herunterladen, um die Fehlerdetails anzuzeigen.
-
Jetzt können Sie mit dem Testen der Forms Communications-APIs beginnen. Zu Testzwecken können Sie die Postman, curl oder einen anderen REST-Client verwenden, um die APIs aufzurufen.
Schritt 7: API-Spezifikationen und -Tests
Nachdem Ihre Umgebung konfiguriert ist, können Sie mit dem Testen der AEM Forms-Kommunikations-APIs beginnen, entweder mithilfe der Swagger-Benutzeroberfläche oder programmgesteuert, indem Sie das NodeJS-Programm entwickeln.
Die Swagger-Benutzeroberfläche bietet eine interaktive Oberfläche zum Testen von APIs, ohne Code zu schreiben. Verwenden Sie die Funktion "ausprobieren zum Aufrufen und Testen der Kommunikations-API Generate PDF von Forms.
-
Navigieren Sie zur Forms-Kommunikations-APIReferenz und öffnen Sie die FormsKommunikations-API}-Dokumentation in Ihrem Browser.
-
Erweitern Sie den Abschnitt Dokumenterstellung und wählen Sie Generiert ein ausfüllbares PDF-Formular aus einer XDP- oder PDF-Vorlage, optional mit Datenzusammenführung.
-
Klicken Sie im rechten Bereich auf "ausprobieren.
-
Geben Sie die folgenden Werte ein:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 Abschnitt Parameter Wert bucket AEM-Instanz AEM-Instanzname ohne den Adobe-Domänennamen ( .adobeaemcloud.com) Verwenden Sie beispielsweisepXXXXX-eYYYYYals Bucket.Sicherheit Bearer Token Verwenden Sie das Zugriffstoken aus den OAuth-Server-zu-Server-Anmeldeinformationen des Adobe Developer Console-Projekts Hauptteil template Laden Sie eine XDP-Datei hoch, um das PDF-Formular zu generieren. Sie können beispielsweise " XDP“ verwenden um eine PDF zu generieren. Hauptteil data Eine optionale XML-Datei mit den Daten, die mit der Vorlage zusammengeführt werden sollen, um ein vorausgefülltes PDF-Formular zu generieren. Sie können beispielsweise " XML“ verwenden um eine PDF zu generieren. Parameter X-Adobe-Accept-Experimental 1 -
Klicken Sie auf Senden, um die API aufzurufen
-
Überprüfen Sie die Antwort auf der Registerkarte Antwort:
- Wenn der Antwort-Code
200ist, bedeutet dies, dass die PDF erfolgreich erstellt wurde. - Wenn der Antwort-Code
400ist, bedeutet dies, dass die Anfrageparameter ungültig oder fehlerhaft sind. - Wenn der Antwort-Code
500ist, bedeutet dies, dass ein interner Server-Fehler vorliegt. - Wenn der Antwort-Code
403ist, bedeutet dies, dass ein Autorisierungsfehler vorliegt.
In diesem Fall lautet der Antwort-Code
200. Das bedeutet, dass die PDF erfolgreich generiert wurde:
Jetzt können Sie die erstellte PDF über die Schaltfläche Herunterladen herunterladen und in PDF Viewer anzeigen:
note note NOTE Zu Testzwecken können Sie auch den Postman, curl oder einen anderen REST-Client verwenden, um die AEM-APIs aufzurufen. - Wenn der Antwort-Code
Entwickeln Sie eine Node.js-Anwendung, um ein ausfüllbares PDF-Formular aus einer XDP-Vorlage und einer XML-Datendatei mithilfe der Document Services-API
Voraussetzungen
- Auf Ihrem System installierte Node.js
- Aktive AEM as a Cloud Service Instanz
- Bearer-Token für die API-Authentifizierung von Adobe Developer Console
- XDP-Beispieldatei: closingForm.xdp
- XML-Beispieldatei: closingForm.xml
Um die Node.js-Anwendung zu entwickeln, folgen Sie der schrittweisen Entwicklung:
Schritt 1: Erstellen Sie ein neues Node.js-Projekt
Öffnen Sie den Befehl/das Terminal und führen Sie die folgenden Befehle aus:
| code language-bash |
|---|
|
Schritt 2: Installieren Sie die erforderlichen Abhängigkeiten
Installieren Sie die node-fetch, dotenv und form-data-Bibliotheken, um HTTP-Anfragen zu stellen, Umgebungsvariablen zu lesen und Formulardaten zu verarbeiten.
| code language-bash |
|---|
|
Schritt 3: Aktualisieren Sie package.json
-
Öffnen Sie den Befehl cmd/Terminal und führen Sie den Befehl aus:
code language-bash code .
Das Projekt wird im Code-Editor geöffnet.
-
Aktualisieren Sie die
package.jsonDatei , um dietypezumodulehinzuzufügen.code language-bash { "name": "demo-nodejs-generate-pdf", "version": "1.0.0", "type": "module", "main": "index.js", }
Schritt 4: Erstellen Sie eine .env-Datei
-
Erstellen der .env-Datei auf der Stammebene eines Projekts
-
Fügen Sie die folgende Konfiguration hinzu und ersetzen Sie die Platzhalter durch die tatsächlichen Werte aus den OAuth Server-zu-Server-Anmeldeinformationen des ADC-Projekts.
code language-bash CLIENT_ID=<ADC Project OAuth Server-to-Server credential ClientID> CLIENT_SECRET=<ADC Project OAuth Server-to-Server credential Client Secret> SCOPES=<ADC Project OAuth Server-to-Server credential Scopes>
note note NOTE Sie können die CLIENT_ID,CLIENT_SECRETundSCOPESaus dem Adobe Developer Console-Projekt kopieren.
Schritt 5: Erstellen Sie src/index.js
- Erstellen
index.jsDatei auf der Stammebene des Projekts - Fügen Sie den folgenden Code hinzu und ersetzen Sie die Platzhalter durch die tatsächlichen Werte:
| code language-javascript |
|---|
|
Schritt 6: Führen Sie die Anwendung aus
| code language-bash |
|---|
|
Die PDF wird im demo-nodejs-generate-pdf erstellt. Navigieren Sie zum Ordner , um die generierte Datei mit dem Namen generatedForm.pdf zu finden.
Sie können die generierte PDF öffnen, um sie anzuzeigen.
Fehlerbehebung
Häufige Probleme und mögliche Ursachen
Problem 1: 403 Verbotener Fehler
Symptome:
- API-Anfragen geben
403 Forbiddenzurück - Fehlermeldung: Nicht autorisierter Zugriff
Mögliche Ursache:
- Client-ID nicht in der
api.yamlder AEM-Instanz registriert
Problem 2: 401 Nicht autorisierter Fehler
Symptome:
- API-Anfragen geben
401 Unauthorizedzurück - Fehlermeldung: Ungültiges oder abgelaufenes Token
Mögliche Ursachen:
- Zugriffstoken abgelaufen (nur für 24 Stunden gültig)
- Falsche oder nicht übereinstimmende Client-ID und Client-Geheimnis
Problem 3: Fehler „404 Nicht gefunden“
Symptome:
- API-Anfragen geben
404 Not Foundzurück - Fehlermeldung: Ressource nicht gefunden oder API-Endpunkt nicht gefunden
Mögliche Ursache:
- Falscher Bucket-Parameter (stimmt nicht mit der AEM-Instanzkennung überein)
Problem 4: Pipeline-Bereitstellung schlägt fehl
Symptome:
- Pipeline-Ausführung konfigurieren schlägt fehl
- Bereitstellungsprotokolle enthalten Fehler im Zusammenhang mit
api.yaml
Mögliche Ursachen:
- Ungültige YAML-Syntax (Einzug, Anführungszeichen oder Probleme mit dem Array-Format)
api.yamlin falschem Verzeichnis platziert- Fehlerhafte oder falsche Client-ID in der Konfiguration
- Ungültiges Client-Geheimnis
Problem 5: Forms-Kommunikations-APIs werden nicht ausgeführt
Symptome:
- API-Anfragen geben Fehler zurück, die auf nicht unterstützte oder nicht verfügbare Funktionen hinweisen.
- Die Generierung von PDF mit XDP und XML funktioniert nicht.
- Die Pipeline-Bereitstellung wurde erfolgreich abgeschlossen, aber API-Aufrufe zur Laufzeit schlagen fehl.
Mögliche Ursache:
In der AEM-Umgebung wird eine Version ausgeführt, die vor der Einführung oder Unterstützung der Forms-Kommunikations-APIs veröffentlicht wurde.
Informationen zum Aktualisieren der AEM-Umgebung finden im Abschnitt Aktualisieren der AEM-Instanz“.
Aktualisieren der AEM-Instanz
So aktualisieren Sie die AEM-Instanz, um nach Umgebungsdetails zu suchen:
-
Wählen Sie das Symbol
ellipsis(…) neben dem Umgebungsnamen aus und klicken Sie auf Aktualisieren -
Klicken Sie auf Senden und führen Sie die vorgeschlagene Full-Stack-Pipeline aus.
Verwandte Artikel
- Informationen zum Einrichten einer Umgebung für Batch (asynchrone APIs) finden Sie unter Batch-Verarbeitung in AEM Forms as a Cloud Service Communications.