Generación de tokens de acceso para las API del lado del servidor generating-access-tokens-for-server-side-apis

NOTE
Las credenciales de servidor a servidor de OAuth en AEM Developer Console están disponibles a partir del 4 de noviembre de 2026.
IMPORTANT
Utilice credenciales de servidor a servidor OAuth para integraciones del lado del servidor. Las credenciales de cuenta de servicio (JWT) están en desuso y pasan a ser de servidor a servidor OAuth. Para integraciones basadas en JWT existentes, consulte Generación de tokens de acceso para API del lado del servidor - JWT (heredado).

Algunas arquitecturas dependen de la realización de llamadas a Adobe Experience Manager (AEM) as a Cloud Service desde una aplicación alojada en un servidor fuera de la infraestructura de AEM. Por ejemplo, una aplicación móvil llama a un servidor, que luego realiza solicitudes de API a AEM as a Cloud Service.

Use AEM as a Cloud Service Developer Console para crear una cuenta técnica de servidor a servidor OAuth. Su aplicación intercambia su ID de cliente y su secreto de cliente por un token de acceso mediante la concesión client_credentials de Adobe Identity Management Services (IMS). No se requiere JWT, clave privada o certificado firmado.

NOTE
AEM Developer Console administra el acceso a su entorno de AEM. Es diferente del Developer Console de Adobe en developer.adobe.com/console. Cree y administre la cuenta técnica que se describe aquí en AEM Developer Console.

El flujo de servidor a servidor the-server-to-server-flow

Los usuarios con una función de administrador de organización de IMS que también sean miembros del perfil de producto Usuarios de AEM o Administradores de AEM en el Autor de AEM pueden crear una cuenta técnica. El secreto de cliente solo se muestra al usuario que lo crea en el momento de la creación. Un usuario con la función de administrador del entorno de AEM as a Cloud Service puede ver los detalles de la cuenta, que no incluyen el secreto de cliente.

El flujo de servidor a servidor incluye estos pasos:

  1. Cree una cuenta técnica de servidor a servidor OAuth y guarde sus credenciales, incluido el secreto de cliente que se muestra durante la creación.
  2. Almacene las credenciales de forma segura en el servidor que realiza solicitudes a AEM.
  3. Solicite un token de acceso a IMS mediante el ID de cliente, el secreto de cliente y los ámbitos.
  4. Configure el perfil de producto y los permisos de AEM de la cuenta técnica.
  5. Llame a la API de AEM con el token de acceso como token de portador.

Crear una cuenta técnica y recuperar sus credenciales fetch-the-aem-as-a-cloud-service-credentials

IMPORTANT
AEM Developer Console muestra un secreto de cliente de servidor a servidor OAuth solo una vez, cuando se crea. AEM Developer Console no almacena el valor secreto. Mantiene únicamente el ID secreto y su estado. IMS almacena el secreto como un hash unidireccional. Guarde el secreto de forma segura cuando se muestre. Si lo pierde, cree un nuevo secreto con otro secreto activo o cree una nueva cuenta técnica.
  1. Abrir integraciones. Abra AEM Developer Console para el entorno al que accede su aplicación y seleccione Integraciones. Seleccione Crear nueva cuenta técnica.

    Página de integraciones con Crear nueva cuenta técnica resaltada

  2. Crear la cuenta técnica. En el cuadro de diálogo, seleccione Servidor a servidor OAuth (S2S) como Tipo de credencial y, a continuación, seleccione Crear.

    Cuadro de diálogo Crear nueva cuenta técnica con OAuth Server-to-Server seleccionado

  3. Guarde el secreto de cliente. El cuadro de diálogo Guardar el secreto de cliente muestra las credenciales, entre ellas technicalAccount.clientSecret. Seleccione Descargar credenciales para guardarlas como aem-s2s-credentials.json o seleccione Copiar al portapapeles. Almacene las credenciales en un administrador secreto u otra ubicación de acceso controlado para la aplicación.

    Guarde el cuadro de diálogo secreto de cliente con el valor secreto de cliente oculto y descargue las credenciales y haga clic en Copiar al portapapeles

    Seleccione Cerrar. En el cuadro de diálogo de confirmación de Cerrar sin tener más acceso a tu secreto, selecciona Cerrar solo después de guardar el secreto de forma segura. Una vez cerrado el cuadro de diálogo, el secreto no se puede volver a mostrar.

    Cerrar sin tener acceso al cuadro de diálogo de confirmación secreto con Cerrar resaltado

  4. Revisar la cuenta técnica. La nueva cuenta de servidor a servidor OAuth aparece con su secreto de cliente Active. El ID secreto que se muestra en la lista identifica un secreto. No es el valor secreto y no se puede usar como client_secret en una solicitud de token.

    Nueva cuenta de servidor a servidor OAuth con un secreto de cliente activo y su menú de acción abierto

