Geração de tokens de acesso para APIs do lado do servidor generating-access-tokens-for-server-side-apis

NOTE
As credenciais de servidor para servidor do OAuth no AEM Developer Console estarão disponíveis a partir de 4 de novembro de 2026.
IMPORTANT
Use credenciais OAuth de servidor para servidor para integrações do lado do servidor. As credenciais da conta de serviço (JWT) foram substituídas em favor do servidor para servidor OAuth. Para integrações existentes baseadas em JWT, consulte Gerando tokens de acesso para APIs do lado do servidor - JWT (Herdado).

Algumas arquiteturas dependem de fazer chamadas para o Adobe Experience Manager (AEM) as a Cloud Service a partir de um aplicativo hospedado em um servidor fora da infraestrutura do AEM. Por exemplo, um aplicativo móvel chama um servidor, que então faz solicitações de API ao AEM as a Cloud Service.

Use o AEM as a Cloud Service Developer Console para criar uma conta técnica OAuth de servidor para servidor. Seu aplicativo troca sua ID de cliente e o segredo do cliente por um token de acesso usando a concessão client_credentials do Adobe Identity Management Services (IMS). Não é necessário nenhum certificado, chave privada ou JWT assinado.

NOTE
O Developer Console AEM gerencia o acesso ao seu ambiente AEM. É diferente do Developer Console Adobe em developer.adobe.com/console. Crie e gerencie a conta técnica descrita aqui no Developer Console do AEM.

O fluxo de servidor para servidor the-server-to-server-flow

Usuários com uma função de administrador da organização IMS que também são membros do perfil de produto Usuários do AEM ou Administradores do AEM no AEM Author podem criar uma conta técnica. O segredo do cliente é exibido somente para o usuário que o cria, no momento da criação. Um usuário com a função de administrador de ambiente do AEM as a Cloud Service pode exibir os detalhes da conta, que não incluem o segredo do cliente.

O fluxo de servidor para servidor envolve estas etapas:

  1. Crie uma conta técnica OAuth de servidor para servidor e salve suas credenciais, incluindo o segredo do cliente mostrado na criação.
  2. Armazene as credenciais com segurança no servidor que faz solicitações à AEM.
  3. Solicite um token de acesso do IMS usando a ID do cliente, o segredo do cliente e os escopos.
  4. Configure o perfil de produto da conta técnica e as permissões do AEM.
  5. Chame a API do AEM com o token de acesso como um token de portador.

Criar uma conta técnica e recuperar suas credenciais fetch-the-aem-as-a-cloud-service-credentials

IMPORTANT
O AEM Developer Console mostra um segredo de cliente do OAuth para servidor apenas uma vez, quando ele é criado. O AEM Developer Console não armazena o valor secreto. Ela mantém somente a ID secreta e seu status. O IMS armazena o segredo como um hash unidirecional. Salve o segredo com segurança quando ele for exibido. Caso o perca, crie um novo segredo usando outro segredo ativo ou crie uma nova conta técnica.
  1. Abrir Integrações. Abra o AEM Developer Console para o ambiente que seu aplicativo acessa e selecione Integrações. Selecione Criar nova conta técnica.

    Página de integrações com a opção Criar nova conta técnica realçada

  2. Criar a conta técnica. Na caixa de diálogo, selecione S2S (Servidor a Servidor OAuth) como o Tipo de credencial e selecione Criar.

    Caixa de diálogo Criar nova conta técnica com a opção Servidor a Servidor do OAuth selecionada

  3. Salvar o segredo do cliente. A caixa de diálogo Salvar o segredo do cliente mostra as credenciais, incluindo technicalAccount.clientSecret. Selecione Baixar credenciais para salvá-las como aem-s2s-credentials.json ou selecione Copiar para a área de transferência. Armazene as credenciais em um gerenciador de segredos ou em outro local de acesso controlado para seu aplicativo.

    Salve a caixa de diálogo do segredo do cliente com o valor do segredo do cliente oculto e baixe as credenciais e Copiar para a área de transferência realçada

    Selecione Fechar. Na caixa de diálogo de confirmação Fechar sem mais acesso ao segredo, selecione Fechar somente depois de salvar o segredo com segurança. Depois que a caixa de diálogo é fechada, o segredo não pode ser exibido novamente.

    Fechar sem mais acesso à caixa de diálogo de confirmação de segredo com Fechar realçado

  4. Revise a conta técnica. A nova conta de servidor para servidor OAuth está listada com seu segredo de cliente Ativo. A ID secreta exibida na lista identifica um segredo. Esse não é o valor secreto e não pode ser usado como client_secret em uma solicitação de token.

    Nova conta de servidor para servidor OAuth com um segredo de cliente ativo e seu menu de ações aberto

