• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Soporte de autenticación Kerberos (SPNEGO) para ubicaciones privadas

|View as Markdown (English)

Este documento describe cómo configurar el administrador de trabajos de Sintéticos (SJM) para ejecutar monitores con compatibilidad de autenticación de Kerberos. También incluye un tutorial opcional para establecer un Centro de distribución de claves (KDC) de Kerberos y una aplicación web protegida por SPNEGO en una instancia EC2 de Amazon Linux 2023, para que pueda validar la configuración antes de apuntar el administrador de trabajos a su propio dominio.

Valores de marcador de posición

Antes de comenzar, identifique los siguientes valores para su entorno. Reemplace cada marcador de posición con su propio valor dondequiera que aparezca en este documento.

Marcador de posición

Descripción

Ejemplo

<REALM_NAME>

Reino de Kerberos (debe estar en mayúsculas)

KERBTEST.LOCAL

<EC2_PRIVATE_IP>

Dirección IPv4 privada de la instancia EC2

10.8.9.172

<EC2_INTERNAL_HOSTNAME>

Nombre de dominio completo (FQDN) de la aplicación web

ip-X-X-X-X.ec2.internal

<CLIENT_PRINCIPAL>

Identidad de Kerberos asignada a los trabajadores de Sintéticos

synthetics-test

<CLIENT_KEYTAB_PATH>

Ruta completa en el host donde se almacena el keytab del cliente

/home/ec2-user/kerb-test/synthetics-test.keytab

<PRIVATE_LOCATION_KEY>

Clave de ubicación privada de New Relic

NRSP-us...

Requisitos y compatibilidad

La autenticación de Kerberos depende del acceso directo de red al Centro de distribución de claves (KDC), la resolución de DNS interna y los relojes estrechamente sincronizados. Estas restricciones limitan dónde puede ejecutarlo, así que revise los siguientes requisitos antes de comenzar.

Admitimos la autenticación de Kerberos en estos entornos:

  • Ubicaciones privadas que ejecutan el administrador de trabajos de Sintéticos en un entorno de contenedor de Docker
  • Ubicaciones privadas que ejecutan el administrador de trabajos de Sintéticos en un entorno de contenedor de Podman

No admitimos la autenticación de Kerberos en estos entornos:

  • Ubicaciones públicas, que no tienen ruta de red al KDC interno
  • Entornos del administrador de trabajos de Kubernetes y OpenShift

El administrador de trabajos proporciona credenciales de Kerberos solo a los trabajos de monitor de navegador. Los monitores de API con script y los monitores de ping se ejecutan sin autenticación de Kerberos.

Cada contenedor de tiempo de ejecución del navegador adquiere su propio ticket de Kerberos (a través de kinit, antes del lanzamiento de Chrome), por lo que la ubicación privada también debe cumplir con estos requisitos:

  • Acceda a su KDC en el puerto 88 de TCP y UDP desde dentro de los contenedores de tiempo de ejecución.
  • Resuelva los nombres de host de su KDC y de la aplicación objetivo desde el interior de los contenedores de tiempo de ejecución. En los despliegues de Docker, si el DNS interno no los resuelve, asócielos con RUNTIME_EXTRA_HOSTS —esta variable es exclusiva de Docker. Los despliegues de Podman dependen del DNS interno.
  • Mantenga el reloj del host de la ubicación privada a menos de 5 minutos del reloj del KDC, usando un servicio como chrony. Los contenedores de tiempo de ejecución comparten el reloj del kernel del host, por lo que sincronizar el host es suficiente.

Parte 1: configurar un laboratorio de pruebas de Kerberos (opcional)

Sugerencia

La Parte 1 crea un reino de Kerberos autónomo y una aplicación de prueba protegida para que pueda validar la configuración del administrador de trabajos de principio a fin. No es la ruta de producción y New Relic no administra su KDC. Si ya ejecuta un KDC de Kerberos o un dominio de Active Directory, obtenga el nombre del reino, la dirección del KDC y un keytab de cliente de quien lo administre, y luego pase a la Parte 2.

Parte 2: configure el gestor de trabajos de Sintéticos para Kerberos

