[Alpha]{class="badge informative"}

Autenticação

O Server SDK é executado em um ambiente confiável sob seu controle. Por causa disso, ele envia eventos para a API do Edge Network Server autenticada, em vez do ponto de extremidade não autenticado que os navegadores usam. As solicitações autenticadas permitem que o Edge Network confie nos dados enviados pelo seu servidor.

Para autenticar, o SDK precisa de uma credencial OAuth de servidor para servidor da Adobe Developer Console. Você o transmite para configure usando a opção edgeCredentials, que é obrigatória. O SDK usa a credencial para solicitar um token de acesso do Adobe e, em seguida, adiciona o token a cada solicitação autenticada.

Criar uma credencial OAuth de servidor para servidor create-credential

Para criar uma credencial, você deve ser um desenvolvedor e um usuário do Adobe Experience Platform em sua organização. Em seguida, conclua as seguintes etapas:

  1. Faça logon no Adobe Developer Console e selecione sua organização.

  2. Navegue até Projetos e selecione um projeto existente ou crie um novo.

  3. Adicione a API do Experience Platform ao projeto e selecione Servidor para servidor OAuth como o tipo de autenticação.

  4. Selecione os perfis de produto para a credencial.

  5. Na página da credencial, copie os seguintes valores:

    • ID do cliente
    • Segredo do Cliente. Selecione Recuperar segredo do cliente para revelá-lo.
    • Escopos

Consulte Autenticar e acessar APIs do Experience Platform para obter instruções detalhadas e capturas de tela para cada etapa, incluindo como obter acesso de desenvolvedor e usuário.

Configurar o SDK com sua credencial configure

Passe os valores copiados para a opção edgeCredentials quando você chamar configure. Leia-as nas variáveis de ambiente ou em um gerenciador de segredos, em vez de colocá-las no código-fonte.

await alloy.configure({
  datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
  orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
  edgeCredentials: {
    clientId: process.env.ADOBE_CLIENT_ID,
    clientSecret: process.env.ADOBE_CLIENT_SECRET,
    scopes: process.env.ADOBE_SCOPES.split(",")
  }
});

Se você omitir edgeCredentials, configure será rejeitado com um erro. Consulte edgeCredentials para obter a lista completa de propriedades.

Use a mesma organização para a credencial e a opção orgId. O SDK envia orgId no cabeçalho x-gw-ims-org-id de cada solicitação autenticada.

Quais solicitações são autenticadas authenticated-requests

Somente sendEvent usa a API de Servidor autenticada. A API do servidor não fornece endpoints equivalentes para solicitações de identidade e consentimento, portanto, esses métodos enviam solicitações não autenticadas para o endpoint padrão do Edge Network, da mesma forma que o Web SDK faz. O SDK escolhe o terminal para você.

Método
Endpoint
Autenticado
sendEvent
server.adobedc.net
Sim
getIdentity
O domínio definido em edgeDomain
Não
appendIdentityToUrl
O domínio definido em edgeDomain, se o SDK precisar solicitar uma identidade
Não
setConsent
O domínio definido em edgeDomain
Não

Quando thirdPartyCookiesEnabled é true, que é o padrão, a primeira solicitação não autenticada de um visitante vai para adobedc.demdex.net em vez de edgeDomain.

Cada solicitação autenticada inclui os seguintes cabeçalhos:

  • Authorization: o token de acesso que o SDK obteve com sua credencial.
  • x-api-key: O clientId da sua credencial.
  • x-gw-ims-org-id: O orgId que você configurou.

Definir o tipo de acesso ao fluxo de dados datastream-access-type

As sequências de dados têm uma configuração de Tipo de acesso que controla se o Edge Network aceita solicitações não autenticadas. Consulte Configurar opções avançadas no guia de sequências de dados.

  • Autenticação mista: aceita solicitações autenticadas e não autenticadas. Use esta configuração se você chamar getIdentity, appendIdentityToUrl ou setConsent, ou se as páginas do navegador enviarem dados para a mesma sequência de dados com o Web SDK.
  • Somente autenticados: aceita somente solicitações autenticadas. Use esta configuração somente se você não chamar nada além de sendEvent com esta sequência de dados.

Incluir uma identidade principal em eventos primary-identity

O Edge Network não consegue ler cookies do navegador do visitante em uma solicitação de servidor para servidor. Por causa disso, cada evento que a API de Servidor recebe deve incluir uma identidade primária no identityMap do evento. Se um evento não incluir um, o Edge Network o rejeitará com o código de erro EXEG-0306-400.

await visitor.sendEvent({
  xdm: {
    eventType: "web.webpagedetails.pageViews",
    identityMap: {
      Email: [{ id: "visitor@example.com", primary: true }]
    }
  }
});

Consulte xdm para obter mais informações.

Cache de token de acesso token-caching

O SDK solicita um token de acesso do Adobe Identity Management Service (IMS) na primeira vez que envia uma solicitação autenticada, não quando você chama configure. Em seguida, ele reutiliza o token até cinco minutos antes de expirar. Cada identificador forRequest que uma instância cria compartilha um token em cache. A instância de nível superior armazena em cache seu próprio token separadamente, o que é importante somente se você também enviar eventos dele diretamente. Os tokens de acesso são válidos por cerca de 24 horas, portanto, um servidor ocupado solicita um novo token uma vez por dia, em vez de uma vez por visitante.

Se várias solicitações precisarem de um token ao mesmo tempo, elas compartilharão uma única solicitação de token. Se a solicitação de token falhar, por exemplo, porque o segredo do cliente está errado, o método que a acionou será rejeitado com um erro cuja mensagem inclui Failed to acquire an IMS access token.

Proteger suas credenciais protect-credentials

O segredo do cliente concede acesso aos dados de sua organização. Siga estas práticas:

  • Armazene a ID do cliente, o segredo do cliente e os escopos nas variáveis de ambiente ou em um gerenciador de segredos. Não os confirme no controle de origem.
  • Nunca envie o segredo do cliente para um navegador. Use o Server SDK somente no código do servidor que os visitantes não podem baixar ou inspecionar.
  • Gire o segredo do cliente na Adobe Developer Console se achar que ele foi exposto.

O SDK redige o segredo do cliente, substituindo-o por [REDACTED], em seus logs de depuração e na configuração retornada por getLibraryInfo.

recommendation-more-help
experience-platform-help-collection