Para examinar os detalhes de um segredo posteriormente, abra o menu de linha do segredo do cliente e selecione Exibir. A caixa de diálogo de credenciais mostra o endpoint do IMS, os escopos, a ID do cliente, o email da conta técnica, a ID secreta e o status de revogação. Ela não mostra o valor do segredo do cliente.

Caixa de diálogo Credenciais sem o valor do segredo do cliente

NOTE
Os clientes podem criar até 20 contas técnicas. As contas excluídas contam para esse limite.
IMPORTANT
Um administrador de organização IMS que também é membro do perfil de produto Usuários do AEM ou Administradores do AEM no AEM Author deve criar a conta técnica. Como o segredo do cliente é mostrado apenas uma vez, o usuário que cria a conta é responsável por transmitir as credenciais ao proprietário do aplicativo por meio de um canal seguro.

Instalar as credenciais de serviço do AEM em um servidor que não seja da AEM install-the-aem-service-credentials-on-a-non-aem-server

Disponibilize as credenciais somente para o aplicativo do lado do servidor que chama o AEM. Use um gerenciador de segredos ou outro mecanismo de armazenamento controlado por acesso.

Não coloque um segredo do cliente no código do navegador, em aplicativos móveis, no controle de origem ou em logs. Trate os tokens de acesso como segredos também.

Solicitar um token de acesso OAuth request-an-oauth-access-token

Envie uma solicitação POST HTTPS para https://<imsEndpoint>/ims/token/v3. O imsEndpoint na sua credencial JSON é um nome de host IMS. Por exemplo, ims-na1.adobelogin.com usa https://ims-na1.adobelogin.com/ims/token/v3. Use o nome de host fornecido em suas credenciais, incluindo o nome de host do estágio ao usar credenciais de estágio.

Use Content-Type: application/x-www-form-urlencoded e inclua estes campos de formulário no corpo da solicitação:

Parâmetro
Valor
grant_type
client_credentials
client_id
O technicalAccount.clientId de suas credenciais.
client_secret
O technicalAccount.clientSecret salvo quando o segredo foi criado.
scope
Os valores em scopes, unidos com vírgulas.

Codificação URL de cada valor de formulário. Envie segredos no corpo da solicitação, não no URL ou na sequência de consulta.

A resposta inclui access_token, token_type e expires_in. Use access_token para chamar o AEM. O valor expires_in é o tempo de vida do token em segundos. Use esse valor em vez de considerar um tempo de expiração fixo.

Armazene em cache e reutilize o token de acesso até que sua expiração se aproxime, em seguida, solicite um novo token com as mesmas credenciais de cliente. Esta concessão não requer uma troca JWT ou um token de atualização.

NOTE
Use credenciais para o ambiente AEM que você está chamando. Um token de acesso IMS válido não concede permissões AEM adicionais. Configure as permissões da conta técnica conforme descrito abaixo.

Exemplo de autenticação do Node.js nodejs-authentication-example

Para uma implementação mínima de servidor para servidor do OAuth, consulte o exemplo de Biblioteca de Cliente de API AEM-CS. Ele usa APIs Node.js integradas e requer Node.js 18 ou mais recente, sem dependências adicionais.

O exemplo espera as credenciais dentro de um objeto integration. O arquivo aem-s2s-credentials.json baixado do AEM Developer Console contém as credenciais sem este invólucro. Vincule seu conteúdo antes de usá-lo com o exemplo, por exemplo com jq:

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

Como alternativa, edite o arquivo para que seu conteúdo completo se torne o valor de um campo integration de nível superior. Em uma verificação do repositório de exemplo, execute:

node oauth-s2s-cli.js downloaded_integration.json

Para uso programático, o auxiliar do OAuth aceita o objeto encapsulado como requestAccessToken(credentials). Ele usa o nome do host IMS, a ID do cliente, o segredo do cliente e os escopos dentro de integration.

Mantenha o arquivo de credencial privado. A CLI imprime um token de acesso. Não envie sua saída para logs compartilhados ou publique-a. O arquivo README do exemplo também mostra como usar o token em uma solicitação de API do AEM.

Chamada da API do AEM calling-the-aem-api

Inclua o token de acesso no cabeçalho Authorization das solicitações para o ambiente AEM as a Cloud Service usando o valor Bearer <access_token>.

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

