Resultados de la búsqueda :

×


"Gracias por su respuesta. Nos comunicaremos con usted pronto".

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

General


Protocolo 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 autenticación segura a través de una red insegura. La idea clave detrás de Kerberos es autenticar a los usuarios y al mismo tiempo evitar que se envíen contraseñas a través de Internet.


icono mininaranja

Inicio de sesión único (SSO) de Kerberos/NTLM

Por miniOrange

Más Información

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, el soporte para Kerberos generalmente se proporciona mediante el término mecanismo de autenticación "SPNEGO".

Reino Kerberos: Un dominio administrativo para la autenticación se indica con el término 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 ser miembros del mismo dominio para que se produzca la autenticación: si los dos objetos están conectados a través de una conexión de confianza a pesar de pertenecer a dominios diferentes, la autenticación aún puede ocurrir.

Director: 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 componen los nombres principales. El carácter "@" se puede utilizar para identificar un reino como elemento final del nombre. Si no se especifica ningún dominio, se supone que Principal pertenece al dominio predeterminado establecido 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 dominio.

Servicio: Algo a lo que el usuario quiere acceder.

SSO: El inicio de sesión único es un procedimiento que permite a un usuario iniciar sesión solo una vez y acceder a numerosos servicios después de completar la autenticación del usuario. Después de iniciar sesión en un servicio principal, esto implica la autenticación en cada servicio al que el usuario haya otorgado autorización. SSO tiene una serie de ventajas, una de las cuales es evitar el tedioso proceso de validar repetidamente la identidad mediante contraseñas u otros sistemas de autenticación.

GSSAPI: Los programas pueden acceder a los servicios de seguridad a través de la Interfaz de programa de aplicación de servicio de seguridad genérico (GSSAPI), que es una interfaz de programación de aplicaciones (API). Un estándar del IETF es GSSAPI. No ofrece ninguna seguridad por sí solo. En cambio, las implementaciones GSSAPI las ofrecen los proveedores de servicios de seguridad. 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.

ESPNEGO: El software cliente-servidor utiliza el mecanismo de negociación GSSAPI simple y protegido, frecuentemente llamado "spen-go", para negociar la selección de tecnología de seguridad. Cuando una aplicación cliente tiene que iniciar sesión en un servidor remoto pero ninguno de los extremos está seguro de qué protocolos de autenticación admite el otro, se emplea SPNEGO. El pseudomecanismo utiliza un protocolo para identificar los mecanismos GSSAPI comunes disponibles, elige uno y luego asigna todas las acciones de seguridad posteriores a ese mecanismo elegido.

KDC: Un Centro de Distribución de Claves es un servicio de red que suministra tickets y claves de sesiones temporales; o una instancia de ese servicio o el host en el que se ejecuta. El KDC atiende tanto las solicitudes de boletos iniciales como las de concesión de boletos. La parte inicial del ticket a veces se denomina servidor (o servicio) de autenticación. La parte del ticket que otorga el ticket a veces se denomina servidor (o servicio) que otorga el ticket.


Protocolo de autenticación NTLM

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.

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.

Protocolo de autenticación Kerberos


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.

SSO de Kerberos en Ubuntu/Debian


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.

icono mininaranja

Inicio de sesión único (SSO) de Kerberos/NTLM

Por miniOrange

Más Información

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

    Nota: Asegurar EJEMPLO.COM debe estar en mayúsculas. Si el usuario con SPN ya existe, utilícelo en lugar de crear uno nuevo. El principio de Kerberos distingue entre mayúsculas y minúsculas. Verifique las diferencias en la escritura en 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: El comando anterior crea un archivo de tabla de claves. Debe colocarse en el servidor del cliente donde está alojado su sitio de WordPress. El usuario que ejecuta Apache debería tener acceso completo a este archivo. El usuario debe tener permiso 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 servicePrincipalName para verificar la entrada SPN.
  • Navegue a la pestaña Delegación.
  • Seleccione Confiar en este usuario para delegar en 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: Instale las bibliotecas del 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: En las versiones más recientes de Ubuntu/Debian, el mod_auth_kerb ha sido obsoleto y reemplazado por el mod_auth_gssapi.

1: Instale el módulo mod_auth_kerb para Apache.
  • 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 habilitarlo, reinicie Apache para que surta efecto.

Or


2: 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

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

  • Abra y edite el krb5.conf archivo.
    La ruta al archivo krb5.conf para Linux es C:/etc/krb5.conf y para otros El sistema basado 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

    Nota: Vuelva a colocar la ANUNCIO CONTROLADOR DE DOMINIO IP/DNS con su dirección IP/DNS. Asegurar 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 se pueda acceder al puerto 88 en el controlador de dominio AD desde este servidor.

  • Guarde el archivo.