Para revisar los detalles de un secreto más adelante, abre el menú de filas del secreto de cliente y selecciona Ver. El cuadro de diálogo de credenciales muestra el extremo de IMS, los ámbitos, el ID de cliente, el correo electrónico de cuenta técnica, el ID secreto y el estado de revocación. No muestra el valor secreto del cliente.

Cuadro de diálogo de credenciales sin el valor secreto de cliente

NOTE
Los clientes pueden crear hasta 20 cuentas técnicas. Las cuentas eliminadas se contabilizan en este límite.
IMPORTANT
Un administrador de la organización IMS que también sea miembro del perfil de producto Usuarios de AEM o Administradores de AEM en AEM Author debe crear la cuenta técnica. Dado que el secreto de cliente se muestra solo una vez, el usuario que crea la cuenta es responsable de pasar las credenciales al propietario de la aplicación a través de un canal seguro.

Instalación de las credenciales del servicio de AEM en un servidor que no sea de AEM install-the-aem-service-credentials-on-a-non-aem-server

Hacer que las credenciales solo estén disponibles para la aplicación del lado del servidor que llama a AEM. Utilice un administrador secreto u otro mecanismo de almacenamiento con control de acceso.

No coloque un secreto de cliente en código del lado del explorador, aplicaciones móviles, control de código fuente o registros. Trate los tokens de acceso como secretos también.

Solicitar un token de acceso de OAuth request-an-oauth-access-token

Enviar una solicitud HTTPS POST a https://<imsEndpoint>/ims/token/v3. El imsEndpoint de su JSON de credencial es un nombre de host de IMS. Por ejemplo, ims-na1.adobelogin.com usa https://ims-na1.adobelogin.com/ims/token/v3. Utilice el nombre de host proporcionado en las credenciales, incluido el nombre de host de fase al utilizar las credenciales de fase.

Use Content-Type: application/x-www-form-urlencoded e incluya estos campos de formulario en el cuerpo de la solicitud:

Parámetro
Valor
grant_type
client_credentials
client_id
El technicalAccount.clientId de sus credenciales.
client_secret
technicalAccount.clientSecret que guardó cuando se creó el secreto.
scope
Los valores de scopes, unidos con comas.

Codifique con URL cada valor de formulario. Enviar secretos en el cuerpo de la solicitud, no en la dirección URL o la cadena de consulta.

La respuesta incluye access_token, token_type y expires_in. Use access_token para llamar a AEM. El valor expires_in es la duración del token en segundos. Utilice ese valor en lugar de suponer una hora de caducidad fija.

Almacene en caché y reutilice el token de acceso hasta que se aproxime a la caducidad y, a continuación, solicite un nuevo token con las mismas credenciales de cliente. Esta concesión no requiere un intercambio JWT ni un token de actualización.

NOTE
Utilice las credenciales para el entorno de AEM al que está llamando. Un token de acceso de IMS válido no concede permisos de AEM adicionales. Configure los permisos de la cuenta técnica como se describe a continuación.

Ejemplo de autenticación de Node.js nodejs-authentication-example

Para obtener una implementación mínima de servidor a servidor de OAuth, consulte el ejemplo de la biblioteca de cliente de la API de AEM-CS. Utiliza las API de Node.js integradas y requiere Node.js 18 o posterior, sin dependencias adicionales.

El ejemplo espera las credenciales dentro de un objeto integration. El archivo aem-s2s-credentials.json descargado de AEM Developer Console contiene las credenciales sin este contenedor. Ajuste su contenido antes de utilizarlo con el ejemplo, por ejemplo, con jq:

jq '{integration: .}' aem-s2s-credentials.json > downloaded_integration.json

Como alternativa, edite el archivo para que todo su contenido se convierta en el valor de un campo integration de nivel superior. Desde una extracción del repositorio de ejemplo, ejecute:

node oauth-s2s-cli.js downloaded_integration.json

Para uso programático, el ayudante de OAuth acepta el objeto ajustado como requestAccessToken(credentials). Utiliza el nombre de host de IMS, el ID de cliente, el secreto de cliente y los ámbitos dentro de integration.

Mantenga el archivo de credenciales privado. La CLI imprime un token de acceso. No envíe su salida a registros compartidos ni la publique. El LÉAME del ejemplo también muestra cómo utilizar el token en una solicitud de API de AEM.

Llamar a la API de AEM calling-the-aem-api

Incluya el token de acceso en el encabezado Authorization de las solicitudes a su entorno de AEM as a Cloud Service, usando el valor Bearer <access_token>.

curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  "https://author-p<program-id>-e<environment-id>.adobeaemcloud.com/content/dam.json"

Utilice el nombre de host para el entorno y el nivel al que accede la aplicación. Llamar solo a los recursos a los que la cuenta técnica tiene autorización para acceder.