Use o nome do host para o ambiente e a camada que seu aplicativo acessa. Chame apenas recursos que a conta técnica está autorizada a acessar.

Definir as permissões apropriadas para o usuário da conta técnica no AEM set-the-appropriate-permissions-for-the-technical-account-user-in-aem

  1. Abra o Adobe Admin Console.
  2. Selecione AEM as a Cloud Service em Produtos e Serviços.
  3. Crie um perfil de produto para a integração ou selecione um perfil existente apropriado.
  4. Selecione Adicionar Usuário e adicione a conta técnica usando o email de suas credenciais.
  5. Permita que as alterações no perfil de produto se propaguem. Faça uma chamada de API para o AEM com um token de acesso gerado para a conta técnica. O perfil de produto é sincronizado como um grupo do AEM, com a conta técnica como um membro.
  6. Na instância apropriada do autor do AEM, abra Ferramentas > Segurança > Grupos. Localize o grupo de perfil de produto e verifique se a conta técnica aparece em Membros. Você também pode verificar sua associação de grupo em Ferramentas > Segurança > Usuários.
  7. Abra Configurações > Segurança > Permissões. Selecione o grupo correspondente ao perfil do produto e configure as permissões necessárias para suas chamadas de API.
  8. Verifique as chamadas de API necessárias em relação a cada camada acessada pelo aplicativo. Conceda somente as permissões necessárias para a integração.
NOTE
Ao substituir uma conta técnica JWT por uma conta servidor para servidor OAuth, atribua a nova conta aos perfis de produto necessários e verifique as permissões do AEM. As permissões na conta técnica antiga não são transferidas automaticamente para a nova conta.

Para obter mais informações sobre usuários e grupos do IMS e do AEM, consulte Suporte ao IMS.

Fluxo do desenvolvedor developer-flow

Para testes locais, os desenvolvedores podem gerar um token de acesso de desenvolvimento diretamente no AEM Developer Console sem criar uma conta técnica OAuth de servidor para servidor. O token pode ser usado para chamar ambientes do AEM que o desenvolvedor pode acessar. Use credenciais OAuth de servidor para servidor, em vez de um token de desenvolvimento local, para aplicativos autônomos do lado do servidor.

Consulte as Diretrizes do desenvolvedor para obter as permissões necessárias para usar o AEM Developer Console.

NOTE
Um token de acesso de desenvolvimento local é válido por no máximo 24 horas. Após a expiração, gere outro token usando o mesmo método.

Gerar o token de acesso generating-the-access-token

  1. No AEM Developer Console, vá para Integrações > Token local.
  2. Selecione Obter Token De Desenvolvimento Local.

Chamar o aplicativo AEM com um token de acesso call-the-aem-application-with-an-access-token

Use o token de acesso de desenvolvimento local como um token de portador no cabeçalho Authorization, conforme descrito em Chamando a API AEM.

Para um projeto do AEM em execução em sua máquina local, um token de acesso IMS não é necessário.

Girar segredos do cliente refresh-credentials

As credenciais de servidor para servidor do OAuth não exigem a renovação anual do certificado. Gire os segredos do cliente periodicamente e sempre que um segredo for exposto. Crie um novo segredo, alterne seus aplicativos para ele e, somente então, revogue o segredo antigo.

A criação e revogação de segredos requer os valores secretos que você salvou. O AEM Developer Console usa um segredo inserido somente para autenticar a solicitação com IMS e não o armazena.

