PDA

Просмотр полной версии : Negotiate авторизация в Squid и Google Chrome



StalkerSVR
19.07.2012, 15:12
Настроил в сквиде авторизацию через Kerberos. Вроде бы все работает, по крайней мере в IE, но вот Google Chrome, несмотря на заявленную поддержку, работать отказывается. Пускаю его с ключом --auth-server-whitelist="*.local", но он все равно запрашивает пароль, а в логах сквида появляются следующие строчки:


2012/07/19 14:52:21| negotiate_wrapper: Got 'YR YIGeBgYrBgEFBQKggZMwgZCgGjAYBgorBgEEAYI3AgIeBgorBg EEAYI3AgIKonIEcE5FR09FWFRTAAAAAAAAAABgAAAAcAAAAP74 mdBvDW8AzvWJAFQDjZXabZs/1iKPRRMdwXUg3t0L2X4hZXrRbEpSZVuTZ/ebuAAAAAAAAAAAYAAAAAEAAAAAAAAAAAAAAEVyfDIyRYtIv9kq a6BepAo=' from squid (length: 219).
2012/07/19 14:52:21| negotiate_wrapper: Decode 'YIGeBgYrBgEFBQKggZMwgZCgGjAYBgorBgEEAYI3AgIeBgorB gEEAYI3AgIKonIEcE5FR09FWFRTAAAAAAAAAABgAAAAcAAAAP7 4mdBvDW8AzvWJAFQDjZXabZs/1iKPRRMdwXUg3t0L2X4hZXrRbEpSZVuTZ/ebuAAAAAAAAAAAYAAAAAEAAAAAAAAAAAAAAEVyfDIyRYtIv9kq a6BepAo=' (decoded length: 161).
2012/07/19 14:52:21| negotiate_wrapper: received Kerberos token
2012/07/19 14:52:21| squid_kerb_auth: DEBUG: Got 'YR YIGeBgYrBgEFBQKggZMwgZCgGjAYBgorBgEEAYI3AgIeBgorBg EEAYI3AgIKonIEcE5FR09FWFRTAAAAAAAAAABgAAAAcAAAAP74 mdBvDW8AzvWJAFQDjZXabZs/1iKPRRMdwXUg3t0L2X4hZXrRbEpSZVuTZ/ebuAAAAAAAAAAAYAAAAAEAAAAAAAAAAAAAAEVyfDIyRYtIv9kq a6BepAo=' from squid (length: 219).
2012/07/19 14:52:21| squid_kerb_auth: DEBUG: Decode 'YIGeBgYrBgEFBQKggZMwgZCgGjAYBgorBgEEAYI3AgIeBgorB gEEAYI3AgIKonIEcE5FR09FWFRTAAAAAAAAAABgAAAAcAAAAP7 4mdBvDW8AzvWJAFQDjZXabZs/1iKPRRMdwXUg3t0L2X4hZXrRbEpSZVuTZ/ebuAAAAAAAAAAAYAAAAAEAAAAAAAAAAAAAAEVyfDIyRYtIv9kq a6BepAo=' (decoded length: 161).
2012/07/19 14:52:21| squid_kerb_auth: ERROR: gss_accept_sec_context() failed: An unsupported mechanism was requested. Unknown error
2012/07/19 14:52:21| negotiate_wrapper: Return 'BH gss_accept_sec_context() failed: An unsupported mechanism was requested. Unknown error
'
2012/07/19 14:52:21| authenticateNegotiateHandleReply: Error validating user via Negotiate. Error returned 'BH gss_accept_sec_context() failed: An unsupported mechanism was requested. Unknown error'
вот настройки авторизации из конфига сквида:


auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --diagnostics
auth_param ntlm children 30
auth_param ntlm keep_alive on

auth_param negotiate program /usr/local/bin/negotiate_wrapper -d --ntlm /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --diagnostics --kerberos /usr/lib/squid3/squid_kerb_auth -d -s HTTP/s-proxy01.xxx.local
auth_param negotiate children 20
auth_param negotiate keep_alive on

#auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -s HTTP/s-proxy01.xxx.local
#auth_param negotiate children 20
#auth_param negotiate keep_alive on

auth_param basic program /usr/lib/squid3/squid_ldap_auth -R -b "dc=xxx,dc=local" -D srv-ldap -W /etc/squid3/aduser -f sAMAccountName=%s -h s-adc01.xxx.local
auth_param basic children 10
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

даже если оставить в методе negotiate не враппер, а напрямую squid_kerb_auth (сейчас это закомментировано), то ошибка сохраняется. В тоже время IE работает с теми же настройками великолепно. а Chrome работает только через NTLM авторизацию, но для этого метод Negotiate приходится отключать совсем, чего хотелось бы избежать :(

если пускаю хром без ключа --auth-server-whitelist="*.local", то он 1 раз запрашивает пароль, после чего переключается на NTLM авторизацию и дальше уже работает по NTLM не доставая лишними паролями. Если же в конфиге сквида про negotiate ничего не сказано, то он даже пароля не спрашивает и работает через NTLM.

Подскажите плз, как настроить так, что бы либо хром работал через керберос (он же вроде это умеет), либо пусть работает по NTLM, но не запрашивает пароль совсем.