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

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

O fluxo de servidor para servidor é descrito abaixo, juntamente com um fluxo simplificado para desenvolvimento. O AEM as a Cloud Service Developer Console é usado para gerar tokens necessários para o processo de autenticação.

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

Usuários com uma função de administrador da organização IMS e que são membros do Perfil de produto Usuários do AEM ou Administradores do AEM no AEM Author podem gerar um conjunto de credenciais do AEM as a Cloud Service. Cada credencial é uma carga JSON que inclui um certificado (a chave pública), uma chave privada e uma conta técnica que consiste em um clientId e clientSecret. Essas credenciais podem ser recuperadas posteriormente por um usuário com a função de administrador de ambiente do AEM as a Cloud Service e devem ser instaladas em um servidor não AEM e tratadas cuidadosamente como uma chave secreta. Esse arquivo de formato JSON contém todos os dados necessários para integrar a uma API do AEM as a Cloud Service. Os dados são usados para criar um token JWT assinado, que é substituído pelo Adobe Identity Management Services (IMS) por um token de acesso IMS. Esse token de acesso pode ser usado como um token de autenticação de portador para fazer solicitações à AEM as a Cloud Service. Por padrão, o certificado nas credenciais expira após um ano, mas elas podem ser atualizadas quando necessário, conforme descrito aqui.

O fluxo de servidor para servidor envolve as seguintes etapas:

  • Buscar as credenciais no AEM as a Cloud Service na Developer Console
  • Instalar as credenciais do AEM as a Cloud Service em um servidor não AEM que faça chamadas para o AEM
  • Gere um token JWT e troque-o por um token de acesso usando APIs IMS do Adobe
  • Chamada da API AEM com o token de acesso como um token de autenticação de portador
  • Definir as permissões apropriadas para o usuário da conta técnica no ambiente AEM

Buscar as credenciais do AEM as a Cloud Service fetch-the-aem-as-a-cloud-service-credentials

Os usuários com acesso ao console do desenvolvedor do AEM as a Cloud Service veem a guia Integrações no Developer Console para um determinado ambiente. Um usuário com a função de administrador do Ambiente AEM as a Cloud Service pode criar, exibir ou gerenciar credenciais.

Ao clicar em Criar nova conta técnica, é criado um conjunto de credenciais que inclui a ID do cliente, o segredo do cliente, a chave privada, o certificado e a configuração para os níveis de criação e publicação do ambiente, independentemente da seleção do pod.

Criando uma nova Conta Técnica

Uma nova guia do navegador é aberta, exibindo as credenciais. Você pode usar essa visualização para baixar as credenciais pressionando o ícone de download ao lado do título do status:

Baixar credenciais

Após as credenciais serem criadas, elas aparecerão na guia Contas técnicas na seção Integrações:

Exibir Credenciais

Os usuários podem exibir as credenciais posteriormente usando a ação Exibir. Além disso, conforme descrito posteriormente neste artigo, os usuários podem editar as credenciais para a mesma conta técnica. Eles fazem essa edição criando uma chave privada ou certificado, para casos em que o certificado deve ser renovado ou revogado.

Usuários com a função de Administrador de ambiente do AEM as a Cloud Service podem criar credenciais posteriormente para contas técnicas adicionais. Essa capacidade é útil quando APIs diferentes têm requisitos de acesso diferentes. Por exemplo, leitura versus leitura-gravação.

NOTE
Os clientes podem criar até dez contas técnicas, incluindo aquelas já excluídas.
IMPORTANT
Um administrador de organização IMS (normalmente o mesmo usuário que provisionou o ambiente por meio do Cloud Manager), que também é membro do Perfil de produto Usuários de AEM ou Administradores de AEM AEM no Author, deve acessar primeiro o Developer Console. Em seguida, clique em Criar nova conta técnica para que as credenciais sejam geradas e recuperadas posteriormente por um usuário com permissões de administrador para o ambiente do AEM as a Cloud Service. Se o administrador da organização IMS ainda não tiver criado a conta técnica, uma mensagem informará que ele precisa da função de Administrador da organização IMS.

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

O aplicativo que faz chamadas para AEM deve poder acessar as credenciais do AEM as a Cloud Service, tratando-o como um segredo.

Gerar um token JWT e trocá-lo por um token de acesso generate-a-jwt-token-and-exchange-it-for-an-access-token

Use as credenciais para criar um token JWT em uma chamada para o serviço IMS Adobe para recuperar um token de acesso, que é válido por 24 horas.

As Credenciais de Serviço AEM CS podem ser trocadas por um token de acesso usando bibliotecas de clientes criadas para essa finalidade. Adobe As bibliotecas de clientes estão disponíveis no repositório GitHub público, que contém orientações mais detalhadas e informações mais recentes.