IMPORTANT
O IMS requer pelo menos um segredo ativo. Crie e verifique um novo segredo antes de revogar o último segredo ativo. Para interromper o uso da conta técnica completamente, exclua a conta.
  1. Criar um novo segredo. Em Integrações, abra o menu de ações ao lado do nome da conta Servidor para Servidor OAuth e selecione Criar novo Segredo. Este é o menu em nível de conta, não um menu de linhas de segredo do cliente.

    Menu de ação de conta servidor para servidor OAuth com o destaque Criar novo Segredo

  2. Autenticar com um segredo ativo. Na caixa de diálogo Criar novo Segredo, digite o valor de um segredo de cliente ativo para a conta e selecione Criar novo Segredo.

    Caixa de diálogo Criar novo Segredo com o campo segredo do cliente ativo e o botão Criar novo Segredo realçado

  3. Salve o novo segredo. A caixa de diálogo mostra o novo segredo uma vez, com seus clientId, secretId, clientSecret e scopes. Baixe ou copie, armazene com segurança e feche a caixa de diálogo. Confirme se deseja fechá-lo somente depois de salvar o segredo com segurança. Depois que a caixa de diálogo é fechada, o novo segredo não pode ser exibido novamente.

    Caixa de diálogo Novo segredo com o valor do segredo do cliente oculto e Credenciais de download e Copiar para área de transferência destacada

  4. Alternar aplicativos para o novo segredo. Substitua o valor technicalAccount.clientSecret nas credenciais que cada instância e implantação do aplicativo usa com o novo clientSecret. Os outros valores de credencial não são alterados.

    Solicite um novo token de acesso com o novo segredo e verifique as chamadas de API do AEM necessárias antes de continuar. Ambos os segredos permanecem ativos durante a transferência do aplicativo. Reutilizar um token de acesso emitido anteriormente não verifica o novo segredo.

  5. Selecione o segredo antigo para revogação. Depois que todos os aplicativos usarem o novo segredo, abra o menu de linha do segredo antigo e selecione Revogar. Verifique a ID do segredo para ter certeza de que selecionou o segredo antigo.

    Menu de ação do segredo do cliente antigo com Revogar realçado enquanto os dois segredos estão ativos

  6. Confirmar revogação. Na caixa de diálogo Revogar segredo do cliente, verifique a ID do segredo do cliente a ser revogada, insira o valor desse segredo e selecione Revogar. Se você não tiver mais o valor secreto, entre em contato com o suporte da Adobe. Quando a revogação se propaga pelo IMS, os aplicativos não podem usar esse segredo para solicitar novos tokens. Os tokens de acesso existentes podem permanecer válidos.

    Caixa de diálogo Revogar segredo do cliente com o campo segredo do cliente e o botão Revogar realçado

  7. Verificar o resultado. O segredo antigo está listado como Revogado, enquanto o novo segredo permanece Ativo.

    Lista de segredos do cliente mostrando o segredo antigo como Revogado e o novo segredo como Ativo, com a opção Excluir do segredo revogado destacada

    Depois que a revogação entrar em vigor, verifique se o segredo antigo não pode emitir novos tokens de acesso e se o novo segredo pode ser emitido. Verificar o status exibido sozinho não verifica a propagação do IMS.

  8. Remova o segredo revogado se não for mais necessário. Para remover o segredo revogado da lista, abra o menu de linhas, selecione Excluir e confirme.

Revogação de credenciais credentials-revocation

Revogar desabilita um segredo selecionado para novas solicitações de token. Exige que o valor do segredo seja revogado. A revogação pode demorar para se propagar. Não presuma que revogar um segredo invalida imediatamente os tokens de acesso já emitidos.

Excluir em um segredo revogado remove seus metadados, como a ID do segredo e o status de revogação, do AEM Developer Console. Ela não executa uma revogação IMS separada e não está disponível para segredos ativos.

Excluir uma conta técnica delete-a-technical-account

A exclusão de uma conta técnica revoga imediatamente a conta e todos os seus segredos de cliente no IMS. Nenhum token de acesso novo é emitido para nenhuma credencial na conta, e as integrações que o usam param de funcionar assim que os tokens atuais expiram. Para restaurar o acesso, você deve criar uma nova conta técnica, atualizar seus aplicativos com as credenciais e atribuir as permissões necessárias no AEM novamente.

A exclusão de conta não pode ser desfeita. Confirme somente depois de verificar quais aplicativos dependem da conta e não os use como uma etapa de rotação secreta individual.

  1. Em Integrações, abra o menu de ações ao lado do nome da conta técnica e selecione Excluir.

    Menu de ação de conta servidor para servidor OAuth com Exclusão realçada

  2. Revise a caixa de diálogo Excluir conta técnica e selecione Excluir.

    Excluir caixa de diálogo de confirmação da conta técnica

Migrar uma integração baseada em JWT migrate-a-jwt-based-integration

  1. Crie uma nova conta técnica OAuth de servidor para servidor no AEM Developer Console.
  2. Atribua a nova conta técnica aos perfis de produto necessários e configure as permissões do AEM.
  3. Atualize o aplicativo do lado do servidor para solicitar tokens usando client_credentials em vez de assinar e trocar um JWT.
  4. Verifique a nova geração de token e as chamadas de API necessárias usando a nova conta.
  5. Depois que todas as instâncias do aplicativo usarem OAuth Server-to-Server, desative as credenciais antigas do JWT e exclua a conta técnica antiga.

Para as operações de certificado e chave privada na conta antiga, consulte o guia herdado do JWT. Não remova a conta antiga antes de verificar a integração de substituição.

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