Establezca los permisos adecuados para el usuario de la cuenta técnica en AEM set-the-appropriate-permissions-for-the-technical-account-user-in-aem

  1. Abra Adobe Admin Console.
  2. Seleccione AEM as a Cloud Service en Productos y servicios.
  3. Cree un perfil de producto para la integración o seleccione un perfil existente adecuado.
  4. Seleccione Agregar usuario y agregue la cuenta técnica usando email de sus credenciales.
  5. Deje tiempo para que los cambios en el perfil del producto se propaguen. Realice una llamada de API a AEM con un token de acceso generado para la cuenta técnica. El perfil de producto se sincroniza como un grupo de AEM, con la cuenta técnica como miembro.
  6. En la instancia de autor de AEM adecuada, abra Herramientas > Seguridad > Grupos. Busque el grupo de perfil de producto y compruebe que la cuenta técnica aparece en Miembros. También puede comprobar si es miembro del grupo en Herramientas > Seguridad > Usuarios.
  7. Abra Configuración > Seguridad > Permisos. Seleccione el grupo correspondiente al perfil del producto y configure los permisos requeridos por las llamadas a la API.
  8. Compruebe las llamadas de API necesarias con cada nivel al que accede la aplicación. Conceda únicamente los permisos necesarios para la integración.
NOTE
Al reemplazar una cuenta técnica de JWT por una cuenta de servidor a servidor de OAuth, asigne la nueva cuenta a los perfiles de producto necesarios y compruebe sus permisos de AEM. Los permisos de la cuenta técnica antigua no se transfieren automáticamente a la nueva cuenta.

Para obtener más información acerca de los usuarios y grupos de IMS y AEM, consulte Compatibilidad con IMS.

Flujo de desarrollador developer-flow

Para las pruebas locales, los desarrolladores pueden generar un token de acceso de desarrollo directamente en AEM Developer Console sin crear una cuenta técnica de servidor a servidor OAuth. El token se puede utilizar para llamar a entornos de AEM a los que el desarrollador puede acceder. Utilice credenciales de servidor a servidor de OAuth, en lugar de un token de desarrollo local, para aplicaciones de servidor desatendidas.

Consulte las Directrices para desarrolladores para obtener los permisos necesarios para usar AEM Developer Console.

NOTE
Un token de acceso de desarrollo local es válido durante un máximo de 24 horas. Después de la caducidad, genere otro token utilizando el mismo método.

Generación del token de acceso generating-the-access-token

  1. En AEM Developer Console, vaya a Integraciones > Token local.
  2. Seleccione Obtener token de desarrollo local.

Llamar a la aplicación de AEM con un token de acceso call-the-aem-application-with-an-access-token

Use el token de acceso de desarrollo local como token de portador en el encabezado Authorization, tal como se describe en Llamar a la API de AEM.

Para un proyecto de AEM que se ejecute en el equipo local, no se necesita un token de acceso IMS.

Rotar secretos de cliente refresh-credentials

Las credenciales de servidor a servidor OAuth no requieren la renovación anual de certificados. Rotar los secretos del cliente periódicamente y siempre que se exponga un secreto. Cree un nuevo secreto, cambie sus aplicaciones a él y solo entonces revoque el secreto antiguo.

Crear y revocar secretos requiere los valores secretos que ha guardado. AEM Developer Console utiliza un secreto introducido solo para autenticar la solicitud con IMS y no la almacena.