/*jshint node:true */
"use strict";

const fs = require('fs');
const exchange = require("@adobe/aemcs-api-client-lib");

const jsonfile = "aemcs-service-credentials.json";

var config = JSON.parse(fs.readFileSync(jsonfile, 'utf8'));
exchange(config).then(accessToken => {
    // output the access token in json form including when it will expire.
    console.log(JSON.stringify(accessToken,null,2));
}).catch(e => {
    console.log("Failed to exchange for access token ",e);
});

A mesma troca pode ser executada em qualquer linguagem capaz de gerar um token JWT assinado com o formato correto e chamar as APIs IMS Token Exchange.

O token de acesso define quando expira, o que geralmente é de 24 horas. Há um código de amostra no repositório Git para gerenciar um token de acesso e atualizá-lo antes que ele expire.

NOTE
Se houver várias credenciais, faça referência ao arquivo json apropriado para a chamada de API para AEM que será invocada posteriormente.

Chamar a API do AEM calling-the-aem-api

Fazer as chamadas de API de servidor para servidor apropriadas para um ambiente do AEM as a Cloud Service, incluindo o token de acesso no cabeçalho. Portanto, para o cabeçalho "Autorização", use o valor "Bearer <access_token>". Por exemplo, usando curl:

curl -H "Authorization: Bearer <your_ims_access_token>" https://author-p123123-e23423423.adobeaemcloud.com/content/dam.json

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

Primeiro, um novo perfil de produto deve ser criado no Adobe Admin Console.

  1. Vá para a Adobe Admin Console em https://adminconsole.adobe.com/.

  2. Pressione o link Gerenciar na coluna Produtos e Serviços à esquerda.

  3. Selecione AEM as a Cloud Service.

  4. Pressione o botão Novo Perfil.

    Novo Perfil

  5. Nomeie o perfil e pressione Salvar.

    Salvar Perfil

  6. Selecione o perfil que você criou na lista de perfis.

  7. Selecione Adicionar Usuário.

    Adicionar usuário

  8. Adicione a conta técnica que você criou (neste caso, 84b2c3a2-d60a-40dc-84cb-e16b786c1673@techacct.adobe.com) e clique em Salvar.

    Adicionar Conta Técnica

  9. Aguarde 10 minutos para que as alterações entrem em vigor e faça uma chamada de API para AEM com um token de acesso gerado a partir da nova credencial. Como um comando cURL, ele seria representado de forma semelhante a este exemplo:

    curl -H "Authorization: Bearer <access_token>" https://author-pXXXXX-eXXXXX.adobeaemcloud.net/content/dam.json

Depois de fazer a chamada de API, o perfil de produto aparece como um grupo de usuários na instância de autor do AEM as a Cloud Service, com a conta técnica apropriada como membro desse grupo.

Para verificar essas informações, faça o seguinte:

  1. Faça logon na instância de criação.

  2. Vá para Ferramentas > Segurança e clique no cartão Grupos.

  3. Localize o nome do perfil criado na lista de grupos e clique nele:

    Perfil do Grupo

  4. Na janela a seguir, alterne para a guia Membros e verifique se a conta técnica está listada corretamente lá:

    Guia Membros

Como alternativa, você também pode verificar se a conta técnica aparece na lista do usuário executando as etapas abaixo na instância do autor:

  1. Vá para Ferramentas > Segurança > Usuários.

  2. Verifique se sua conta técnica é a lista de usuários e selecione-a.

  3. Clique na guia Grupos para verificar se o usuário faz parte do grupo que corresponde ao perfil do produto. Esse usuário também é membro de alguns outros grupos, incluindo Contribuidores:

    Associação de Grupo

NOTE
Antes de meados de 2023, antes que fosse possível criar várias credenciais, os clientes não eram orientados a criar um perfil de produto no Adobe Admin Console. Dessa forma, a conta técnica não estava associada a um grupo diferente de "Contribuidores" na instância do AEM as a Cloud Service. Por uma questão de consistência, é recomendável que, para essa conta técnica, você crie um perfil de produto no Adobe Admin Console conforme descrito acima e adicione a conta técnica existente a esse grupo.

Definir as Permissões de Grupo Apropriadas

Por fim, configure o grupo com as permissões apropriadas necessárias para que você possa chamar ou bloquear suas APIs adequadamente.

  1. Faça logon na instância de autor apropriada e navegue até Configurações > Segurança > Permissões

  2. Procure o nome do grupo correspondente ao perfil do produto no painel esquerdo (nesse caso, APIs somente leitura) e selecione-o:

    Pesquisar Grupo

  3. Clique no botão Edit na seguinte janela:

    Editar permissões

  4. Modifique as permissões adequadamente e clique em Salvar

    Confirmar edição de permissões

