Я настроил Apache HTTPD в качестве обратного прокси-сервера (для SSL) для своего экземпляра Artifactory, и теперь я пытаюсь заставить HTTP SSO работать с ним.
Используя приведенную ниже конфигурацию, я успешно автоматически вошел в систему со своего компьютера. Однако, когда я запускаю Chrome в режиме инкогнито (чтобы отключить переадресацию Kerberos), поведение становится нежелательным.
Я хочу, чтобы пользователь был незаметно переведен на стандартную страницу входа в систему Artifactory по адресу /ui/логин
. Однако на самом деле происходит то, что браузер запрашивает встроенное окно имени пользователя и пароля.
Другие решения, которые я видел в своем исследовании, похоже, основаны на сбое аутентификации Kerberos или на том, что пользователь нажимает кнопку «Отмена» в этом окне. Вместо этого я пытаюсь обслуживать пользователей, просматривающих Artifactory с машины, не присоединенной к домену, у которой нет билета Kerberos. Я хочу, чтобы этим пользователям показывалась более красивая стандартная страница входа в систему Artifactory.
# httpd -v
Версия сервера: Apache/2.4.6 (Red Hat Enterprise Linux)
Сервер построен: 8 октября 2020 г., 21:27:40
<Location />
AuthType Kerberos
AuthName "Intranet"
KrbMethodNegotiate On
KrbMethodK5Passwd Off
KrbAuthRealms DOMAIN.EXAMPLE.ORG
KrbLocalUserMapping On
Krb5KeyTab /etc/httpd/artf_ldap.keytab
Require valid-user
KrbAuthoritative On
ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=/ui/login\"></html>"
RewriteEngine On
RewriteCond %{REMOTE_USER} (.+)
RewriteRule . - [E=RU:%1]
RequestHeader set REMOTE_USER %{RU}e
</Location>
Документ об ошибке 401
и KrbMethodK5Passwd Off
части были моими попытками решить это самостоятельно.