IMPORTANT
IMS requiere al menos un secreto activo. Cree y verifique un nuevo secreto antes de revocar el último secreto activo. Para dejar de usar la cuenta técnica por completo, elimine la cuenta en su lugar.
  1. Crear un nuevo secreto. En Integraciones, abra el menú de acción junto al nombre de la cuenta de servidor a servidor OAuth y seleccione Crear nuevo secreto. Este es el menú de nivel de cuenta, no el menú de fila de un secreto de cliente.

    Menú de acción de cuenta de servidor a servidor OAuth con Crear nuevo secreto resaltado

  2. Autenticar con un secreto activo. En el cuadro de diálogo Crear nuevo secreto, escriba el valor de un secreto de cliente activo para la cuenta y, a continuación, seleccione Crear nuevo secreto.

    Cuadro de diálogo Crear nuevo secreto con el campo secreto de cliente activo y el botón Crear nuevo secreto resaltado

  3. Guarde el nuevo secreto. El cuadro de diálogo muestra el nuevo secreto una vez, con sus clientId, secretId, clientSecret y scopes. Descárguelo o cópielo, guárdelo de forma segura y cierre el cuadro de diálogo. Confirme que solo desea cerrarlo después de guardar el secreto de forma segura. Una vez cerrado el cuadro de diálogo, no se puede volver a mostrar el nuevo secreto.

    Nuevo cuadro de diálogo secreto con el valor secreto de cliente oculto y Descargar credenciales y Copiar al portapapeles resaltado

  4. Cambiar aplicaciones al nuevo secreto. Reemplace el valor technicalAccount.clientSecret en las credenciales que cada instancia de aplicación e implementación utiliza con el nuevo clientSecret. Los demás valores de credencial no cambian.

    Solicite un nuevo token de acceso con el nuevo secreto y compruebe las llamadas a la API de AEM necesarias antes de continuar. Ambos secretos permanecen activos durante la migración de la aplicación. La reutilización de un token de acceso emitido anteriormente no verifica el nuevo secreto.

  5. Seleccione el secreto antiguo para la revocación. Después de que todas las aplicaciones usen el nuevo secreto, abre el menú de filas del antiguo secreto y selecciona Revocar. Compruebe el ID secreto para asegurarse de que ha seleccionado el secreto antiguo.

    Menú de acción del secreto de cliente antiguo con Revocar resaltado mientras ambos secretos están activos

  6. Confirmar revocación. En el cuadro de diálogo Revocar secreto de cliente, compruebe el ID secreto de cliente que desea revocar, introduzca el valor de ese secreto y seleccione Revocar. Si ya no tiene el valor secreto, póngase en contacto con el soporte técnico de Adobe. Una vez que la revocación se propaga a través de IMS, las aplicaciones no pueden utilizar ese secreto para solicitar nuevos tokens. Los tokens de acceso existentes pueden seguir siendo válidos.

    Revocar diálogo secreto de cliente con el campo secreto de cliente y el botón Revocar resaltado

  7. Compruebe el resultado. El secreto antiguo aparece como Revocado, mientras que el nuevo sigue siendo Activo.

    Lista de secretos de cliente que muestra el secreto antiguo como Revocado y el nuevo como Activo, con la opción Eliminar del secreto revocado resaltada

    Una vez que la revocación surta efecto, compruebe que el secreto antiguo no puede emitir nuevos tokens de acceso y que el nuevo secreto sí. La comprobación del estado mostrado por sí solo no verifica la propagación de IMS.

  8. Elimine el secreto revocado si ya no es necesario. Para quitar el secreto revocado de la lista, abra su menú de filas, seleccione Eliminar y confirme.

Revocación de credenciales credentials-revocation

Revocar deshabilita un secreto seleccionado para nuevas solicitudes de token. Requiere el valor del secreto que se está revocando. La revocación puede tardar un tiempo en propagarse. No suponga que revocar un secreto invalida inmediatamente los tokens de acceso que ya se emitieron.

Eliminar de un secreto revocado elimina sus metadatos, como el ID secreto y el estado de revocación, de AEM Developer Console. No realiza una revocación de IMS independiente y no está disponible para secretos activos.

Eliminar una cuenta técnica delete-a-technical-account

Al eliminar una cuenta técnica, se revocan inmediatamente la cuenta y todos sus secretos de cliente en IMS. No se emiten nuevos tokens de acceso para ninguna credencial de la cuenta y las integraciones que la utilizan dejan de funcionar una vez que caducan sus tokens actuales. Para restaurar el acceso, debe crear una nueva cuenta técnica, actualizar las aplicaciones con sus credenciales y asignar de nuevo los permisos necesarios en AEM.

La eliminación de cuentas no se puede deshacer. Confirme solo después de comprobar qué aplicaciones dependen de la cuenta y no la utilice como paso de rotación secreto individual.

  1. En Integraciones, abra el menú de acción junto al nombre de la cuenta técnica y seleccione Eliminar.

    Menú de acción de cuenta de servidor a servidor OAuth con Eliminar resaltado

  2. Revise el cuadro de diálogo Eliminar cuenta técnica y, a continuación, seleccione Eliminar.

    Cuadro de diálogo de confirmación de eliminación de cuenta técnica

Migración de una integración basada en JWT migrate-a-jwt-based-integration

  1. Cree una nueva cuenta técnica de servidor a servidor OAuth en AEM Developer Console.
  2. Asigne la nueva cuenta técnica a los perfiles de producto necesarios y configure sus permisos de AEM.
  3. Actualice la aplicación del lado del servidor para solicitar tokens usando client_credentials en lugar de firmar e intercambiar un JWT.
  4. Compruebe la nueva generación de tokens y las llamadas de API requeridas con la nueva cuenta.
  5. Después de que todas las instancias de aplicación utilicen OAuth Server-to-Server, retire las credenciales de JWT antiguas y elimine la cuenta técnica antigua.

Para operaciones de certificado y clave privada en la cuenta antigua, consulte la guía heredada de JWT. No elimine la cuenta antigua antes de comprobar la integración de reemplazo.

recommendation-more-help
experience-manager-cloud-service-help-main-toc