Resultados de la búsqueda :

×

Guía para configurar el inicio de sesión único (SSO) de Kerberos

Kerberos es un protocolo de autenticación basado en criptografía que protege el acceso a las aplicaciones. Este protocolo está diseñado para proporcionar una autenticación segura en una red insegura. La idea principal de Kerberos es autenticar a los usuarios impidiendo que se envíen contraseñas a través de internet.


Integración sencilla de LDAP/Active Directory para vídeos de WordPress.



Términos de Kerberos:

Kerberos: Kerberos es un protocolo de autenticación que admite el concepto de inicio de sesión único (SSO). En el caso de HTTP, la compatibilidad con Kerberos se suele proporcionar mediante el mecanismo de autenticación "SPNEGO".

Dominio Kerberos: Un dominio administrativo para la autenticación se denomina dominio. Su objetivo es definir las restricciones sobre cuándo un servidor de autenticación puede autenticar a un usuario, host o servicio. Esto no implica que un usuario y un servicio deban pertenecer al mismo dominio para que se produzca la autenticación: si ambos objetos están conectados mediante una relación de confianza, aunque pertenezcan a dominios diferentes, la autenticación puede llevarse a cabo igualmente.

Principal: En un sistema Kerberos, un Principal de Kerberos representa una identidad distinta a la que Kerberos puede emitir tickets para acceder a servicios compatibles con Kerberos. El separador "/" se utiliza para separar los distintos componentes que conforman los nombres de los principales. El carácter "@" se puede utilizar para identificar un dominio como último elemento del nombre. Si no se especifica ningún dominio, se presume que el Principal pertenece al dominio predeterminado configurado en el archivo krb5.conf.

Clientes/Usuarios: Un proceso que accede a un servicio en nombre de un usuario. Puede haber varios clientes o usuarios dentro de un mismo dominio.

Servicio: Algo a lo que el usuario desea acceder.

SSO ( Inicio de sesión único) es un procedimiento que permite a un usuario iniciar sesión una sola vez y acceder a numerosos servicios tras completar la autenticación. Después de iniciar sesión en un servicio principal, esto implica la autenticación en todos los servicios a los que el usuario haya otorgado autorización. SSO ofrece varias ventajas, entre ellas, evitar el tedioso proceso de validar la identidad repetidamente mediante contraseñas u otros sistemas de autenticación.

GSSAPI: Los programas pueden acceder a los servicios de seguridad mediante la Interfaz de Programación de Aplicaciones de Servicios de Seguridad Genéricos (GSSAPI), una interfaz de programación de aplicaciones (API). GSSAPI es un estándar de la IETF. No ofrece seguridad por sí misma; en cambio, los proveedores de servicios de seguridad ofrecen implementaciones de GSSAPI. El intercambio de mensajes opacos (tokens), que ocultan los detalles de implementación a la aplicación de nivel superior, es la característica distintiva de las aplicaciones GSSAPI.

SPNEGO: El software cliente-servidor utiliza el Mecanismo de Negociación GSSAPI Simple y Protegido, conocido comúnmente como "spen-go", para negociar la selección de la tecnología de seguridad. Cuando una aplicación cliente necesita iniciar sesión en un servidor remoto, pero ninguna de las partes está segura de qué protocolos de autenticación admite la otra, se emplea SPNEGO. Este pseudomecanismo utiliza un protocolo para identificar los mecanismos GSSAPI comunes disponibles, selecciona uno y, a continuación, asigna todas las acciones de seguridad subsiguientes a dicho mecanismo.

KDC: Un Centro de Distribución de Claves (KDC) es un servicio de red que proporciona tickets y claves de sesión temporales; o bien, una instancia de dicho servicio o el host en el que se ejecuta. El KDC gestiona tanto las solicitudes iniciales de tickets como las de concesión de tickets. La parte correspondiente a la solicitud inicial de tickets se denomina a veces Servidor (o servicio) de Autenticación. La parte correspondiente a la concesión de tickets se denomina a veces Servidor (o servicio) de Concesión de Tickets.



El acceso de un cliente a un recurso en un dominio de Active Directory se puede autenticar utilizando el protocolo de autenticación de desafío-respuesta conocido como Windows NT LAN Manager (NTLM). Cuando un cliente solicita acceso a un servicio relacionado con el dominio, el servicio envía un desafío al cliente, indicándole que use su token de autenticación para realizar una operación matemática y luego proporciona el resultado al servicio. El resultado puede ser verificado por el servicio o por el controlador de dominio (DC). El servicio otorga acceso al cliente si el DC o el servicio verifica que la respuesta del cliente es precisa.
Debido a que permite al usuario ingresar el factor de autenticación subyacente solo una vez, durante el inicio de sesión, NTLM es una especie de inicio de sesión único (SSO).


Flujo de inicio de sesión único (SSO) del protocolo de autenticación NTLM

  • El NEGOCIAR_MENSAJE define un mensaje de negociación NTLM que se envía desde el cliente al servidor. Este mensaje permite al cliente especificar sus opciones NTLM admitidas en el servidor.
  • El DESAFIO_MENSAJE define un mensaje de desafío NTLM que se envía desde el servidor al cliente y el servidor lo utiliza para desafiar al cliente a probar su identidad.
  • El AUTENTICATE_MESSAGE define un mensaje de autenticación NTLM que se envía desde el cliente al servidor después de que el cliente procesa CHALLENGE_MESSAGE.

