Volver al inicio

SPN para autenticación de 1C en servidor web Linux

El artículo describe la solución al problema de autenticación de 1C con un servidor web en Linux y un servidor de aplicaciones en Windows. La clave es agregar un registro SPN para la cuenta de servicio. Se proporcionan comandos setspn, configuraciones krb5 y mod_auth_kerb.

Solución de autenticación 1C: SPN en Linux+Windows
Advertisement 728x90

Configuración de autenticación Kerberos para 1C: Servidor web Linux con servidor de aplicaciones Windows

Al publicar una base de datos 1C en un servidor web Linux con un servidor de aplicaciones Windows, las guías estándar de configuración de autenticación suelen ser insuficientes. Incluso si el registro técnico del servidor de aplicaciones muestra que la cuenta de usuario se pasa desde el servidor web, la plataforma sigue solicitando credenciales de inicio de sesión. La causa principal es la ausencia de un registro SPN para la cuenta de servicio que ejecuta el servidor de aplicaciones 1C.

Este detalle falta en la mayoría de los tutoriales, incluidos artículos populares en Infostart. La solución se descubrió experimentalmente al estudiar la autenticación Kerberos en Linux y Windows.

Requisitos de infraestructura

El escenario asume:

Google AdInline article slot
  • Un servidor web (Apache/Nginx) en Linux con un módulo NTLM/Kerberos.
  • Un servidor de aplicaciones 1C en Windows Server.
  • Un Active Directory (AD) para la gestión de cuentas.
  • IIS o un servicio similar en el servidor 1C para manejar las solicitudes.

La configuración preliminar incluye publicar la base de datos a través del servidor web, configurar mod_auth_kerb (para Apache) o nginx con scripts Lua para pasar encabezados de autenticación. El registro de 1C muestra la cuenta transmitida, pero la autenticación falla.

Solución de problemas

Verifique el registro técnico del servidor de aplicaciones (parámetros de inicio: -reg o a través de la consola del clúster). Busque entradas como:

{User: domain\username} desde servidor web

Si la cuenta es visible pero persisten las solicitudes de credenciales, el problema está con el SPN.

Google AdInline article slot

Pasos de diagnóstico:

  • Ejecute setspn -Q / para la cuenta de servicio 1C (por ejemplo, svc_1c).
  • Verifique la ausencia de un SPN en la salida.
  • Pruebe el acceso a través de un navegador que admita NTLM (IE/Edge en zona de intranet).
  • Revise los registros del servidor web: grep -i kerberos /var/log/apache2/error.log.

Solución: Agregar un registro SPN

Cree un registro SPN para la cuenta de servicio que ejecuta el servidor de aplicaciones. El valor del SPN es arbitrario—no se usa en el tráfico, pero es necesario para la lógica de autenticación interna de 1C.

Comando en DC o máquina con RSAT:

Google AdInline article slot
setspn -S HTTP/fakespn.svc_1c.domain.local svc_1c

Donde:

  • HTTP/fakespn.svc_1c.domain.local es un SPN ficticio.
  • svc_1c es la cuenta de servicio 1C.

Verifique con: setspn -L svc_1c. Después de agregar, reinicie el servidor de aplicaciones y pruebe el acceso.

La autenticación funcionará sin solicitudes de credenciales. La razón: la plataforma 1C verifica la existencia de un SPN antes de aceptar tokens Kerberos/NTLM.

Configuraciones adicionales de Kerberos

  • Keytab en Linux: Use ktutil para agregar una clave para el principal de servicio HTTP/webserver.domain.local.
  • krb5.conf: Especifique el reino y KDC en /etc/krb5.conf.
[realms]
DOMAIN.LOCAL = {
kdc = dc.domain.local
}
  • Configuración de Apache (mod_auth_kerb):
<Location /1c>
AuthType Kerberos
AuthName "Inicio de sesión Kerberos"
KrblAuthRealms DOMAIN.LOCAL
KrbMethodNegotiate On
KrbsaveCredentials Off
</Location>

Puntos clave

  • SPN es obligatorio: Incluso un SPN falso desbloquea la autenticación de 1C.
  • Registros para depuración: Use el registro técnico de 1C y error.log del servidor web.
  • Cuenta de servicio: Ejecute el servidor 1C bajo una cuenta de dominio con privilegios apropiados.
  • Pruebas: Use kinit en Linux para verificar Kerberos.
  • Seguridad: Limite los SPN solo a servicios necesarios.

— Editorial Team

Advertisement 728x90

Leer después