OAuth 기반 클라이언트 자격 증명 순환은 작성자에서 작동하지만 게시에서는 작동하지 않습니다
Adobe Experience Manager(AEM) Forms에서 OAuth 클라이언트 자격 증명을 회전할 때 작성자에서 작업함에도 불구하고 게시 인스턴스에서 인증이 실패합니다. 이 문제는 일반적으로 인스턴스 간에 HMAC 키가 일치하지 않아 새로 고침 토큰의 적절한 암호 해독이 불가능하기 때문에 발생합니다. 이 문서에서는 근본 원인을 설명하고 OAuth 기능을 복원하기 위한 해결 방법을 제공합니다.
설명 description
환경
- Adobe Experience Manager(AEM) Forms, v6.5
- Managed Services
문제/증상
작성자에서 OAuth 기반 클라이언트 자격 증명을 회전하고 구성을 Publish에 복제한 후 다음 오류로 인해 Publish에서 인증이 실패했습니다.
[ 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
원인
메모리에 저장된 오래된 새로 고침 토큰으로 인해 액세스 토큰을 가져오지 못하여 문제가 추적되었습니다. 작성자와 게시 간에 HMAC 키 값이 일치하지 않아 암호화 구문 분석 문제가 발생했습니다.
해결 방법 resolution
문제를 해결하려면 다음 단계를 수행하십시오.
-
작성자와 게시 인스턴스 간에 HMAC 키를 동기화합니다. 동일한 OAuth 자격 증명을 사용할 때 작성자 및 게시 인스턴스 모두에서 HMAC 키가 동일한지 확인합니다.
-
게시 인스턴스를 다시 시작합니다. 다시 시작하지 않으면 기본 워크플로우가 트리거되어 메모리 내 토큰을 지우지 못합니다.
- 시스템은 먼저 메모리 내 토큰을 확인합니다. 오래된 토큰을 찾으면 이를 사용하려고 시도하지만 연결을 설정하지 못합니다.
- 메모리에서 토큰을 찾을 수 없으면
cloudconfig/<respective configuration>아래의 저장소를 확인하고 저장된 자격 증명을 사용하여 연결을 시도합니다. - 위의 두 시도가 모두 실패하면 시스템은 게시 인스턴스의 클라우드/OSGI 구성에서 자격 증명을 사용하여 새 토큰을 생성하는 것으로 돌아갑니다. 성공하면 CRX 저장소의 토큰이 업데이트됩니다.
-
이 문제가 발생하지 않도록 하려면 항상 모든 AEM 인스턴스 간에 HMAC 키가 동기화되어야 합니다(특히 백업 또는 복원 작업 후).
- AEM 작성자의
/system/console/bundles(으)로 이동하여 Adobe Granite Crypto 번들 키 공급자(com.adobe.granite.crypto.file) 라는 번들을 찾습니다. 번들 번호(예: 20)를 확인합니다. - AEM 파일 시스템에서
<repository-folder>/crx-quickstart/launchpad/felix/bundle20(이전 단계의 실제 번들 번호로 20 바꾸기)로 이동합니다. - data 폴더 내에서 hmac 및 master 파일을 복사합니다.
- 각 대상 AEM 인스턴스에 대해 이 프로세스를 반복하여 hmac 및 master 파일을 복사된 버전으로 바꿉니다.
- 파일을 교체한 후 AEM 인스턴스를 다시 시작합니다.
- AEM 작성자의
이러한 단계를 구현하면 자격 증명 회전 후 게시에서 OAuth 흐름이 정상적으로 다시 설정됩니다.
3d58f420-19b5-47a0-a122-5c9dab55ec7f