Resolver errores de autorización de dominios de API incrustadas de PDF en AEM
El visualizador de AEM PDF y los componentes personalizados que utilizan la API de incrustación de Adobe PDF fallan con un error de autorización de dominio cuando el dominio que aloja la página no está registrado en Adobe Developer Console para el ID de cliente de la API de incrustación de PDF asociado. La API de incrustación de PDF solo permite un dominio por ID de cliente y rechaza solicitudes de orígenes no registrados, por lo que cada dominio de AEM (autor, publicación y DNS personalizado) necesita su propio ID de cliente. AEMaaCS también requiere la configuración según el contexto de Sling (CaConfig) para el visor de PDF en lugar de una configuración OSGi, que de lo contrario resuelve el ID de cliente incorrecto. La creación de ID de cliente por dominio y su configuración en la ruta CaConfig correcta restaura el visor.
Descripción description
Entornos:
- Adobe Experience Manager as a Cloud Service (AEMaaCS)
- AEM Brand Portal
- AEM Managed Services
- Visualizador de PDF de componentes principales de AEM y API de incrustación de Adobe PDF
Problema/Síntomas:
- El visor de PDF muestra Este dominio de aplicación (
<dominio>) no tiene autorización para usar el ID de cliente de la API de incrustación de PDF proporcionado. - La vista previa de PDF muestra Vista previa de archivos no disponible con el código de error UnauthorizedDomainForClientId.
- El visor de PDF no carga nada, pero no procesa nada, y el panel de red del explorador muestra llamadas de API del visor bloqueadas con un dominio que no coincide.
- El proyecto de Adobe Developer Console muestra Este proyecto es de solo lectura porque Adobe lo generó automáticamente y no se puede editar.
Causa principal:
La API de incrustación de Adobe PDF solo permite un dominio por ID de cliente (a menos que se utilicen subdominios bajo una sola raíz) y rechaza cualquier solicitud de un origen no registrado. Los entornos de AEMaaCS (Author, Publish, dominios personalizados y Dev/Stage/Prod) utilizan dominios diferentes, por lo que requieren ID de cliente y configuraciones de CaConfig independientes. AEMaaCS no admite la configuración del visualizador de PDF a través de OSGi; el uso de OSGi conduce a una resolución clientId incorrecta y a errores del visualizador.
Cómo confirmar
- Identifique el dominio que falla. Abra la página con el visor de PDF y anote el origen completo del explorador (para un host de AEMaaCS, este aspecto es
https://author-pXXXXX-eYYYYYY.adobeaemcloud.com; para un dominio personalizado, es el origen de su sitio). Ejecutewindow.location.originen la consola del explorador para confirmar la cadena exacta. - Compruebe si el proyecto de Developer Console es editable. Abra el proyecto que contiene la credencial de la API de incrustación de PDF y busque el titular Este proyecto es de solo lectura porque Adobe lo generó automáticamente, lo que indica que necesita un nuevo proyecto editable.
Resolución resolution
- Si el proyecto es de solo lectura, cree un nuevo proyecto editable. En Developer Console, elija Crear nuevo proyecto → Agregar al proyecto → la API de incrustación de PDF, que expone una sección Dominios de aplicación editable. Si no puede agregar un dominio, confirme que tiene las funciones de Administrador del sistema y Desarrollador.
- Registre el dominio que coincida con el origen del error. En la configuración de PDF Embed API, agregue solo el dominio exacto, sin el prefijo
https://(por ejemplo:example.comoauthor-pXXXXX-eYYYYYY.adobeaemcloud.com). Guarde la configuración y vuelva a cargar la página en una ventana de incógnito. - Cree ID de cliente independientes por entorno o dominio. Repita el registro de dominio para cada entorno (autor, publicación, DNS personalizado), ya que AEMaaCS requiere ID de cliente únicos cuando los dominios difieren. Si necesita muchos subdominios, cree una credencial solo con el dominio principal.
- Configure el ID de cliente en AEM mediante la configuración según el contexto de Sling. En la base de código bajo
/conf/<site>/sling:configs, cree el nodocom.adobe.cq.wcm.core.components.internal.services.pdfviewer.PdfViewerCaConfigcon la propiedadclientId=<Client ID>. Confirme en CRXDE que la propiedad existe y que el sitiojcr:contentincluye unsling:configRef. - Para Autor y Publicación, cree configuraciones específicas del modo de ejecución cuando sea necesario. Cree
/conf/<site>/sling:configs.authory/conf/<site>/sling:configs.publish, cada uno con su propioclientId, de modo que Autor utilice la configuración de autor y Publicación utilice la configuración de publicación. Confirme viendo el origen de la página en cada entorno y buscando la cadenaclientId. - Elimine cualquier configuración de OSGi para el visualizador de PDF. Elimine
com.adobe.cq.wcm.core.components.internal.services.pdfviewer.PdfViewerCaConfig.cfg.jsondeui.configpara que solo CaConfig controle la configuración del visor y confirme en/system/console/configMgrque no existe ninguna configuración OSGi. - Implementar mediante Cloud Manager. Ejecute la canalización y confirme que los cambios de
/confllegan a Autor y Publicación abriendo CRXDE en cada uno. Si no aparecen los cambios, confirme que la canalización incluye el móduloui.content.
Validación
- Abra la página en cada dominio (Autor, Publicación, DNS) y confirme que PDF se procesa sin el error de autorización.
- Inspeccione el origen de página y confirme que el
clientIdesperado está incrustado y coincide con el valor de CaConfig. - Utilice el panel Red del explorador para confirmar que las llamadas a la API del visor devuelven HTTP 200 en lugar de errores de autorización de dominio.