Para permitir que los contenedores del ejecutor del navegador de Sintéticos resuelvan automáticamente el KDC, adquieran tickets de Kerberos y se autentiquen en los extremos protegidos, agregue las siguientes variables de entorno de Kerberos y el montaje de volumen de keytab al comando que inicia el administrador de trabajos.

Advertencia

Cuando habilita Kerberos en una ubicación privada, cada trabajo de monitor de navegador en esa ubicación recibe el montaje de keytab y las variables de entorno de Kerberos. El administrador de trabajos no filtra las credenciales por monitor ni por URL. Chrome decide qué hosts reciben un ticket de Kerberos basándose solo en KERBEROS_HOST_ALLOWLIST, así que mantenga esa lista de permitidos lo más reducida posible.

Importante

Configure las cuatro variables KERBEROS_* o no configure ninguna. Si solo configura algunos, el administrador de trabajos de Sintéticos no se inicia y registra un error de configuración de Kerberos incompleta.

Comando estándar (sin Kerberos)

bash
$
docker run -e PRIVATE_LOCATION_KEY=<PRIVATE_LOCATION_KEY> \
>
-d --restart unless-stopped \
>
-v /var/run/docker.sock:/var/run/docker.sock:rw \
>
newrelic/synthetics-job-manager

Comando requerido (con soporte para Kerberos habilitado)

Agregue las cuatro variables de entorno de KERBEROS_* (-e) y el montaje de volumen del keytab (-v) al comando que ya utiliza para iniciar el administrador de trabajos.

Parte 3: solucionar problemas de autenticación de Kerberos

Si la inicialización de Kerberos falla dentro del contenedor de tiempo de ejecución, la canalización de inicio del contenedor aún realiza el lanzamiento del navegador y ejecuta el monitor. Luego, el monitor falla frente a un extremo protegido con un desafío HTTP 401 o un tiempo de espera de navegación, y agregamos una etiqueta al resultado con una causa raíz de KerberosInitWarning. Debido a que la falla parece un tiempo de espera ordinario, revise los logs de trabajo en busca de los siguientes códigos de error antes de investigar el script del monitor.

Estos códigos son independientes de la validación de inicio de la Parte 2 —si configura solo algunas de las variables de KERBEROS_*, el administrador de trabajos no se iniciará en absoluto y ninguno de estos códigos aparecerá en los logs de un trabajo.

Código de error

Causa

Qué hacer

KERBEROS_KDC_UNREACHABLE

El contenedor de tiempo de ejecución no puede comunicarse con el KDC a través de la red.

Compruebe las reglas del firewall para el puerto 88 de TCP y UDP entre el host de su ubicación privada y el KDC.

KERBEROS_BAD_CREDENTIAL

El principal no coincide con el keytab, o el keytab está dañado.

Verifique el keytab en el host ejecutando

klist -kt <CLIENT_KEYTAB_PATH>

.

KERBEROS_CLOCK_SKEW

El reloj del host difiere del reloj del KDC en más de 5 minutos.

Sincronice el reloj del host con NTP, mediante un servicio como

chrony

.

KERBEROS_DNS_LOOKUP_FAILED

El contenedor no puede resolver el nombre de host del KDC ni el reino.

Compruebe la configuración del resolutor de DNS interno para su contenedor del administrador de trabajos, o asigne los hosts con

RUNTIME_EXTRA_HOSTS

.

KERBEROS_CONFIG_INVALID

El contenedor de tiempo de ejecución no puede leer el keytab montado, o no se pudo analizar ningún principal a partir de este (un keytab vacío o mal formado).

Verifique que el keytab sea legible dentro del contenedor de tiempo de ejecución y contenga al menos un principal:

klist -kt <CLIENT_KEYTAB_PATH>

.

KERBEROS_UNKNOWN_FAILURE

Un error criptográfico o de GSSAPI a nivel del sistema detuvo el protocolo de enlace.

Compare los tipos de cifrado en el keytab del cliente (

klist -kt -e <CLIENT_KEYTAB_PATH>

enumera el enctype de cada entrada) con el valor

supported_enctypes

configurado en el KDC en el paso 3. Una discrepancia entre lo que ofrece el keytab y lo que acepta el KDC causa la mayoría de estas fallas.

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.