Die Rotation von OAuth-basierten Client-Anmeldeinformationen funktioniert in der Autoreninstanz, aber nicht in der Veröffentlichungsinstanz
Beim Rotieren von OAuth-Client-Anmeldeinformationen in Adobe Experience Manager (AEM) Forms schlägt die Authentifizierung auf der Veröffentlichungsinstanz fehl, obwohl sie in der Autoreninstanz funktioniert. Dieses Problem wird in der Regel durch nicht übereinstimmende HMAC-Schlüssel zwischen Instanzen verursacht, was eine ordnungsgemäße Entschlüsselung von Aktualisierungs-Token verhindert. In diesem Artikel wird die Grundursache erläutert und eine Lösung zur Wiederherstellung der OAuth-Funktion bereitgestellt.
Beschreibung description
Umgebung
- Adobe Experience Manager (AEM) Forms, v6.5
- Managed Services
Problem/Symptome
Nachdem die OAuth-basierten Client-Anmeldeinformationen in der Autoreninstanz gedreht und die Konfiguration auf der Veröffentlichungsinstanz repliziert wurde, schlug die Authentifizierung in der Veröffentlichungsinstanz mit dem folgenden Fehler fehl:
[ 0] POST /content/forms/af/company-forms/<test-form>/jcr:content/guideContainer.af.dermis HTTP/1.1 com.adobe.aemds.guide.addon.expeditor.servlet.ExpEditorServiceManager Error while making web service related call com.adobe.aem.dermis.exception.DermisException: com.adobe.aemfd.dermis.authentication.exception.AuthenticationException: AEM-AUT-001-004: Failed to fetch access token for oAuth. ERROR
[ xx.xx.x.xx [ xxxxxxxxxxxx] POST /content/forms/af/company-forms/<test-form>/jcr:content/guideContainer.af.dermis HTTP/1.1] com.adobe.forms.foundation.oauth.model.OAuthConfigSlingModel Error while decrypting the Refresh Token com.adobe.granite.crypto.CryptoException: Cannot convert byte data
Ursache
Das Problem wurde auf einen Fehler beim Abrufen von Zugriffstoken aufgrund von veralteten Aktualisierungstoken im Speicher zurückgeführt. Die HMAC-Schlüsselwerte zwischen Autor und Veröffentlichung waren inkonsistent, was zu Problemen bei der kryptografischen Analyse führte.
Auflösung resolution
Führen Sie die folgenden Schritte aus, um das Problem zu lösen:
-
Synchronisieren Sie HMAC-Schlüssel zwischen Autoren- und Veröffentlichungsinstanzen. Stellen Sie sicher, dass die HMAC-Schlüssel sowohl in der Autoren- als auch in der Veröffentlichungsinstanz identisch sind, wenn Sie dieselben OAuth-Anmeldeinformationen verwenden.
-
Starten Sie die Veröffentlichungsinstanz neu. Ohne einen Neustart wird der Standard-Workflow ausgelöst, der die In-Memory-Token nicht löscht:
- Das System sucht zunächst nach einem In-Memory-Token. Wenn ein veraltetes Token gefunden wird, versucht es, es zu verwenden, kann jedoch keine Verbindung herstellen.
- Wenn kein Token im Speicher gefunden wird, prüft es das Repository unter
cloudconfig/<respective configuration>und versucht, eine Verbindung mit den gespeicherten Anmeldeinformationen herzustellen. - Wenn beide oben genannten Versuche fehlschlagen, erstellt das System auf der Veröffentlichungsinstanz wieder ein neues Token mit den Anmeldeinformationen aus der Cloud-/OSGi-Konfiguration. Bei Erfolg wird das Token im CRX-Repository aktualisiert.
-
Um zu verhindern, dass dieses Problem auftritt, stellen Sie immer sicher, dass HMAC-Schlüssel auf allen AEM-Instanzen synchronisiert sind, insbesondere nach Backups oder Wiederherstellungsaufgaben.
- Navigieren Sie zu
/system/console/bundlesin der AEM-Autoreninstanz und suchen Sie das Bundle mit dem Namen Adobe Granite Crypto Bundle Key Provider (com.adobe.granite.crypto.file). Notieren Sie die Bundle-Nummer (z. B. 20). - Navigieren Sie im AEM-Dateisystem zu:
<repository-folder>/crx-quickstart/launchpad/felix/bundle20(ersetzen Sie 20 durch die tatsächliche Bundle-Nummer aus dem vorherigen Schritt). - Kopieren Sie Ordner data) die beiden Dateien hmac und master.
- Wiederholen Sie den Vorgang für jede AEM-Zielinstanz und ersetzen Sie dabei deren - und master-Dateien durch die kopierten Versionen.
- Starten Sie nach dem Ersetzen der Dateien die AEM-Instanz neu.
- Navigieren Sie zu
Durch die Implementierung dieser Schritte wird der OAuth-Fluss bei der Veröffentlichung nach der Rotation der Anmeldeinformationen erfolgreich wiederhergestellt.
Verwandtes Lesen
AEM 6.5 Crypto Support in der Community-Adobe Experience Manager Sites und mehr