(Apretón de Debian)
Estoy intentando configurar Apache para que use la autenticación Kerberos para permitir que los usuarios de AD inicien sesión. Está funcionando, pero solicita al usuario dos veces un nombre de usuario y contraseña, y la primera vez se ignora (sin importar lo que se ingrese). ) Solo el segundo mensaje incluye la cadena AuthName de la configuración (es decir, la primera ventana es un nombre de usuario/contraseña genérica, la segunda incluye el título "Inicio de sesión Kerberos") No me preocupa que la autenticación integrada de Windows funcione en esta etapa. Solo quiero que los usuarios puedan iniciar sesión con su cuenta AD para que no necesitemos configurar un segundo repositorio de cuentas de usuario.
¿Cómo soluciono esto para eliminar ese primer mensaje inútil?
Las directivas en el archivo apache2.conf:
<Directory /var/www/kerberos>
AuthType Kerberos
AuthName "Kerberos Login"
KrbMethodNegotiate On
KrbMethodK5Passwd On
KrbAuthRealms ONEVUE.COM.AU.LOCAL
Krb5KeyTab /etc/krb5.keytab
KrbServiceName HTTP/[email protected]
require valid-user
</Directory>
krb5.conf:
[libdefaults]
default_realm = ONEVUE.COM.AU.LOCAL
[realms]
ONEVUE.COM.AU.LOCAL = {
kdc = SYD01PWDC01.ONEVUE.COM.AU.LOCAL
master_kdc = SYD01PWDC01.ONEVUE.COM.AU.LOCAL
admin_server = SYD01PWDC01.ONEVUE.COM.AU.LOCAL
default_domain = ONEVUE.COM.AU.LOCAL
}
[login]
krb4_convert = true
krb4_get_tickets = false
El registro de acceso al acceder al directorio seguro (tenga en cuenta los dos 401 separados)
192.168.10.115 - - [24/Aug/2012:15:52:01 +1000] "GET /kerberos/ HTTP/1.1" 401 710 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.83 Safari/537.1"
192.168.10.115 - - [24/Aug/2012:15:52:06 +1000] "GET /kerberos/ HTTP/1.1" 401 680 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.83 Safari/537.1"
192.168.10.115 - [email protected] [24/Aug/2012:15:52:10 +1000] "GET /kerberos/ HTTP/1.1" 200 375 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.83 Safari/537.1"
Y una línea en error.log
[Fri Aug 24 15:52:06 2012] [error] [client 192.168.0.115] gss_accept_sec_context(2) failed: An unsupported mechanism was requested (, Unknown error)
Respuesta1
No sé si todavía necesitas la respuesta, pero espero ayudar a alguien más compartiendo mi experiencia. Creo que si sigues estos pasos, todo funcionará bien.
- Asegúrese de tener la entrada DNS adecuada paraSYD01TBUG02(Un registro) en su servidor DNS apuntando a su servidor web
- Asegúrese de tener asociación entre el SPN de su servicio web y el usuario de AD. En el servidor AD ejecute este comando:
setspn -A HTTP/SYD01TBUG02.onevue.com.au.local ad_username
- Asegúrese de haber generado la tabla de claves adecuada. Ejecute este comando en su servidor AD:
donde xxxxxx es la contraseña del usuario de AD. Usamos-cripto TODOSopción para asegurarnos de agregar todos los hashes admitidos al archivo keytab.ktpass -princ HTTP/[email protected] -mapuser ad_username -pass xxxxxx -crypto ALL -ptype KRB5_NT_PRINCIPAL -out SYD01TBUG02.keytab -setupn -setpass
- Ahora deberías copiar generado.SYD01TBUG02.tabla de clavesarchivo a su servidor web y cópielo en un directorio determinado. Por ejemplo, copiémoslo en el/etc/apache2/keytab/carpeta.
- Ejemplo de archivo de configuración de Apache para servicio web:
<VirtualHost *:80> DocumentRoot "/var/www/kerberos" ServerName SYD01TBUG02.onevue.com.au.local ServerAlias SYD01TBUG02 AddDefaultCharset UTF-8 DirectoryIndex index.php ErrorLog /var/log/apache2/error_SYD01TBUG02.log TransferLog /var/log/apache2/transfer_SYD01TBUG02.log LogLevel warn ServerAdmin [email protected] <Location "/"> AuthType Kerberos KrbAuthRealms ONEVUE.COM.AU.LOCAL KrbServiceName HTTP/[email protected] Krb5Keytab /etc/apache2/keytab/SYD01TBUG02.keytab KrbMethodNegotiate on KrbMethodK5Passwd on KrbVerifyKDC on require valid-user </Location> <Directory /> </Directory> </VirtualHost>
Recargar o reiniciar apache - Ahora, si escribe http://SYD01TBUG02/ en la barra de direcciones de su navegador, iniciará sesión automáticamente en su servicio web a través de SSO (Chrome, los navegadores tipo Chromium e IE admiten SSO de fábrica, pero también hay uncomplemento para Firefox).
sudo service apache2 reload
Espero que le ayude a configurar su autenticación Kerberos en el servidor web.
PDSi desea habilitar SSO por dirección completa (p. ej.SYD01TBUG02.onevue.com.au.local) deberías agregarSYD01TBUG02.onevue.com.au.locala la zona de intranet ya sea a través de las Políticas de grupo de AD (si las necesita en varias máquinas del dominio) o localmente a través de la configuración de Internet Explorer. Estas configuraciones afectan a todos los navegadores instalados en el sistema.
Respuesta2
Esto se debe a que la primera vez que el usuario ingresa u/p se envía un token ntlm al servidor. La segunda vez es el token Kerberos correcto.
Lamentablemente, no hay forma de eliminar el primer mensaje.
Respuesta3
Si el inicio de sesión único no es un requisito, puede desactivar la negociación desactivando 'KrbMethodNegotiate'. Esto le brindará un solo inicio de sesión básico y también evitará la solicitud GET adicional para cada transacción.