На apache 2.2 для доступа к определенной странице используется аутентификация через контроллер домена посредством mod_auth_kerb. все прекрасно работает за исключением кириллицы в паролях пользователей. удалось выяснить только то, что клиент (браузер) при запросе аутентификации отсылает на сервер русские символы в utf8 кодировке, но аутентификация не проходит. видимо, utf8 кому-то (apach'у, mod_auth_kerb'у или контроллеру домена) не понятна.
Отмечу, что теже логины и пароли также используются и для доступа в домен при входе в Windows, здесь с кириллицей проблем никаких нет.
Даже не знаю с какой стороны подойти.
Узнал одну вещь. попроверял какую кодировку сможет принять kerberos и выяснилось, что это
досовская cp866. вот такой командой тикет успешно выдается (у терминала ssh кодировка koi8-r):
echo пароль_на_кириллице | iconv -fkoi8-r -tcp866 | kinit my_domain_login@MYDOMAIN.RU
как теперь заставить kerberos понимать utf8, в которой шлет ему пароль браузер, или на лету где-то конвертировать в cp866, ну или на худой конец заставить браузер отправлять в cp866 даж не знаю.
конфиги типичные, но на всякий случай:
Код: Выделить всё
---- start httpd.conf auth_kerb_module -----
<IfModule auth_kerb_module>
Krb5Keytab conf/apache.keytab
KrbAuthRealms MYDOMAIN.RU
KrbMethodNegotiate off
KrbSaveCredentials off
KrbVerifyKDC off
<Directory "/www/auth.php">
AuthType Kerberos
AuthName "Enter Login and Password"
Require valid-user
ErrorDocument 401 "/error/401.html"
</Directory>
</IfModule>
---- end httpd.conf auth_kerb_module -----Код: Выделить всё
---- start krb5.conf ----
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = MYDOMAIN.RU
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 600
forwardable = yes
default_tkt_enctypes = des3-hmac-sha1 des-cbc-crc
default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc
[realms]
MYDOMAIN.RU = {
kdc = logonserver:88
kdc = logonserver:88
}
[domain_realm]
.mydomain.ru = MYDOMAIN.RU
mydomain.ru = MYDOMAIN.RU
---- end krb5.conf ----