Перед началом работ по внедрению метода аутентификации пользователей по протоколу Kerberos, рекомендуем ознакомится с разделом Аутентификация Kerberos Руководства Администратора.
Содержание:
1. Краткое описание алгоритма работы Kerberos
2. Поддержка Kerberos клиентами CommuniGate Pro
4. Настройка интеграции с Microsoft Active Directory
5. Загрузка keytab.data на сервер CommuniGate Pro
6. Настройка MS Internet Explorer/MS Edge/Google Chrome
9. Подготовка информации для предоставления в техническую поддержку
10. Полезные ссылки
Краткое описание алгоритма работы Kerberos
Сервер Kerberos и сервер CommuniGate Pro (далее – CGPro) не общаются между собой напрямую. То есть для аутентификации через Kerberos серверу CGPro не нужно связываться с Microsoft Active Directory (далее – Microsoft AD). Ключ для расшифровки билетов загружается на сервер CGPro в виде файла таблицы ключей (далее – keytab файл).
Алгоритм аутентификации через Kerberos:
1. Клиент подключается к серверу CGPro;
2. Сервер CGPro предлагает клиенту аутентифицироваться через Kerberos;
3. Клиент обращается к Microsoft AD за билетом для сервера CGPro;
4. Клиент отправляет серверу CGPro полученный билет;
5. Если сервер CGPro может расшифровать билет, то получает из него имя пользователя;
6. Если пользователь найден, то сервер CGPro предоставляет ему доступ к услугам.
Поддержка Kerberos клиентами CommuniGate Pro
Протокол аутентификации Kerberos поддерживается в веб-версии Samoware, настольном клиенте Samoware Desktop для операционной системы Windows, CommuniGate Pro MAPI-коннектор.
Общие требования
Для возможности аутентификации пользователей домена CGPro по протоколу Kerberos, необходимо выполнение общих требований:
1. В установках домена CGPro должен быть включен Способ Аутентификации GSSAPI (Пользователи → Домены → Имя_домена → Установки домена, секция «Способы Аутентификации»);
Примечание. Также рекомендуется включить Способ Аутентификации SESSIONID. Это понадобится, если будет необходимо входить в веб-интерфейс Samoware через Kerberos по ссылке вида: /login (подробнее в разделе Вход при помощи Аутентификации через Браузер);
2. В установках пользователя CGPro должна быть включена Аутентификация Через Kerberos (Пользователи → Домены → Имя_домена → Объекты → Имя_пользователя → Установки, секция «Аутентификация»);
3. Для использования аутентификации Kerberos при подключении по HTTP, в настройках HTTPU должна быть включена опция «Объявлять 'Negotiate'-Аутентификацию» (Установки → Услуги → HTTPU, секция «Опции HTTP»);
4. Клиенты для обращения к домену сервера CGPro должны использовать имя хоста (далее FQDN), совпадающее с именем домена. Если будет использоваться FQDN, отличное от имени домена, то необходимо добавить его в Псевдонимы домена;
5. Клиенты должны разрешать используемый FQDN в IP-адрес, назначенный главному или дополнительному домену сервера CGPro.
6. В Microsoft AD должен быть создан сервисный пользователь для сервиса (протокола) CGPro, доступ к которому требуется аутентифицировать по Kerberos;
7. Пароль сервисного пользователя должен удовлетворять парольным политикам;
8. Для сервисного пользователя должен быть назначен SPN (Service Principal Names), ключ шифрования, и выгружен keytab файл:
· SPN, назначаемый сервисному пользователю, должен быть уникальным;
· В экземпляре SPN должен использоваться FQDN, выбранный в пункте 4;
9. На ПК пользователя должен быть выполнен вход в домен Microsoft AD под пользователем, имя для входа которого (sAMAccountName), совпадает с именем пользователя CGPro или его Псевдонимом (имена доменов Microsoft AD и CGPro могут не совпадать).
Настройка интеграции с Microsoft Active Directory
1. В DNS (локальном или публичном) создать А-запись, указывающую на IP-адрес главного или дополнительного домена CGPro (для тестов можно использовать записи в hosts);
2. Добавить полное имя хоста (FQDN) А-записи в псевдонимы домена CGPro;
3. В Microsoft AD создать сервисного пользователя cgatepro;
Примечание. Имя cgatepro дано для примера и используется далее, как имя сервисного пользователя. Вы можете выбрать любое другое имя.
На сервисного пользователя будут зарегистрированы принципалы для сервисов CGPro (HTTP, IMAP и т.п.).
Обратите внимание. Для каждого сервиса (HTTP, IMAP, SMTP) рекомендуется создавать отдельного сервисного пользователя в Microsoft AD, чтобы SPN корректно считывался.
4. На контроллере домена Microsoft AD использовать команду ktpass для создания принципала службы и экспорта ключей.
Для создания keytab файла с привязкой к пользователю (ключ «-mapuser») на контроллере домена нужно открыть cmd или PowerShell с правами администратора и использовать команду ktpass.
Пример команды в cmd:
ktpass -princ service/hostname@REALM -mapuser cgatepro -pass <key> -out C:\keytab.data -crypto All -ptype KRB5_NT_PRINCIPAL
Пример команды в PowerShell:
ktpass /princ service/hostname@REALM /mapuser cgatepro /pass <key> /out C:\keytab.data /crypto All /ptype KRB5_NT_PRINCIPAL /
· service – имя сервиса (протокола) CGPro (IMAP/SMTP/HTTP);
· hostname – FQDN, который был выбран в пункте 4 раздела «Общие требования»;
· REALM — полное имя домена Microsoft AD, через который осуществляется вход, в верхнем регистре;
· <key> — ключ шифрования (придумайте произвольный набор символов, который будет использоваться для шифрования билетов);
· С:\keytab.data — путь к файлу, в который запишется таблица ключей;
· crypto — тип шифрования. В примере дано значение параметра «All». Вы можете указать требуемый тип шифрования из перечисленных: DES-CBC-CRC, DES-CBC-MD5, RC4-HMAC-NT, AES256-SHA1*, AES128-SHA1*.
* AES128-SHA1 и AES256-SHA1 поддерживаются, начиная с версии CGPro 6.3.4.
При включении типа шифрования AES256-SHA1 или AES128-SHA1, необходимо у сервисного пользователя в Microsoft AD в параметрах учетной записи включить «Данная учетная запись поддерживает 256-разрядное шифрование» или 128-разрядное в зависимости от выбранного типа.
Также нужно удостовериться, что у сервисного пользователя Microsoft AD в опциях не включено «Use only Kerberos Des encryption».
Обратите внимание. ktpass не перезаписывает выходной файл (-out), а дополняет. Из-за этого в CGPro не загружается корректный ключ. При пересоздании ключа нужно указывать новое имя файла или предварительно стирать имеющийся.
Загрузка keytab.data на сервер CommuniGate Pro
Нужно загрузить keytab файл на сервер CGPro в веб-интерфейсе администратора: Пользователи → Домены → Имя_домена → Безопасность → Kerberos.
Настройка MS Internet Explorer/MS Edge/Google Chrome
Для настройки нужно:
1. Зайти в свойства браузера: Панель Управления → Свойства браузера → Безопасность → Местная интрасеть → Сайты → Дополнительно;
2. В список сайтов добавить URL входа на сервер CGPro и перезагрузить браузер.
Примечание. В URL для подключения нужно указать FQDN, выбранный в пункте 4 раздела «Общие требования».
Примечание. Для поддержки аутентификации Kerberos в других браузерах их необходимо настраивать отдельно (подробнее см. в документации на нужный тип браузера).
Проверка работоспособности
В браузере для аутентификации по Kerberos можно:
· Использовать URL вида: http(s)://fqdn:port/login/
Например: http://cgatepro.msk:8100/login/
· На странице входа в веб-интерфейс пользователя кнопку «Автоматический вход».
Если все настроено правильно, то вход в веб-интерфейс почты должен быть осуществлен автоматически, минуя запрос логина и пароля.
Пример записи успешной аутентификации Kerberos в журнале сервера CGPro:
14:29:50.336 2 HTTPU-000253([10.2.7.51]:64522) 'ivanov' connected(KERBEROS) [10.2.7.51]:64522->[10.2.7.45]:8100
Устранение проблем
Большинство проблем аутентификации Kerberos связано с некорректным созданием/установкой keytab файла (например, были указаны неверные параметры при создании).
Если аутентификация Kerberos не проходит (в браузере запрашивается логин/пароль), то в первую очередь необходимо проверить получил ли ПК пользователя билет для сервиса CGPro и имени хоста, указанного в клиенте для подключения к домену сервера CGPro (FQDN, выбранный в пункте 4 раздела «Общие требования»). Для этого можно использовать команду klist.
Пример:
В примере ПК пользователя получил билет для сервиса HTTP и имени хоста dc-1.ipa.msk, с типом шифрования RC4-HMAC.
Проблема 1. ПК пользователя не получил билет.
Возможные причины:
1. Keytab файл не был сгенерирован для сервиса/имени хоста CGPro;
2. Для подключения к домену CGPro использовалось имя хоста (FQDN), отличное от того, на которое сгенерирован keytab.
Решение: Вернитесь к шагу 4 в разделе «Настройка интеграции с Microsoft Active Directory».
Проблема 2. ПК пользователя получил билет, но аутентификация Kerberos не прошла.
Возможные причины:
1. Keytab файл не был загружен на сервер CGPro;
Пример ошибки в журнале сервера CGPro:
15:15:58.593 1 DOMAIN(example.msk) Kerberos key HTTP/example.msk@EXAMPLE.MSK encType=18 v=13 not found
Решение: Загрузите keytab файл на сервер CGPro (см. раздел «Загрузка keytab.data на сервер CommuniGate Pro»).
2. Тип шифрования в билете на ПК пользователя не совпадает с типом шифрования keytab файла. Тип шифрования keytab можно посмотреть в интерфейсе администратора (см. раздел «Загрузка keytab.data на сервер CommuniGate Pro»);
Пример ошибки в журнале сервера CGPro:
15:15:58.593 1 DOMAIN(example.msk) Kerberos key HTTP/example.msk@EXAMPLE.MSK encType=18 v=13 not found
Решение: Вернитесь к шагу 4 в разделе «Настройка интеграции с Microsoft Active Directory» и создайте keytab файл с типом шифрования, совпадающим с типом шифрования билета.
3. Ключи шифрования в билете и на ПК пользователя не совпадают
Пример ошибки в журнале:
15:18:15.276 4 HTTPU-000226([10.3.9.179]:62117) rsp(1005): 401 Kerberos: failed to verify data integrity
Решение: Вернитесь к шагу 4 в разделе «Настройка интеграции с Microsoft Active Directory», создайте новый keytab файл и загрузите его на сервер CGPro.
Обратите внимание: ПК пользователя кэширует полученные билеты. После пересоздания keytab файла (пункты 2 и 3) нужно очистить кэш билетов, чтобы ПК пользователя запросил новый билет. Можно использовать команду klist purge, либо перезагрузить ПК.
Подготовка информации для предоставления в техническую поддержку
Для решения проблем с аутентификацией Kerberos, необходимо собрать и предоставить в техническую поддержку следующие данные:
1. С ПК пользователя: вывод команды klist ;
2. Из веб-интерфейса администратора CGPro: скриншот страницы с keytab:
Пользователи → Домены → Имя_домена → Безопасность → Kerberos;
3. Для сервиса (протокола) CGPro, к которому происходит подключение, установить уровень журнала «Всё»:
HTTPU: Установки → Услуги → HTTPU → Обработка → Уровень журнала: Всё
IMAP/MAPI: Установки → Доступ → IMAP → Уровень журнала: Всё
SMTP: Установки → Почта → SMTP → Прием → Уровень журнала: Всё;
4. Для модуля ROUTER установить уровень журнала «Всё»:
Установки → Маршрутизатор → Уровень журнала: Всё;
5. Повторить попытку входа;
6. Скопировать журнал сервера CGPro за промежуток -/+2 минуты от времени попытки входа в обычный текстовый файл.
Полезные ссылки
Руководство Администратора раздел Аутентификация Kerberos.
Руководство Администратора раздел Псевдонимы домена.
Руководство Администратора раздел Псевдонимы Пользователя.
Руководство Администратора раздел Вход при помощи Аутентификации через Браузер.
Документация Microsoft раздел ktpass.
17 янв. 2024 г.
Еще статьи
Предоставление доступа к папкам пользователя без использования пароля от его аккаунта. Общие папки
5 сент. 2023 г.
Настройка системы
Два способа предоставления доступа к папкам пользователя (почтовые, календарные папки и папки с контактами), не используя пароль от аккаунта пользователя.
5 сент. 2023 г.
Настройка системы
Интеграция CommuniGate Pro с офисным приложением Р7
14 сент. 2022 г.
Настройка системы
Использование веб-интерфейса для доступа к основным корпоративным сервисам позволяет унифицировать рабочие места, снизить затраты на их обслуживание, организовать удаленную работу.
14 сент. 2022 г.
Настройка системы