INFO
Saiba mais sobre o Sistema Adobe Identity Management (IMS) e os usuários e grupos de AEM. Consulte a documentação.

Fluxo do desenvolvedor developer-flow

Os desenvolvedores provavelmente desejam testar usando uma instância de desenvolvimento de seu aplicativo não AEM (em execução no laptop ou hospedado) que faz solicitações a um ambiente de desenvolvimento do AEM as a Cloud Service. No entanto, como os desenvolvedores não têm necessariamente permissões de função de administrador do IMS, o Adobe não pode supor que podem gerar o portador JWT descrito no fluxo regular de servidor para servidor. Portanto, o Adobe fornece um mecanismo para que um desenvolvedor gere um token de acesso diretamente que possa ser usado em solicitações para ambientes no AEM as a Cloud Service aos quais ele tem acesso.

Consulte a documentação das Diretrizes do desenvolvedor para obter informações sobre as permissões necessárias para usar o console do desenvolvedor do AEM as a Cloud Service.

NOTE
O token de acesso de desenvolvimento local é válido por no máximo 24 horas após as quais deve ser gerado novamente usando o mesmo método.

Os desenvolvedores podem usar esse token para fazer chamadas de seu aplicativo de teste não-AEM para um ambiente AEM as a Cloud Service. Normalmente, o desenvolvedor usa esse token com o aplicativo não-AEM em seu próprio notebook. Além disso, o AEM as a Cloud normalmente é um ambiente de não produção.

O fluxo do desenvolvedor envolve as seguintes etapas:

  • Gerar um token de acesso pela Developer Console
  • Chame o aplicativo AEM com o token de acesso.

Os desenvolvedores também podem fazer chamadas de API para um projeto AEM em execução em sua máquina local, caso em que um token de acesso não é necessário.

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

  1. Vá para o Token local em Integrações
  2. Clique em Obter token de desenvolvimento local na Developer Console para que você possa gerar um token de acesso.

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

Fazer as chamadas de API de servidor para servidor apropriadas do aplicativo não-AEM para um ambiente AEM as a Cloud Service, incluindo o token de acesso no cabeçalho. Portanto, para o cabeçalho "Autorização", use o valor "Bearer <access_token>".

Atualizar credenciais refresh-credentials

Por padrão, as credenciais no AEM as a Cloud Service expiram após um ano. Para garantir a continuidade do serviço, os desenvolvedores têm a opção de atualizar as credenciais, estendendo sua disponibilidade por mais um ano.

Para obter essa extensão de atualização, faça o seguinte:

  • Use o botão Adicionar certificado em Integrações - Contas técnicas na Developer Console, conforme mostrado abaixo

    Atualização de credencial

  • Depois de pressionar o botão, um conjunto de credenciais que inclui um novo certificado é gerado. Instale as novas credenciais em seu servidor off-AEM e verifique se a conectividade foi a esperada, sem remover as credenciais antigas.

  • Certifique-se de que as novas credenciais sejam usadas em vez das antigas ao gerar o token de acesso.

  • Opcionalmente, revogue (e exclua) o certificado anterior para que ele não possa mais ser usado para autenticação com o AEM as a Cloud Service.

Revogação de credenciais credentials-revocation

Se a chave privada estiver comprometida, você deverá criar credenciais com um novo certificado e uma nova chave privada. Depois que sua aplicação usar as novas credenciais para gerar tokens de acesso, você poderá revogar e deletar os certificados antigos fazendo o seguinte:

  1. Primeiro, adicione a nova chave. Essa chave gera credenciais com uma nova chave privada e um novo certificado. A nova chave privada está marcada na interface do usuário como atual e, portanto, é usada para todas as novas credenciais desta conta técnica a partir de agora. As credenciais associadas às chaves privadas mais antigas ainda serão válidas até serem revogadas. Para obter essa revogação, selecione os três pontos () na conta técnica atual e selecione Adicionar nova chave privada:

    Adicionar nova chave privada

  2. Selecione Adicionar no prompt a seguir:

    Confirmar adição de nova chave privada

    Uma nova guia de navegação com as novas credenciais é aberta e a interface de usuário é atualizada para mostrar as duas chaves privadas com a nova marcada como atual:

    Chaves privadas na interface do usuário

  3. Instale as novas credenciais no servidor não AEM e verifique se a conectividade funciona conforme esperado. Consulte a seção Fluxo de Servidor para Servidor para obter detalhes.

  4. Revogue o certificado antigo selecionando os três pontos () à direita do certificado e selecionando Revogar:

    Revogar certificado

    Em seguida, confirme a revogação no prompt a seguir pressionando o botão Revogar:

    Revogar confirmação de certificado

  5. Por fim, exclua o certificado comprometido.

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab