Kerberos Failing CentOS 7.5 Apache 2.4 Kerberos 5 - PullRequest
0 голосов
/ 04 октября 2018

РЕДАКТИРОВАТЬ 25 октября 2018: мы не смогли решить эту проблему и прекратили попытки.Поскольку другие части нашей компании используют SAML, мы переводим все наши сайты / приложения на подход SAML SSO.Спасибо всем за ваши вопросы и помощь

Преамбула: Я стремлюсь получить некоторое представление о том, где начать искать решение моей проблемы.Заранее благодарим всех за прочтение и предоставление каких-либо рекомендаций!

[Редактировать] Тестирование проводилось с использованием IE, Firefox и Chrome.На Windows машины и Mac.Результаты одинаковы: все работают на старых серверах и все отказывают на новых серверах.

Проблема: единый вход Kerberos не работает на новых серверах CentOS 7.5.Я перемещаю свои веб-сайты на новые серверы, обновляя CentOS 6.7 до CentOS 7.5.В этом шаге я также обновляюсь с Apache / 2.2.15 до Apache / 2.4.33.Все серверы находятся за конечной точкой балансировки нагрузки.

На всех моих машинах CentOS 6.7 Kerberos работает.На всех моих компьютерах 7.5 это происходит сбой.

==== Особенности системы ====

CentOS Linux release 7.5.1804 (Core)
Server version: Apache/2.4.33 (Unix)
Server built:   Jul  3 2018 11:33:42

==== Вывод из журнала ошибок apache ====

[authz_core:debug] mod_authz_core.c(809): AH01626: authorization result of Require all granted: granted
[authz_core:debug] mod_authz_core.c(809): AH01626: authorization result of <RequireAny>: granted
[authz_core:debug] mod_authz_core.c(809): AH01626: authorization result of Require all granted: granted
[authz_core:debug] mod_authz_core.c(809): AH01626: authorization result of <RequireAny>: granted
[authz_core:debug] mod_authz_core.c(809): AH01626: authorization result of Require valid-user : denied (no authenticated user yet)
[authz_core:debug] mod_authz_core.c(809): AH01626: authorization result of <RequireAny>: denied (no authenticated user yet)
[auth_kerb:debug] src/mod_auth_kerb.c(1643): kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[headers:debug] mod_headers.c(900): AH01503: headers: ap_headers_error_filter()
[authz_core:debug] mod_authz_core.c(809): AH01626: authorization result of Require valid-user : denied (no authenticated user yet)
[authz_core:debug] mod_authz_core.c(809): AH01626: authorization result of <RequireAny>: denied (no authenticated user yet)
[auth_kerb:debug] src/mod_auth_kerb.c(1643): kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[auth_kerb:debug] src/mod_auth_kerb.c(1400): Verifying client data using KRB5 GSS-API
[auth_kerb:debug] src/mod_auth_kerb.c(1416): Client didn't delegate us their credential
[auth_kerb:debug] src/mod_auth_kerb.c(1444): Warning: received token seems to be NTLM, which isn't supported by the Kerberos module. Check your IE configuration.
[auth_kerb:debug] src/mod_auth_kerb.c(1116): GSS-API major_status:00010000, minor_status:00000000
[auth_kerb:error] gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)
[headers:debug] mod_headers.c(900): AH01503: headers: ap_headers_error_filter()
[authz_core:debug] mod_authz_core.c(809): AH01626: authorization result of Require all granted: granted, referer: https://six.***********.com/sso
[authz_core:debug] mod_authz_core.c(809): AH01626: authorization result of <RequireAny>: granted, referer: https://six.***********.com/sso
[authz_core:debug] mod_authz_core.c(809): AH01626: authorization result of Require all granted: granted, referer: https://six.***********.com/sso
[authz_core:debug] mod_authz_core.c(809): AH01626: authorization result of <RequireAny>: granted, referer: https://six.***********.com/sso
[headers:debug] mod_headers.c(900): AH01503: headers: ap_headers_error_filter()
[authz_core:debug] mod_authz_core.c(809): AH01626: authorization result of Require all granted: granted, referer: https://six.***********.com/sso
[authz_core:debug] mod_authz_core.c(809): AH01626: authorization result of <RequireAny>: granted, referer: https://six.***********.com/sso
[authz_core:debug] mod_authz_core.c(809): AH01626: authorization result of Require all granted: granted, referer: https://six.***********.com/sso
[authz_core:debug] mod_authz_core.c(809): AH01626: authorization result of <RequireAny>: granted, referer: https://six.***********.com/sso

==== apache vhost files ====

conf / vhosts.d / site

<VirtualHost *:80>

    Define vhost_name siteName
    Define vhost_home /path/to/site/home

    Include conf/vhosts.d/template.inc

</VirtualHost>

conf / vhosts.d / template.inc

<Directory "${vhost_home}/sso">
    AuthType Kerberos
    AuthName "Kerberos Login"
    KrbMethodNegotiate on
    KrbMethodK5Passwd off
    KrbAuthoritative off
    KrbAuthRealms [list of realms removed for security]
    Krb5Keytab "/etc/krb5.keytab"
    KrbServiceName Any
    require valid-user
    ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=/login/anonlogin.php\"></html>"
</Directory>

==== И некоторый вывод из kinit и klist ====

$ sudo kinit -V -t /etc/krb5.keytab HTTP/six.***********.com@aaa.**********.COM
keytab specified, forcing -k
Using default cache: /tmp/krb5cc_0
Using principal: HTTP/six.***********.com@aaa.**********.COM
Using keytab: /etc/krb5.keytab
kinit: Client 'HTTP/six.***********.com@aaa.**********.COM
Kerberos database while getting initial credentials

$ sudo klist -etk
Keytab name: FILE:/etc/krb5.keytab
KVNO Timestamp           Principal
---- -------------------------------------------------------------------------
3 09/27/2018 10:22:17 HTTP/one.***********.com@aaa.**********.COM (arcfour-hmac)
3 09/27/2018 10:22:17 HTTP/two.***********.com@aaa.**********.COM (arcfour-hmac)
3 09/27/2018 10:22:17 HTTP/three.***********.com@aaa.**********.COM (arcfour-hmac)
3 09/27/2018 10:22:17 HTTP/four.***********.com@aaa.**********.COM (arcfour-hmac)
3 09/27/2018 10:22:17 HTTP/five.***********.com@aaa.**********.COM (arcfour-hmac)
3 09/27/2018 10:22:17 HTTP/six.***********.com@aaa.**********.COM (arcfour-hmac)

Рады предоставить любую дополнительную информацию.

У нас есть эти новые серверыв настоящее время находится за конечной точкой балансировщика нагрузки, которая работает с Kerberos и Centos 6.7 и Apache 2.2.Файл keytab одинаков на старом и новом серверах.

...