Kerberos SSO
SSO (Single Sign-On) позволяет пользователю один раз авторизоваться в домене (AD/YOUR_REALM) и далее получать доступ к АРХИВА без повторного ввода пароля. Это повышает удобство (меньше паролей), безопасность (пароли не передаются в приложения, используется Kerberos Ticket) и упрощает администрирование (централизованное управление учетными записями в Active Directory).
Как работает Kerberos SSO
1. Сервисная учётная запись
Сервисная учётная запись — это специальная учётная запись Active Directory (AD), которую АРХИВА использует для аутентификации в домене.
2. Подготовка среды
Перед генерацией keytab-файла и настройкой АРХИВА убедитесь в следующем:
Наличие Windows Server (2008 или новее).
Установленный и настроенный Active Directory (AD).
Клиенты Windows, использующие SSO, должны быть включены в домен.
Время на клиентах и сервере синхронизировано (Kerberos крайне чувствителен к рассинхронизации).
3. Создание сервисной учётной записи в AD
Через графический интерфейс (ADUC)
Откройте Active Directory Users and Computers.
Перейдите в контейнер Users (или ваш собственный OU).
Выберите New → User.
Введите данные:
Full Name: SVC Kerberos AR
User logon name: svc-kerberos-ar
Установите надежный пароль и снимите флажок “User must change password at next logon”.
На вкладке Account отметьте пункт “This account supports Kerberos AES 256 bit encryption”.
Через PowerShell
4. Создание и проверка SPN
Проверка SPN
Создание SPN
ar.yourealm.com→ FQDN сервера, где установлен АРХИВА.HTTP/ar.yourealm.com→ principal, который будет использовать АРХИВА.SPN должен быть уникальным в пределах всего AD.
5. Генерация keytab-файла
Генерация keytab
Скопируйте полученный файл krb5_service.keytab в директорию приложения:
/etc/opt/mailarchiva/ROOT/krb5_service.keytab
C:\ProgramData\MailArchiva\ROOT\conf\krb5_service.keytab
6. Проверка содержимого keytab
На Linux/Windows
Ожидаемый результат:
Vno→ Key Version Number (KVNO).Type→ тип шифрования (AES256).Principal→ SPN, привязанный к ключу.
7. Тестирование аутентификации через keytab
Убедитесь, что
Ticket etypeсоответствует значениюaes256-cts-hmac-sha1-96.KVNO должен совпадать со значением в keytab.
8. Настройка клиентов (браузеров)
Internet Explorer / Edge
Добавьте сайт в список Доверенных сайтов через Control Panel → Internet Options.
Если используется HTTP, убедитесь, что HTTPS не установлен как обязательный.
Настройте уровень безопасности для данной зоны.
Edge
Перейдите в Настройки → Конфиденциальность, поиск и службы.
Разрешите использование Windows Authentication.
Перезапустите браузер.
Проверка
Попробуйте открыть АРХИВА с компьютера, входящего в домен.
Аутентификация должна произойти автоматически, без запроса пароля.
Для глубокой диагностики используйте команду
klistи просмотрите журналы событий.
9. Настройка Tomcat для SSO (опционально)
При переходе с версий ниже 10 для стабильной работы SSO может потребоваться редактирование server.xml.
Остановите сервис АРХИВА.
Откройте файл
server.xmlлюбым текстовым редактором:/var/opt/mailarchiva/tomcat/server.xml
C:\ProgramData\MailArchiva\Tomcat\conf\server.xml
Найдите блоки
<Connector port="8080"и/или<Connector port="443"и добавьте в них параметрmaxHttpHeaderSize="65536". Это увеличит допустимый размер заголовков.<Connector port="8080" protocol="HTTP/1.1" maxHttpHeaderSize="65536" connectionTimeout="20000" redirectPort="8443" maxParameterCount="1000"/> <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxHttpHeaderSize="65536" maxThreads="150" SSLEnabled="true" maxParameterCount="1000"> <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol"/> <SSLHostConfig> <Certificate certificateKeystoreFile="/path/to/keystore.jks" certificateKeystorePassword="password" keyAlias="alias" keyPass="password" type="RSA"/> </SSLHostConfig> </Connector>Запустите сервис АРХИВА.
Итог
Сервисная учётная запись → средство идентификации АРХИВА в AD.
SPN → связывает учетную запись с сетевым сервисом.
Keytab → хранилище секретного ключа (AES256) для реализации SSO.
KVNO должен быть актуальным и совпадать с данными в AD.
При смене пароля сервисного аккаунта keytab-файл необходимо перегенерировать.
Tomcat требует увеличения параметра
maxHttpHeaderSize.Клиенты должны находиться в домене и иметь соответствующие настройки браузера.