Назад | Перейти на главную страницу

Резервная аутентификация, если mod_auth_kerb не работает

Есть ли способ для 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, возвращаясь к файловой базовой аутентификации, поэтому я знаю, что в целом механизм отката работает.