A rotação de credenciais do cliente baseadas em OAuth funciona no Author, mas não no Publish
Ao girar as credenciais do cliente OAuth no Adobe Experience Manager (AEM) Forms, a autenticação falha na instância de publicação, apesar de funcionar no Author. Normalmente, esse problema é causado por chaves HMAC incompatíveis entre instâncias, o que impede a descriptografia adequada de tokens de atualização. Este artigo explica a causa raiz e fornece uma resolução para restaurar a funcionalidade OAuth.
Descrição description
Ambiente
- Adobe Experience Manager (AEM) Forms, v6.5
- Managed Services
Problema/Sintomas
Depois de girar as credenciais do cliente baseadas em OAuth no Autor e replicar a configuração para Publicar, a autenticação no Publish falhou com o seguinte erro:
[ 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
Causa
O problema foi rastreado a uma falha na busca de tokens de acesso devido a tokens de atualização desatualizados armazenados na memória. Os valores da chave HMAC eram inconsistentes entre Autor e Publicação, causando problemas de análise criptográfica.
Resolução resolution
Tente as seguintes etapas para resolver o problema:
-
Sincronizar chaves HMAC entre instâncias Autor e Publicar. Verifique se as chaves HMAC são idênticas nas instâncias Autor e Publicar ao usar as mesmas credenciais OAuth.
-
Reinicie a instância de publicação. Sem uma reinicialização, o workflow padrão é acionado, o que falha ao limpar os tokens na memória:
- Primeiro, o sistema verifica se há um token na memória. Se um token desatualizado for encontrado, ele tentará usá-lo, mas não estabelecerá uma conexão.
- Se nenhum token for encontrado na memória, ele verificará o repositório em
cloudconfig/<respective configuration>e tentará se conectar usando as credenciais armazenadas. - Se ambas as tentativas acima falharem, o sistema voltará a criar um novo token usando credenciais da configuração de nuvem/OSGI na instância de publicação. Se for bem-sucedido, ele atualizará o token no repositório do CRX.
-
Para evitar que esse problema ocorra, sempre verifique se as chaves HMAC estão sincronizadas em todas as instâncias do AEM, especialmente depois de backups ou tarefas de restauração.
- Vá para
/system/console/bundlesno AEM Author e localize o pacote chamado Provedor de Chave de Pacote de Criptografia do Adobe Granite (com.adobe.granite.crypto.file). Observe o número do pacote (por exemplo, 20). - No sistema de arquivos do AEM, navegue até:
<repository-folder>/crx-quickstart/launchpad/felix/bundle20(substitua 20 pelo número real do pacote da etapa anterior). - Dentro da pasta dados, copie os dois arquivos: hmac e master.
- Repita o processo em cada instância do AEM de destino, substituindo seus arquivos hmac e master pelas versões copiadas.
- Após substituir os arquivos, reinicie a instância do AEM.
- Vá para
Ao implementar essas etapas, o fluxo do OAuth é restabelecido com êxito em Publicar após a rotação de credencial.
Leitura relacionada
Suporte à criptografia do AEM 6.5 na Adobe Experience Manager Sites da comunidade e muito mais