Nota y contacto con nosotros: inicio de sesión único con Kerberos SSO y LDAP

Nota: La autenticación de Windows utiliza el protocolo de autenticación Kerberos o el protocolo de autenticación NTLM, según las configuraciones del cliente y del servidor.



Un protocolo de seguridad de red informática llamado Kerberos autentica solicitudes de servicio entre dos o más hosts confiables a través de una red que no es confiable, como Internet.

  • Mensaje A: Clave de sesión de cliente/TGS cifrada utilizando la clave secreta del cliente/usuario.
  • Mensaje B: Ticket-Otorgamiento-Ticket cifrado mediante la clave secreta del TGS.
  • Mensaje C: Compuesto por el TGT del mensaje B y el ID del servicio solicitado.
  • Mensaje D: Autenticador cifrado utilizando la clave de sesión Cliente/TGS.
  • Mensaje E: Ticket de cliente a servidor cifrado mediante la clave secreta del servicio.
  • Mensaje F: Clave de sesión Cliente/Servidor cifrada con la Clave de sesión Cliente/TGS.
  • Mensaje G: Un nuevo autenticador, que incluye el ID del cliente, la marca de tiempo y está cifrado mediante la clave de sesión del cliente/servidor.
  • Mensaje H: La marca de tiempo encontrada en el Autenticador del cliente cifrada usando la Clave de sesión Cliente/Servidor.


Requisitos previos:

  1. Una cuenta de servicio/cuenta de usuario en Active Directory.
  2. La contraseña de la cuenta debe tener una contraseña configurada en no caducado.

Paso 1: Cree un archivo Keytab en el controlador de dominio AD:

  • En el controlador de dominio AD, abra el símbolo del sistema en modo administrador y ejecute el siguiente comando para crear el archivo Keytab.
ktpass -princ HTTP/<Server Host Name>@EXAMPLE.COM -mapuser <username@EXAMPLE.COM>
-pass password -ptype KRB5_NT_PRINCIPAL -out <PATH>\spn.keytab -crypto ALL

Nota y contacto con nosotros: inicio de sesión único con Kerberos SSO y LDAP

Nota: Asegúrese de que EXAMPLE.COM esté en mayúsculas. Si el usuario con SPN ya existe, utilice ese usuario en lugar de crear uno nuevo. El principio de Kerberos distingue entre mayúsculas y minúsculas. Compruebe las diferencias entre mayúsculas y minúsculas antes de ejecutar el comando keytab.


  • Los siguientes son los componentes del comando.
Nombre del host del servidor: Es el nombre de host del sitio alojado en el servidor.
EJEMPLO.COM: Es el nombre de dominio de Active Directory.
Nombre de usuario: Es una cuenta de servicio en Active Directory.
Contraseña: Es la contraseña de la cuenta de servicio utilizada anteriormente.
ruta de acceso: Ruta a una ubicación local que almacenará el archivo keytab. (C:\Temp\spn.keytab)
Nota y contacto con nosotros: inicio de sesión único con Kerberos SSO y LDAP

Nota: El comando anterior crea un archivo keytab. Este archivo debe ubicarse en el servidor cliente donde se aloja tu sitio WordPress. El usuario que ejecuta Apache debe tener acceso completo a este archivo. El usuario debe tener permisos para acceder al archivo keytab.


  • Abra Usuarios y computadoras de Active Directory y en el menú superior seleccione Ver >> Funciones avanzadas.
  • Abra la cuenta de servicio y vaya a la pestaña del editor de atributos, busque el nombreprincipaldelservicio para verificar la entrada SPN.
  • Navegue a la pestaña Delegación .
  • Seleccionar Confíe en este usuario para delegar a cualquier servicio (solo Kerberos).
Servicio Kerberos Delegación SSO para Windows Active Directory

  • Haga clic en Aplicar.
  • Copia el tabla de claves archivo desde el controlador de dominio AD al servidor web alojado en Apache.
  • Proporcione permiso al archivo de tabla de claves de Kerberos:
chmod 644 etc/apache2/spn.keytab

Paso 2: Instalar las bibliotecas de cliente Kerberos en el servidor web:

  • Utilice el siguiente comando en su terminal para instalar las bibliotecas del cliente Kerberos.
sudo apt-get install krb5-user

Paso 3: Instalar módulos para Apache:


Nota y contacto con nosotros: inicio de sesión único con Kerberos SSO y LDAP

Nota: En las versiones más recientes de Ubuntu/Debian, mod_auth_kerb ha sido descontinuado y reemplazado por mod_auth_gssapi.


  • Hay dos módulos de Apache, pero solo es necesario instalar uno de ellos:

    1. Módulo mod-auth-gssapi para apache.
    2. Módulo mod_auth_kerb para Apache. (obsoleto)


1. Instale el módulo mod-auth-gssapi para Apache:

  • Utilice el siguiente comando para instalar el libapache2-mod-auth-gssapi Módulo para Apache en sistemas basados ​​en Debian:
sudo apt-get -y install libapache2-mod-auth-gssapi

OR


2. Instale el módulo mod_auth_kerb para Apache (obsoleto):

  • Utilice el siguiente comando para instalar el módulo auth_kerb para Apache en sistemas basados ​​en Debian:
sudo apt-get install libapache2-mod-auth-kerb
  • Una vez instalado el módulo auth_kerb, debe habilitarse mediante el siguiente comando.
a2enmod auth_kerb
  • Después de habilitar, Reiniciar Apache para tomar efecto.


Paso 4: Configure el dominio de Active Directory en el archivo de configuración de Kerberos:

  • Abra y edite el krb5.conf .
    La ruta al archivo krb5.conf para Linux es C:/etc/krb5.conf y para otros sistemas basados ​​en UNIX es c:/etc/krb5/krb5.conf
  • Agregue el siguiente fragmento de configuración al krb5.conf archivo en la sección mencionada:
[libdefaults]
default_realm = EXAMPLE.COM
# ...
# ...
[realms]
EXAMPLE.COM = {
kdc = <DNS entries pointing to your primary domain controller>: Port
admin_server = <DNS entries pointing to your primary domain controller>: Port
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM

Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: Vuelva a colocar la CONTROLADOR DE DOMINIO AD IP/DNS con su IP/DNS Dirección. Asegurarse EJEMPLO.COM debe estar en mayúsculas.
Vuelva a colocar la EJEMPLO.COM con el nombre de dominio de Active Directory y asegúrese de que el puerto 88 en el controlador de dominio de AD sea accesible desde este servidor.


  • Guarde el archivo.

Paso 5: Configurar el SSO de Kerberos para el directorio del sitio:

  • Edite el archivo de configuración del host virtual impuesto que se almacena en /etc/apache2/directorio habilitado para sitios o el archivo de host virtual predeterminado llamado 000-default.conf
Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: Añada la siguiente sección en el directorio según el módulo de Apache utilizado. Por ejemplo: "mod_auth_kerb" o "mod_auth_gssapi".


  • 1. Agregue la siguiente sección en el directorio del sitio para mod_auth_gssapi.
<IfModule !mod_auth_gssapi.c>
    LoadModule auth_gssapi_module /usr/lib64/httpd/modules/mod_auth_gssapi.so
</IfModule>
<Directory "/placeholder">
    AuthType GSSAPI
    AuthName "Kerberos auth"
    GssapiAllowedMech krb5
    GssapiBasicAuth On
    GssapiCredStore keytab:<PATH TO KEYTAB>
    GssapiLocalName On
    BrowserMatch Windows gssapi-no-negotiate
    Require valid-user
</Directory>

OR


  • 2. Agregue la siguiente sección en el directorio del sitio para mod_auth_kerb (obsoleto).
<Directory "/placeholder">
    AuthType Kerberos
    KrbAuthRealms EXAMPLE.COM
    KrbServiceName HTTP/<Server Host Name>
    Krb5Keytab <PATH TO KEYTAB>
    KrbMethodNegotiate on
    KrbMethodK5Passwd on
    require valid-user
</Directory>

Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: Asegúrese de que EJEMPLO.COM debe estar en mayúsculas.
Los siguientes son los componentes de la configuración anterior:


EJEMPLO.COM: Este es el dominio de Active Directory configurado en krb5.conf.
RUTA A LA TECLA: Ruta accesible a la tabla de claves en este servidor. (etc/spn.keytab)
  • Después de esta configuración, es necesario reiniciar Apache para que los cambios surtan efecto.

Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: Una vez que haya terminado de configurar los ajustes, haz clic aquí. para configurar navegadores para Kerberos SSO.
Para probar su configuración de SSO Kerberos/NTLM, haz clic aquí..
Para solucionar cualquier error, por favor haz clic aquí..


Paso 1: Cree un archivo Keytab en el controlador de dominio AD:

  • En el controlador de dominio AD, abra el símbolo del sistema en modo administrador y ejecute el siguiente comando para crear el archivo Keytab.
ktpass -princ HTTP/<Server Host Name>@EXAMPLE.COM -mapuser <username@EXAMPLE.COM>
-pass password -ptype KRB5_NT_PRINCIPAL -out <PATH>\spn.keytab -crypto ALL

Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: Asegúrese de que EXAMPLE.COM esté en mayúsculas. El principio de Kerberos distingue entre mayúsculas y minúsculas. Compruebe si hay diferencias entre mayúsculas y minúsculas antes de ejecutar el comando keytab.


  • Los siguientes son los componentes del comando.
Nombre del host del servidor: Es el nombre de host del sitio alojado en el servidor.
EJEMPLO.COM: Es el nombre de dominio de Active Directory.
Nombre de usuario: Es una cuenta de servicio en Active Directory.
Contraseña: Es la contraseña de la cuenta de servicio utilizada anteriormente.
ruta de acceso: Ruta a una ubicación local que almacenará el archivo keytab. (C:\Temp\spn.keytab)
Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: El comando anterior crea un archivo keytab . Este archivo debe ubicarse en el servidor cliente donde se aloja su sitio WordPress. El usuario que ejecuta Apache debe tener acceso completo a este archivo. El usuario debe tener permisos para acceder al archivo keytab.


  • Copia el Archivo de tabla de claves Desde el controlador de dominio AD al servidor web alojado en Apache.
  • Proporcione permiso al archivo de tabla de claves de Kerberos:
chmod 644 etc/httpd/spn.keytab

Paso 2: Instalar las bibliotecas de cliente Kerberos en el servidor web:

  • Utilice el siguiente comando en su terminal para instalar las bibliotecas del cliente Kerberos.
yum install -y krb5-workstation krb5-devel krb5-libs mod_auth_gssapi mod_session
Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: En las versiones más recientes de CentOS, mod_auth_kerb ha sido descontinuado y reemplazado por mod_auth_gssapi.


Paso 3: Instalar módulos para Apache:

Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: En las versiones más recientes de Ubuntu/Debian, mod_auth_kerb ha sido descontinuado y reemplazado por mod_auth_gssapi.


  • Hay dos módulos de Apache, pero solo es necesario instalar uno de ellos:

    1. Módulo mod-auth-gssapi para apache.
    2. Módulo mod_auth_kerb para Apache (obsoleto).


1. Instale el módulo mod-auth-gssapi para Apache:

  • Utilice el siguiente comando para instalar el Módulo libapache2-mod-auth-gssapi Para Apache en sistemas basados ​​en Debian:
sudo apt-get -y install libapache2-mod-auth-gssapi

OR


2. Instale el módulo mod_auth_kerb para Apache (obsoleto):

  • Utilice el siguiente comando para instalar el módulo auth_kerb para Apache en sistemas basados ​​en Red Hat. (Para las últimas versiones de RHEL, utilice el módulo mod-auth-gssapi)
yum install mod_auth_kerb

Paso 4: Configure el dominio de Active Directory en el archivo de configuración de Kerberos:

  • Abra y edite el krb5.conf .
    La ruta al archivo krb5.conf para RHEL es C:/etc/krb5.conf
  • Agregue el siguiente fragmento de configuración al krb5.conf archivo en la sección mencionada:
  • Navegue a la pestaña [valores predeterminados de lib] sección y agregue lo siguiente:
default_realm = EXAMPLE.COM
dns_lookup_realm = true
dns_lookup_kdc = true

  • Navegue a la pestaña [reinos] sección y agregue lo siguiente:
EXAMPLE.COM = {
kdc = <DNS entries pointing to your primary domain controller>: Port
admin_server = <DNS entries pointing to your primary domain controller>: Port
}

  • Navegue a la pestaña [dominio_realm] sección y agregue lo siguiente:
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM

Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: Vuelva a colocar la ANUNCIO CONTROLADOR DE DOMINIO IP/DNS con su dirección IP/DNS. Asegúrese de EXAMPLE.COM debe estar en mayúsculas.
Vuelva a colocar la EJEMPLO.COM con el nombre de dominio de Active Directory y asegúrese de que el puerto 88 en el controlador de dominio de AD sea accesible desde este servidor.


  • Guarde el archivo.

Paso 5: Configure el dominio de Active Directory en el archivo de configuración de Kerberos:

  • Editar el archivo de configuración del host impuesto /etc/httpd/conf/httpd.conf
  • Agregue la siguiente sección en el directorio del sitio para mod_auth_gssapi
LoadModule auth_gssapi_module modules/mod_auth_gssapi.so
<Directory "/placeholder">
    AuthType GSSAPI
    AuthName "Kerberos auth"
    GssapiBasicAuth On
    GssapiCredStore keytab:<PATH TO KEYTAB>
    GssapiLocalName On
    Require valid-user
</Directory>

OR


  • Agregue la siguiente sección en el directorio del sitio para mod_auth_kerb (obsoleto).
<Directory "/placeholder">
    AuthType Kerberos
    KrbAuthRealms EXAMPLE.COM
    KrbServiceName HTTP/<Server Host Name>
    Krb5Keytab <PATH TO KEYTAB>
    KrbMethodNegotiate on
    KrbMethodK5Passwd on
    require valid-user
</Directory>

  • Los siguientes son los componentes de la configuración anterior:
RUTA A LA TECLA Ruta accesible a la tabla de claves en este servidor. (etc/apache2/spn.keytab)
"/marcador de posición" Ruta a la raíz del documento
  • Después de esta configuración, es necesario reiniciar Apache para que los cambios surtan efecto.

Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: Una vez que haya terminado de configurar los ajustes, haz clic aquí. para configurar navegadores para Kerberos SSO.
Para probar su configuración de SSO Kerberos/NTLM, haz clic aquí..
Para solucionar cualquier error, por favor haz clic aquí..



  • Abra el símbolo del sistema en Modo administrador.
  • Ejecute el siguiente comando para agregar Nombre principal de servicio (SPN) para la cuenta de servicio.
Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: Supongamos que el sitio web debe responder en http://machinename y http://machinename.domain.com. Debemos especificar estas direcciones en el atributo SPN de la cuenta de servicio.


Setspn -S http/<computer-name>.<domain-name> <domain-user-account>

Ejemplo: C:\Users\Administrator> setspn -S HTTP/machinename.domain.com service_account

Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: "machinename.domain.com" aquí es el nombre del equipo. Asegúrese de que se pueda resolver en el servidor Windows que ejecuta el servicio de Active Directory.


  • Verifique si esto se ha configurado correctamente ejecutando el siguiente comando:
setspn -l domain or service_account

Ejemplo: C:\Users\Administrator> setspn -l service_account o C:\Users\Administrator> setspn -l domain_name

Establecer la entrada del nombre principal del servicio (SPN) para la autenticación SSO de Kerberos en el servidor IIS de Windows

  • El resultado debe enumerar http/nombredeequipo.dominio.com
  • Abra Usuarios y computadoras de Active Directory y en el menú superior seleccione Ver >> Funciones avanzadas.
  • Abra la cuenta de servicio y vaya a editor de atributos pestaña, vaya a la nombreprincipaldelservicio para verificar el Entrada SPN.
  • Navegue a la pestaña Delegación .
  • Seleccionar Confíe en este usuario para delegar a cualquier servicio (solo Kerberos).
Delegación de servicios Kerberos para el inicio de sesión único de Kerberos para sistemas RHEL, CentOS, Ubuntu y Fedora

  • Haga clic en Aplicar.
  • Abra el panel de Administrador de IIS y haga clic en el sitio web para el que desea habilitar la autenticación de Windows.
  • Haga doble clic en Autenticación.
Administrador de IIS de Windows para configurar los ajustes de autenticación de Windows para que los sitios habiliten Kerberos SSO

  • En la sección Autenticación, puede ver que solo la autenticación anónima está habilitada de manera predeterminada. IIS siempre intenta realizar la autenticación anónima, por lo que Deshabilitar la autenticación anónima y Habilitar la autenticación de Windows.
Habilite la autenticación de Windows desde el administrador de Windows IIS para Kerberos SSO en la aplicación configurada

  • Haz clic derecho en la Autenticación de Windows y haga clic en el ícono de Proveedores Medicos.
Servicio de información de Internet Administrador de IIS Lista de proveedores de autenticación de Windows

  • Aparecerá la siguiente ventana. Asegúrese de que "Negociar" Está en la parte superior de la lista de proveedores.
El administrador de IIS de Windows permite al proveedor de autenticación de Windows realizar un inicio de sesión único con protocolo Kerberos.

Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: Por defecto, hay dos proveedores disponibles: Negotiate y NTLM. Negotiate es un contenedor que utiliza Kerberos como primer método de autenticación y, si esta falla, se utiliza NTLM. Por lo tanto, es necesario que Negotiate aparezca primero en la lista de proveedores.


  • Haga clic en Ok para cerrar la ventana.
  • Para configurar el grupo de aplicaciones de IIS para iniciarlo desde la cuenta SPN creada, haga clic en el botón Piscinas de aplicaciones para abrir la ventana Grupos de aplicaciones.
  • Haga clic derecho en el dominio y, en la lista, haga clic en Configuración Avanzada.
Configuración avanzada del sitio del grupo de aplicaciones del administrador del Servicio de información de Internet (IIS) de Windows para habilitar Kerberos SSO

  • En la ventana Configuración avanzada, en Modelo de proceso, haga clic en Identidad.
Configure la identidad desde la configuración avanzada del grupo de aplicaciones del administrador de Windows IIS para habilitar Kerberos SSO

  • En la Identidad del grupo de aplicaciones, seleccione Cuenta personalizada y haga clic en el ícono de y configure Botón para configurar la Identidad.
  • Cambiarlo de Identidad del grupo de aplicaciones a \.

Ejemplo: dominio.com\cuenta_de_servicio

Kerberos SSO en Windows configura una cuenta personalizada desde la configuración de identidad del grupo de aplicaciones del administrador de IIS

  • Vaya a la Editor de configuración.
Vaya al editor de configuración del administrador de Windows IIS para habilitar la autenticación Kerberos/NTLM en el sitio web

  • En el menú desplegable, seleccione posición system.webServer > seguridad > autenticación > autenticación de windows.
Configure useAppPoolCredentials para configurar la autenticación Kerberos para el servidor Windows IIS

  • CAMBIAR useAppPoolCredentials en Verdadero. y useKernelMode en Falso.
Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: Si se establece useAppPoolCredentials en True, permitimos que IIS utilice la cuenta de dominio para descifrar el ticket Kerberos de los clientes.


  • Haga clic en Aplicar.
  • Reinicie el servidor IIS.
  • Puede comprobar que se utiliza la autenticación Kerberos en el sitio web monitoreando el tráfico HTTP mediante Fiddler.

Inicie el violinista e inicie el navegador en el sitio web deseado. Ubique la línea de acceso al sitio web en el lado izquierdo de la ventana. Seleccione la pestaña Inspeccionar en el lado derecho de la ventana. Es evidente que Kerberos se ha utilizado para autenticar en el sitio web de IIS desde la línea "El encabezado de autorización (negociar) parece contener un ticket de Kerberos".

El ticket de Kerberos está contenido en el encabezado de autorización durante el proceso de SSO de Kerberos

Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: Una vez que haya terminado de configurar los ajustes, haz clic aquí. para configurar navegadores para Kerberos SSO.
Para probar su configuración de SSO Kerberos/NTLM, haz clic aquí..
Para solucionar cualquier error, por favor haz clic aquí..



  • Abra el símbolo del sistema en Modo administrador.
  • Ejecute el siguiente comando para agregar Nombre principal de servicio (SPN) para la cuenta de servicio.
Setspn -s http/<computer-name>.<domain-name> <domain-user-account>

Ejemplo: C:\Users\Administrator> setspn -S HTTP/ machinename.domain.com service_account


Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: "machinename.domain.com" aquí es el nombre del equipo. Asegúrese de que se pueda resolver en el servidor Windows que ejecuta el servicio de Active Directory.


  • Verifique si esto se ha configurado correctamente ejecutando el siguiente comando:
setspn -l domain\service_account
  • El resultado debe enumerar http/nombredeequipo.dominio.com
  • Abra Usuarios y computadoras de Active Directory y en el menú superior seleccione Ver >> Funciones avanzadas.
  • Abra la cuenta de servicio y vaya a editor de atributos pestaña, vaya a la nombreprincipaldelservicio para verificar el Entrada SPN.
  • Navegue a la pestaña Delegación .
  • Seleccionar Confíe en este usuario para delegar a cualquier servicio (solo Kerberos).
Kerberos para autenticación de Windows en el servidor IIS

  • Haga clic en Aplicar.
  • Haga clic aquí para descargar el módulo de apache.
  • Copia el mod_authnz_sspi.so desde Apache24 > módulos carpeta y colóquelo en el directorio de módulos (C:\xampp\apache\modules).
  • Copia el sspipkgs.exe archivo de Apache24 -> contenedor y colóquelo en la carpeta bin de su carpeta Xampp Apache (.....\xampp\apache\bin) en su servidor web.
  • Abra httpd.conf (.....\xampp\apache\conf) y coloque la siguiente línea de código en la sección LoadModule.
LoadModule authnz_sspi_module modules/mod_authnz_sspi.so
  • Asegúrese de que los siguientes módulos estén descomentados:
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so

  • Además, asegúrese de Habilitar la extensión ldap.
  • Abra el archivo httpd.conf desde (.....\xampp\apache\conf\httpd.conf).
    Vaya a y pegue las líneas siguientes después de #Requerir todas las subvenciones.
<Directory "...../xampp/htdocs">
......
......
#Require all granted
AllowOverride None Options None
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
Require valid-user
</Directory>

  • Reinicia tu Servidor Apache.

Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: Una vez que haya terminado de configurar los ajustes, haz clic aquí. para configurar navegadores para Kerberos SSO.
Para probar su configuración de SSO Kerberos/NTLM, haz clic aquí..
Para solucionar cualquier error, por favor haz clic aquí..




Inicio de sesión LDAP para sitios de intranet: inicio de sesión único con Kerberos SSO

Nota: La configuración del cliente permite que el navegador utilice SPNEGO para negociar la autenticación Kerberos. Debe asegurarse de que el navegador del sistema del usuario final esté configurado para admitir la autenticación Kerberos.



Configuración general de SSO de Kerberos para todos los navegadores:

  • Vaya al Panel de control y haga clic en Redes e Internet >> Opciones de Internet.
  • Esto abrirá una ventana de Propiedades de Internet. Haga clic en Seguridad >> Intranet local >> Sitios.
Configure los navegadores para la autenticación Kerberos con la configuración de opciones de Internet

  • Después de eso, haga clic en el Botón Avanzado.
Configure los ajustes avanzados desde las opciones de Internet para Kerberos SSO en Chrome e Internet Explorer

  • En la sección Añadir este sitio web a la zona sección agregue la URL del sitio web en el que desea iniciar sesión con SSO.
Configurar el sitio web en la Zona de Intranet desde las opciones de Internet para Kerberos SSO

  • Haga clic en Herramientas > Opciones de Internet > Seguridad > Intranet local > Nivel personalizado.
  • Desplácese hacia abajo hasta las opciones de Autenticación de usuario y seleccione Inicio de sesión automático sólo en la zona Intranet.
Inicio de sesión automático a la zona de intranet mediante el protocolo de autenticación Kerberos

  • Haga clic en Ok y luego reinicie su navegador.


Una vez que haya terminado con la configuración anterior, no necesita configurar los ajustes del navegador para Internet Explorer, Google Chrome y Apple Safari.

Internet Explorer:

De forma predeterminada, se aplicarán los ajustes de configuración generales del navegador; no se requieren más ajustes adicionales para Internet Explorer.

Google Chrome:

De forma predeterminada, se aplicarán los ajustes de configuración general del navegador; no se requieren más ajustes adicionales para Google Chrome.

Mozilla Firefox:

  • Abra el navegador Mozilla Firefox e ingrese about: config en la barra de direcciones.
  • Busque network.negotiate-auth.trusted-uris Nombre de preferencia y haga clic en Editar. introduzca el nombre de host o el dominio del servidor web protegido por Kerberos HTTP SPNEGO. Especifique varios dominios y nombres de host separados por una coma.
Configurar mozilla Firefox para kerberos SSO (inicio de sesión único)

  • Busque red.automatic-ntlm-auth.trusted-uris Nombre de preferencia y haga clic en Editar. introduzca el nombre de host o el dominio del servidor web protegido por Kerberos HTTP SPNEGO. Especifique varios dominios y nombres de host separados por una coma.
configurar los ajustes de Mozilla Firefox para la autenticación Kerberos

  • Haga clic en OK y luego reinicie su navegador.

Safari de Apple:

Safari en Windows admite SPNEGO sin necesidad de configuración adicional. Admite tanto Kerberos como NTLM como submecanismo de SPENGO.



Sincronización de tiempo:

El protocolo Kerberos requiere que la hora del cliente y del servidor coincidan: si el reloj del sistema del cliente no coincide con el del servidor, la autenticación fallará. La forma más sencilla de sincronizar los relojes del sistema es utilizar un servidor de protocolo de tiempo de red (NTP).



Verificar con comandos:

Para verificar su configuración de keytab y kerberos, puede ejecutar los siguientes comandos:

  1. Lista de canciones: El comando klist muestra el contenido de una tabla de claves o caché de credenciales de Kerberos. Con este comando podrás comprobar si tienes un billete válido o no.
  2. klist -t -k etc/apache2/spn.keytab: Para enumerar todas las entradas en la tabla de claves etc/apache2/spn.keytab con marcas de tiempo.
  3. klist -ek /etc/apache2/spn.keytab: Muestra el tipo de cifrado para la clave de sesión y el ticket y enumera las entradas en una tabla de claves.
  4. kinit -V -kt /etc/apache2/spn.keytab -p HTTPS/ servidor web.tudominio.com @TUDOMINIO.COM: Verifique la autenticación Kerberos con el archivo keytab.
  5. kdestroy-A: Puede utilizar este comando en Linux para restablecer cualquier token de Kerberos en su máquina local. El comando destruye su ticket Kerberos anterior.
  6. purga de klist: Puede utilizar este comando en Windows para restablecer cualquier token de Kerberos en su máquina local. El comando destruye su ticket Kerberos anterior.
  7. KRB5_TRACE=/dev/stdout kinit -kt /etc/krb5.keytab HTTP/≶Nombre del host del servidor>: Puede utilizar este comando en su servidor web Linux para obtener un ticket de Kerberos utilizando el archivo keytab y obtener información detallada para la depuración del proceso de autenticación de Kerberos habilitando el seguimiento de Kerberos.


Configuración de prueba:

  • Para probar la configuración de SSO, cree un test.php archivo en su directorio raíz de WordPress.
  • Ingrese la siguiente línea:
<?php
var_dump($_SERVER);
?>
  • Guarde el archivo y acceda a él en el navegador web. Verás el Contenido de $_SERVER.
  • Buscar "REMOTE_USER" y debe contener el nombre de usuario que actualmente está conectado.
Inicio de sesión LDAP para sitios de intranet Kerberos SSO

Nota: Elimine el archivo test.php después de verificar su configuración, ya que contiene información valiosa.


  • Cree tablas de claves separadas en cada dominio y combínelas con la herramienta ktutil:
ktutil
ktutil: read_kt <keytab_filename_1>
ktutil: read_kt <keytab_filename_2>
ktutil: read_kt <keytab_filename_3>
ktutil: write_kt spn.keytab
ktutil: quit
  • Verifique la combinación con el siguiente comando:
klist -k spn.keytab
  • Configurar krb5.conf:

El archivo krb5.conf contiene información de configuración de Kerberos que incluye KDC y servidores de administración para uno o más dominios de Kerberos, valores predeterminados para el dominio actual y asignaciones de nombres de host en dominios de Kerberos. En caso de múltiples dominios, el archivo krb5.conf debe actualizarse con información sobre varios dominios/reinos de dominio para que funcione la autenticación.



Los siguientes son los mensajes de error más comunes:


  • kinit: Pre-authentication failed: Invalid argument while getting initial credentials
    or
    GSS ERROR gss_accept_sec_context(): [Unspecified GSS failure. Minor code may provide more information (Request ticket server HTTP/<Server Host Name>@EXAMPLE.COM kvno x enctype rc4-hmac found in keytab but cannot decrypt ticket)]
    El tipo de cifrado rc4 que todavía se usa mucho en entornos AD pero que ya está deshabilitado de forma predeterminada en RHEL-8.3. Puede consultar el siguiente ejemplo para agregar un tipo de cifrado a su archivo de tabla de claves.
    Ejemplo: ktutil
    addent -password -p HTTP/<Server Host Name>@EXAMPLE.COM -k 1 -e aes256-cts-hmac-sha1-96
    wkt spn.keytab.

    Asegúrese de que el cifrado Kerberos AES de 256 bits sea compatible con la configuración de la "Cuenta" del usuario.

    Propiedades de Kerberos krbtgt


  • Unspecified GSS failure. Minor code may provide more information (Clock skew too great)
    or
    kinit: krb5_get_init_creds: Too large time skew
    Kerberos es muy sensible al tiempo. Verifique que los relojes de los hosts de Active Directory y del servidor web sean idénticos. Configure uno de sus controladores de dominio para que sirva como servidor NTP para sus computadoras cliente.

  • gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Permission denied) Permisos de sistema de archivos incorrectos para /etc/apache2/spn.keytab, es decir, no legibles para el usuario de Linux del servidor web.
    Para cambiar los permisos del sistema de archivos, utilice chmod 644 /etc/apache2/spn.keytab

  • gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Key table entry not found). Falta el principal del servicio (posiblemente HTTP/webserver.yourdomain.com @YOURDOMAIN.COM) en /etc/apache2/spn.keytab.

  • Warning: received token seems to be NTLM, which isn't supported by the Kerberos module. Check your IE configuration. gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error) El sitio web no está en la zona "Intranet local" en IE o IE está configurado incorrectamente; consulte La autenticación utiliza NTLM en lugar de Kerberos.

  • gss_accept_sec_context() failed: Unspecified GSS failure. Minor code may provide more information (, ). Kvno o contraseña de máquina incorrectos en etc/apache2/spn.keytab. Recrea la tabla de claves usando la información correcta.
    Problema con la caché de tickets local de Kerberos en su estación de trabajo. Utilice Kerbtray.exe para purgar la caché de tickets y abrir el sitio web en IE nuevamente.

  • kinit: KDC has no support for encryption type while getting initial credentials Cambie el tipo de cifrado predeterminado en la sección libdefaults del archivo /etc/apache2/krb5.conf. Agregue default_tgs_enctypes y default_tkt_enctypes a su configuración.

  • [libdefaults]
    default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
    default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
    kinit: krb5_get_init_creds: Error from KDC: CLIENT EXPIRED
    or
    kinit: Client's entry in database has expired while getting initial credentials
    Su cuenta Kerberos ya no está activa. Es necesario renovar las credenciales de la cuenta.

  • kinit: krb5_cc_get_principal: No credentials cache file found
    or
    kinit: krb5_get_init_creds: Error from KDC: CLIENT_NOT_FOUND
    Se apuntó al dominio incorrecto al ejecutar el comando kinit. Verifica el nombre del dominio, debe estar en mayúsculas EJEMPLO.COM

  • kinit : Cannot find KDC for requested realm while getting initial credentials El archivo /etc/apache2/krb5.conf no contiene el nombre de dominio del directorio activo (.EXAMPLE.COM).

  • kinit: Preauthentication failed while getting initial credentials Se debe a que se tecleó por error la contraseña de Kerberos. Inténtelo de nuevo. O se debe al reloj de su sistema. Asegúrese de que el comando de fecha devuelva una hora correcta con una precisión de 5 minutos.

  • kinit: Client not found in Kerberos database while getting initial credentials Su principal de Kerberos puede diferir de su nombre de usuario en su sistema local.

  • kinit: Client's entry in database has expired Debe cambiar su contraseña de Kerberos.


Más preguntas frecuentes ➔

Sí, puede utilizar un usuario LDAP existente como entidad principal de servicio de Kerberos. Sin embargo, este usuario debe tener una contraseña configurada para que nunca caduque. Asegúrese de que ningún usuario utilice esta cuenta, ya que la aplicación utiliza esta cuenta como principal del servicio Kerberos y la tabla de claves correspondiente para obtener un ticket de Kerberos.

Toda la autenticación en Kerberos ocurre entre clientes y servidores. Por lo tanto, cualquier entidad que reciba un ticket de servicio para un servicio Kerberos se denomina "cliente Kerberos" en la terminología de Kerberos. Los usuarios suelen considerarse clientes, pero cualquier principal puede serlo.
El Centro de distribución de claves, o KDC para abreviar, suele denominarse "servidor Kerberos". El KDC implementa tanto el Servicio de autenticación (AS) como el Servicio de concesión de billetes (TGS). Cada contraseña conectada a cada principal se almacena en el KDC. Por esta razón, es esencial que el KDC sea lo más seguro posible.
La frase "servidor de aplicaciones" a menudo se refiere al software Kerberizado que los clientes utilizan para interactuar mientras se autentican mediante tickets Kerberos. Un ejemplo de servidor de aplicaciones es el demonio telnet Kerberos.

Esto sucede cuando se utiliza el protocolo NTLM para la autenticación en lugar de Kerberos.
Esto puede ocurrir por múltiples razones:

  • Compruebe si está utilizando una máquina unida a un dominio para acceder al sitio web.
  • Asegúrese de que la hora esté sincronizada entre el servidor LDAP y el servidor web.
  • Confirme si la configuración de su navegador y las opciones de Internet están configuradas para Kerberos SSO.
  • Si aún enfrenta este problema, no dude en contactarnos.




 Gracias por su respuesta. Nos pondremos en contacto con usted pronto.

Algo salió mal. Por favor envíe su consulta nuevamente

¡Nos pondremos en contacto con usted lo antes posible!


ADFS_sso ×
¡Hola!

¿Necesitas ayuda? ¡Estamos aquí!

múltiples proveedores