Paso 5: Configurar Kerberos SSO 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

  • Nota: Agregue la siguiente sección en el directorio según el módulo de Apache utilizado. P.ej: "mod_auth_kerb" or "mod_auth_gssapi".

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

    Or


  3. Agregue la siguiente sección en el directorio del sitio para mod_auth_gssapi.
  4. <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>

    Nota: Asegurar 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.

Una vez que haya terminado de configurar los ajustes, haga clic aquí para configurar navegadores para Kerberos SSO.

Para probar su configuración de SSO Kerberos/NTLM, haga clic aquí.

Para solucionar cualquier error, por favor haga clic aquí.

SSO de Kerberos en RHEL/CentOS

Requisitos previos para la cuenta de servicio:

  1. La contraseña de la cuenta debe tener una contraseña configurada en No caducado.
  2. Se debe confiar en la cuenta para la delegación.

Si no tiene una cuenta de servicio, cree una nueva cuenta de usuario (cuenta de servicio) en Usuarios y equipos de Active Directory. Asegúrese de que este objeto no tenga ninguna entrada SPN (el atributo servicePrincipalName debe estar vacío) asignada.


icono mininaranja

Inicio de sesión único (SSO) de Kerberos/NTLM

Por miniOrange

Más Información

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

    NOTA: Asegurar EJEMPLO.COM debe estar en mayúsculas. El principio de Kerberos distingue entre mayúsculas y minúsculas. Verifique las diferencias en la escritura en 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: El comando anterior crea un archivo de tabla de claves. Debe colocarse en el servidor del cliente donde está alojado su sitio de WordPress. El usuario que ejecuta Apache debe tener acceso completo a este archivo. El usuario debe tener permiso para acceder al archivo keytab.



  • 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/httpd/spn.keytab

Paso 2: Instale las bibliotecas del 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

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


Paso 3: instalar módulos para Apache.

    1: Instale el módulo mod_auth_kerb para Apache.
  • 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

