[Alpha]{class="badge informative"}

Autenticación

Server SDK se ejecuta en un entorno de confianza que usted controla. Debido a esto, envía eventos a la API de servidor de Edge Network autenticada en lugar del extremo no autenticado que utilizan los exploradores. Las solicitudes autenticadas permiten que Edge Network confíe en los datos que envía el servidor.

Para autenticarse, SDK necesita una credencial de servidor a servidor OAuth de Adobe Developer Console. Se pasa a configure mediante la opción edgeCredentials, que es obligatoria. SDK utiliza la credencial para solicitar un token de acceso de Adobe y, a continuación, agrega el token a cada solicitud autenticada.

Crear una credencial de servidor a servidor OAuth create-credential

Para crear una credencial, debe ser desarrollador y usuario de Adobe Experience Platform en su organización. A continuación, complete los siguientes pasos:

  1. Inicie sesión en Adobe Developer Console y seleccione su organización.

  2. Vaya a Proyectos y seleccione un proyecto existente, o cree uno nuevo.

  3. Agregue la API de Experience Platform al proyecto y seleccione Servidor OAuth a servidor como tipo de autenticación.

  4. Seleccione los perfiles de producto para la credencial.

  5. En la página de las credenciales, copie los siguientes valores:

    • ID de cliente
    • Secreto de cliente. Seleccione Recuperar secreto de cliente para revelarlo.
    • Ámbitos

Consulte Autenticar y acceder a las API de Experience Platform para obtener instrucciones detalladas y capturas de pantalla para cada paso, incluido cómo obtener acceso de desarrollador y usuario.

Configuración de SDK con sus credenciales configure

Pase los valores que copió a la opción edgeCredentials al llamar a configure. Léalas desde variables de entorno o un administrador de secretos en lugar de colocarlas en el código fuente.

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(",")
  }
});

Si omite edgeCredentials, configure rechazará con un error. Consulte edgeCredentials para obtener la lista completa de propiedades.

Utilice la misma organización para la credencial y la opción orgId. SDK envía orgId en el encabezado x-gw-ims-org-id de cada solicitud autenticada.

Qué solicitudes se autentican authenticated-requests

Solo sendEvent utiliza la API de servidor autenticada. La API de servidor no proporciona extremos equivalentes para las solicitudes de identidad y consentimiento, por lo que estos métodos envían solicitudes no autenticadas al extremo estándar de Edge Network, del mismo modo que lo hace Web SDK. SDK elige el punto final por usted.

Método
Punto de conexión
Authenticated
sendEvent
server.adobedc.net
Sí
getIdentity
El dominio establecido en edgeDomain
No
appendIdentityToUrl
El dominio establecido en edgeDomain, si SDK necesita solicitar una identidad
No
setConsent
El dominio establecido en edgeDomain
No

Cuando thirdPartyCookiesEnabled es true, que es el valor predeterminado, la primera solicitud no autenticada de un visitante pasa a adobedc.demdex.net en lugar de edgeDomain.

Cada solicitud autenticada incluye los siguientes encabezados:

  • Authorization: el token de acceso que SDK obtuvo con su credencial.
  • x-api-key: el clientId de su credencial.
  • x-gw-ims-org-id: el orgId que configuró.

Definición del tipo de acceso del flujo de datos datastream-access-type

Las secuencias de datos tienen la configuración Tipo de acceso que controla si Edge Network acepta solicitudes no autenticadas. Consulte Configurar opciones avanzadas en la guía de flujos de datos.

  • Autenticación mixta: Acepta solicitudes autenticadas y no autenticadas. Use esta configuración si llama a getIdentity, appendIdentityToUrl o setConsent, o si las páginas del explorador envían datos a la misma secuencia de datos con Web SDK.
  • Solo autenticado: solo acepta solicitudes autenticadas. Use esta configuración solamente si no llama a nada más que a sendEvent con este conjunto de datos.

Incluir una identidad principal en los eventos primary-identity

Edge Network no puede leer cookies del explorador del visitante en una solicitud de servidor a servidor. Debido a esto, cada evento que recibe la API de servidor debe incluir una identidad principal en identityMap del evento. Si un evento no incluye uno, Edge Network lo rechazará con el código de error EXEG-0306-400.

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

Consulte xdm para obtener más información.

Almacenamiento en caché de token de acceso token-caching

SDK solicita un token de acceso del servicio Identity Management de Adobe (IMS) la primera vez que envía una solicitud autenticada, no cuando llama a configure. A continuación, vuelve a utilizar el token hasta cinco minutos antes de que caduque el token. Cada forRequest identificador que crea una instancia comparte un token almacenado en caché. La instancia de nivel superior almacena en caché su propio token por separado, lo que solo importa si también envía eventos directamente desde ella. Los tokens de acceso son válidos durante unas 24 horas, por lo que un servidor ocupado solicita un nuevo token aproximadamente una vez al día en lugar de una vez por visitante.

Si varias solicitudes necesitan un token al mismo tiempo, comparten una sola solicitud de token. Si la solicitud de token falla, por ejemplo porque el secreto de cliente es incorrecto, el método que la activó rechaza con un error cuyo mensaje incluye Failed to acquire an IMS access token.

Proteja sus credenciales protect-credentials

El secreto de cliente concede acceso a los datos de su organización. Siga estas prácticas:

  • Almacene el ID de cliente, el secreto de cliente y los ámbitos en variables de entorno o un administrador de secretos. No los comprometa con el control de código fuente.
  • Nunca envíe el secreto de cliente a un explorador. Utilice Server SDK solo en el código de servidor que los visitantes no puedan descargar ni inspeccionar.
  • Cambie el secreto del cliente en la Adobe Developer Console si cree que se expuso.

SDK redacta el secreto de cliente, reemplazándolo por [REDACTED], en sus registros de depuración y en la configuración que devuelve getLibraryInfo.

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