Есть ли способ для Apache вернуться к другому методу аутентификации, если аутентификация Kerberos (по какой-то причине) не работает? Порядок методов аутентификации должен быть следующим:
Аутентификация токена RSA используется внешними сторонами, у которых нет учетных записей AD.
Дайте мне знать, если вам понадобится дополнительная информация. Спасибо.
Моя текущая конфигурация выглядит следующим образом:
<Directory "/path/to/directory">
AuthType Kerberos
AuthName "Please provide credentials to log in"
KrbAuthoritative off
AuthzLDAPAuthoritative off
AuthBasicAuthoritative off
AuthBasicProvider this-sso this-ad this-radius
Require valid-user
SSLRequireSSL
</Directory>
Ниже приведены псевдонимы аутентификации:
<AuthnProviderAlias kerberos this-sso>
KrbAuthRealms THIS.LOCAL
KrbMethodNegotiate on
KrbMethodK5Passwd off
KrbDelegateBasic on
Krb5Keytab /etc/apache2/this.keytab.key
KrbServiceName HTTP
KrbVerifyKDC off
</AuthnProviderAlias>
<AuthnProviderAlias ldap this-ad>
Include /etc/apache2/.ldapbinddn
AuthLDAPURL "ldaps://srv1.this.local srv2.this.local:636/OU=DIR,DC=this,DC=local?sAMAccountName?sub?(objectClass=user)"
</AuthnProviderAlias>
<AuthnProviderAlias xradius this-radius>
AuthXRadiusAddServer "rsasrv1.this.local:1812" "Shared_key_here"
AuthXRadiusTimeout 7
AuthXRadiusRetries 2
AuthXRadiusRejectBlank on
</AuthnProviderAlias>
На веб-сайте модуля mod_auth_kerb это несколько неясно, заявив в какой-то момент, что AuthType
должен быть установлен на Kerberos, но также подразумевает, что «если ваш AuthType является Basic», он будет использовать пару имени пользователя и пароля, которая AuthType Basic
обеспечивает проверку на вашем сервере Kerberos.
Другие директивы для Kerberos, в частности KrbDelegateBasic on
, похоже, не задокументированы на странице sourceforge для этого модуля, что заставляет меня задаться вопросом, какую версию этого модуля вы используете.
Но, отложив это на время, если модуль mod_auth_kerb каким-то образом не сможет передать значения, которые он получает, следующему модулю аутентификации в цепочке так, чтобы следующий модуль мог понять, это, вероятно, не сработает.
В качестве теста я бы изменил AuthType
к Basic
, KrbMethodNegotiate
к off
, и KrbMethodK5Passwd
к on
и посмотрите, изменит ли это поведение вообще. Мы надеемся, что это приведет к тому, что mod_auth_kerb будет собирать данные входа в систему таким образом, чтобы другие модули могли понять, предотвращать согласование метода аутентификации и пытаться собрать имя пользователя / пароль, а не билет.
Часть согласования важна, поскольку это делается для каждого соединения, и поэтому, если клиентский браузер согласовывает метод, который портит следующий метод аутентификации, он никогда не пройдет проверку подлинности Kerberos.
Я скажу, что я никогда не настраивал аутентификацию Kerberos на Apache, так что это своего рода предположение. Тем не менее, я сделал LDAP, возвращаясь к файловой базовой аутентификации, поэтому я знаю, что в целом механизм отката работает.