Or


    2: 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

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

  • Abra y edite el krb5.conf archivo.
    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 hasta la [valores predeterminados de lib] sección y agregue lo siguiente:
  • default_realm = EXAMPLE.COM
    dns_lookup_realm = true
    dns_lookup_kdc = true
  • Navegue hasta la [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 hasta la [dominio_realm] sección y agregue lo siguiente:
  • .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM

    Nota: Vuelva a colocar la ANUNCIO CONTROLADOR DE DOMINIO IP/DNS con su dirección IP/DNS. Asegurar 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 se pueda acceder al puerto 88 en el controlador de dominio AD desde este servidor.

  • Guarde el archivo.

Paso 5: Configurar Kerberos SSO para el directorio del sitio

  • 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_kerb.
  • <Directory "/placeholder">
        AuthType Kerberos
        KrbAuthRealms EXAMPLE.COM
        KrbServiceName HTTP/<Server Host Name>
        Krb5Keytab <PATH TO KEYTAB>
        KrbMethodNegotiate on
        KrbMethodK5Passwd on
        require valid-user
    </Directory>

    Or


  • 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>

    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.

Una vez que haya terminado de configurar los ajustes, haga clic aquí para configurar navegadores para Kerberos SSO.

Para probar su configuración de SSO Kerberos/NTLM, haga clic aquí.

Para solucionar cualquier error, por favor haga clic aquí.

SSO con autenticación de Windows en el servidor IIS


  • Abra el símbolo del sistema en modo Administrador.
  • Ejecute el siguiente comando para agregar el nombre principal del servicio (SPN) para la cuenta de servicio.
  • Nota: Supongamos que el sitio web tiene que responder en http://nombredeequipo y http://nombredeequipo.dominio.com. Tenemos que especificar estas direcciones en el atributo SPN de la cuenta de servicio.

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

    Ejemplo: C:\Usuarios\Administrador> setspn -S HTTP/nombre_máquina.dominio.com cuenta_servicio

    Nota: "nombredeequipo.dominio.com" aquí es el nombre de equipo. Asegúrese de que se pueda resolver en el servidor de Windows que ejecuta el servicio AD.


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

    Ejemplo: C:\Usuarios\Administrador> setspn -l cuenta_servicio o C:\Usuarios\Administrador> setspn -l nombre de dominio

    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 servicePrincipalName para verificar la entrada SPN.
  • Navegue hasta la Delegación .
  • Seleccione Confíe en este usuario para delegarlo 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 Aplicá.
  • Abra la 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 forma predeterminada. IIS siempre intenta realizar una autenticación anónima, por lo tanto, deshabilite la autenticación anónima y habilite 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
  • Haga clic derecho en Autenticación de Windows y haga clic en Proveedores.
  • Servicio de información de Internet Administrador de IIS Lista de proveedores de autenticación de Windows
  • La siguiente ventana aparecerá. 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.

    Nota: De forma predeterminada, hay dos proveedores disponibles: Negotiate y NTLM. Negotiate es un contenedor que utiliza Kerberos como primer método de autenticación y, si la autenticación falla, se utiliza NTLM. Por lo tanto, es necesario que Negotiate ocupe el primer lugar en la lista de proveedores.


  • Haga clic en Ok para cerrar la ventana.
  • Para configurar el grupo de aplicaciones IIS para iniciarlo desde la cuenta SPN creada, haga clic en Grupos de aplicaciones para abrir la ventana Grupos de aplicaciones.
  • Haga clic derecho en el dominio y de 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 botón Establecer para configurar la Identidad.
  • Cámbielo de ApplicationPoolIdentity a \ .
  • Ejemplo:dominio.com\cuenta_servicio

    Kerberos SSO en Windows configura una cuenta personalizada desde la configuración de identidad del grupo de aplicaciones del administrador de IIS
  • Vaya al 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 system.webServer > seguridad > autenticación > windowsAuthentication.
  • Configure useAppPoolCredentials para configurar la autenticación Kerberos para el servidor Windows IIS
  • Cambie useAppPoolCredentials a Verdadero. y useKernelMode en False.
  • Nota: Establecer useAppPoolCredentials en True significa que permitimos que IIS use la cuenta de dominio para descifrar el ticket de 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

Una vez que haya terminado de configurar los ajustes, haga clic aquí para configurar navegadores para Kerberos SSO.

Para probar su configuración de SSO Kerberos/NTLM, haga clic aquí.

Para solucionar cualquier error, por favor haga clic aquí.

SSO con Apache en Windows Xampp Server


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

    Ejemplo: C:\Usuarios\Administrador> setspn -S HTTP/nombre_máquina.dominio.com cuenta_servicio

    Nota: "nombredeequipo.dominio.com" aquí es el nombre de equipo. Asegúrese de que se pueda resolver en el servidor de Windows que ejecuta el servicio AD.

  • 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 servicePrincipalName para verificar la entrada SPN.
  • Navegue hasta la Delegación .
  • Seleccione Confíe en este usuario para delegarlo a cualquier servicio (solo Kerberos).
  • Kerberos para autenticación de Windows en el servidor IIS
  • Haga Clic en Aplicá.

  • Haga clic aquí para descargar el módulo de apache.
  • Copia el mod_authnz_sspi.so en 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 la httpd.conf archivo de (.....\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>

  • Reinicie su servidor Apache.

Una vez que haya terminado de configurar los ajustes, haga clic aquí para configurar navegadores para Kerberos SSO.

Para probar su configuración de SSO Kerberos/NTLM, haga clic aquí.

Para solucionar cualquier error, por favor haga clic aquí.

Configurar navegadores para Kerberos SSO


La configuración del lado del cliente permite que el navegador respectivo utilice SPNEGO para negociar la autenticación Kerberos para el navegador. 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 Red 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 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 de 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.


1. Explorador De Internet
2. Google Chrome
3. Mozilla Firefox
4. 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.


Apple Safari

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

Pruebe su configuración de SSO Kerberos/NTLM


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
  2. 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.

  3. klist -t -k etc/apache2/spn.keytab
  4. Para enumerar todas las entradas en la tabla de claves etc/apache2/spn.keytab con marcas de tiempo.

  5. klist -ek /etc/apache2/spn.keytab
  6. Muestra el tipo de cifrado para la clave de sesión y el ticket y enumera las entradas en una tabla de claves.

  7. kinit -V -kt /etc/apache2/spn.keytab -p HTTPS/webserver.tudominio.com@TUDOMINIO.COM
  8. Verifique la autenticación Kerberos con el archivo keytab.

  9. kdestruir -A
  10. Puede utilizar este comando en Linux para restablecer cualquier token de Kerberos en su máquina local. El comando destruye su ticket Kerberos anterior.

  11. purga de klist
  12. Puede utilizar este comando en Windows para restablecer cualquier token de Kerberos en su máquina local. El comando destruye su ticket Kerberos anterior.


Configuración de prueba.

  • Para probar la configuración de SSO, cree un archivo test.php 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 $_SERVER contenido.
  • Busque "USUARIO_REMOTO" y debe contener el nombre de usuario actualmente conectado.
  • Nota: Elimine el archivo test.php después de verificar su configuración. Ya que contiene información valiosa.


Autenticación Kerberos en múltiples dominios


  • 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.

Solucionando Problemas


Estos son los mensajes de error más comunes:

    kinit: Pre-authentication failed: Invalid argument while getting initial credentials
  • 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.

  • 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 la entidad de 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
  • Causado por escribir erróneamente la contraseña de Kerberos. Inténtalo de nuevo. O debido al reloj de su sistema. Asegúrese de que el comando de fecha devuelva una hora correcta dentro de los 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.

¡Hola!

¿Necesitas ayuda? ¡Estamos aquí!

SOPORTE
Póngase en contacto con el soporte técnico de miniOrange
comercial

Gracias por su consulta.

Si no recibe noticias nuestras dentro de las 24 horas, no dude en enviar un correo electrónico de seguimiento a info@xecurify.com