Resolução de falhas de autorização de domínio da API integrada do PDF no AEM

O Visualizador do AEM PDF e os componentes personalizados que usam a API incorporada do Adobe PDF falham com um erro de autorização de domínio quando o domínio que hospeda a página não está registrado no Adobe Developer Console para a ID do cliente da API incorporada do PDF associada. A API de incorporação do PDF permite somente um domínio por ID do cliente e rejeita solicitações de origens não registradas, portanto, cada domínio do AEM — Autor, Publicação e DNS personalizado — precisa de sua própria ID do cliente. O AEMaaCS também exige a Configuração sensível ao contexto (CaConfig) do Sling para o visualizador do PDF em vez de uma configuração OSGi, o que resolve a ID do cliente errada. Criar IDs de cliente por domínio e configurá-las no caminho CaConfig correto restaura o visualizador.

Descrição description

Ambientes:

  • Adobe Experience Manager as a Cloud Service (AEMaaCS)
  • AEM Brand Portal
  • AEM Managed Services
  • Visualizador do PDF para os Componentes principais do AEM e a API integrada do Adobe PDF

Problema/sintomas:

  • O Visualizador do PDF exibe Este domínio de aplicativo (< domínio> ) não está autorizado a usar a ID de Cliente da API Incorporada do PDF.
  • A visualização do PDF mostra Visualização de arquivo não disponível com o código de erro UnauthorizedDomainForClientId.
  • O Visualizador do PDF carrega, mas não renderiza nada, e o painel de rede do navegador mostra chamadas de API do visualizador bloqueadas com uma incompatibilidade de domínio.
  • O projeto do Adobe Developer Console mostra Este projeto é somente leitura porque foi gerado automaticamente pelo Adobe e não pode ser editado.

Causa raiz:

A API de incorporação do Adobe PDF permite apenas um domínio por ID do cliente (a menos que você use subdomínios em uma única raiz) e rejeita qualquer solicitação de uma origem não registrada. Ambientes do AEMaaCS — Autor, Publicação, domínios personalizados e Desenvolvimento/Preparo/Produção — cada um usa domínios diferentes, portanto, exigem IDs de cliente separadas e configurações de CaConfig separadas. O AEMaaCS não é compatível com a configuração do visualizador do PDF por meio do OSGi; o uso do OSGi resulta em falhas incorretas de resolução e visualizador de clientId.

Como confirmar

  1. Identifique o domínio com falha. Abra a página com o Visualizador do PDF e observe a origem completa do navegador (para um host AEMaaCS, isso se parece com https://author-pXXXXX-eYYYYYY.adobeaemcloud.com; para um domínio personalizado, é a origem do seu site). Execute window.location.origin no console do navegador para confirmar a cadeia de caracteres exata.
  2. Verifique se o projeto do Developer Console é editável. Abra o projeto que contém a credencial da API Embed do PDF e procure o banner Este projeto é somente leitura porque foi gerado automaticamente pelo Adobe, o que indica que você precisa de um novo projeto editável.

Resolução resolution

  1. Se o projeto for somente leitura, crie um novo projeto editável. No Developer Console, escolha Criar novo projeto → Adicionar ao projeto → API de Incorporação do PDF, que expõe uma seção editável Domínios de Aplicativos. Se não for possível adicionar um domínio, confirme se você tem as funções de Administrador do sistema e Desenvolvedor.
  2. Registre o domínio que corresponde à origem com falha. Na configuração da API Incorporada do PDF, adicione apenas o domínio exato, sem o prefixo https:// (por exemplo: example.com ou author-pXXXXX-eYYYYYY.adobeaemcloud.com). Salve a configuração e recarregue a página em uma janela incógnita.
  3. Crie IDs do cliente separadas por ambiente ou domínio. Repita o registro de domínio para cada ambiente (Autor, Publicação, DNS personalizado), já que o AEMaaCS requer IDs de cliente exclusivas quando os domínios são diferentes. Se você precisar de muitos subdomínios, crie uma credencial somente usando o domínio principal.
  4. Configure a ID do cliente no AEM usando a Configuração sensível ao contexto do Sling. Em sua base de código em /conf/<site>/sling:configs, crie o nó com.adobe.cq.wcm.core.components.internal.services.pdfviewer.PdfViewerCaConfig com a propriedade clientId = <ID do Cliente>. Confirme no CRXDE que a propriedade existe e que o jcr:content do seu site inclui um sling:configRef.
  5. Para Autor e Publicação, crie configurações específicas do modo de execução quando necessário. Crie /conf/<site>/sling:configs.author e /conf/<site>/sling:configs.publish, cada um contendo seu próprio clientId, portanto, o Autor usa a configuração do autor e a Publicação usa a configuração de publicação. Confirme exibindo a origem da página em cada ambiente e procurando a cadeia de caracteres clientId.
  6. Remova qualquer configuração OSGi do Visualizador do PDF. Exclua com.adobe.cq.wcm.core.components.internal.services.pdfviewer.PdfViewerCaConfig.cfg.json de ui.config para que somente CaConfig direcione as configurações do visualizador e, em seguida, confirme em /system/console/configMgr se não existe nenhuma configuração OSGi.
  7. Implantar via Cloud Manager. Execute seu pipeline e confirme se as alterações de /conf chegam ao Author e ao Publish abrindo o CRXDE em cada uma. Se as alterações não forem exibidas, confirme se o pipeline inclui o módulo ui.content.

Validação

  1. Abra a página em cada domínio (Autor, Publicação, DNS) e confirme a renderização do PDF sem o erro de autorização.
  2. Inspecione a origem da página e confirme se o esperado clientId está incorporado e corresponde ao valor de CaConfig.
  3. Use o painel Rede do navegador para confirmar se as chamadas da API do visualizador retornam HTTP 200 em vez de falhas de autorização de domínio.

Leitura relacionada

recommendation-more-help
experience-cloud-kcs-help-kbarticles