Аутентификация через Kerberos

Вопросы, связанные с аутентификацией и авторизацией. Протоколы LDAP, Kerberos, etc.
Semyon
Support Engeneer
Сообщения: 116
Зарегистрирован: 16:0, 29 июл 2015

Аутентификация через Kerberos

Непрочитанное сообщение Semyon » 16:0, 29 июл 2015

Единый механизм входа на сервер с помощью связки Kerberos v.5 + Active Directory через браузеры Internet Explorer и Google Chrome
в рамках ОС Windows 7.

Процесс настройки:
1.Создать или используем имеющуюся учетную запись пользователя в Active Directory. Имя этого пользователя из Active Directory нужно добавить в список User Aliases пользователя CommuniGate.
2.Создать в Active Directory пользователя cgatepro (любое имя, связанное с сервером CGP, чтобы не запутаться). На него будут зарегистрированы principals сервера CommuniGate для разных сервисов (HTTP, IMAP и т. д.).
3.У пользователя cgatepro в Active Directory поменять следующие параметры:
В Properties → delegation включить «Trust this user for delegation to any service (Kerberos only)», во вкладке Account, в списке Account options выключить DES шифрование и включить «Do not require Kerberos pre-autentication»
4.На сервере с Active Directory открываем cmd.exe с правами администратора и создаем keytab с ключом mapuser коммандой:

Код: Выделить всё

ktpass -princ service/server_main_domain@REALM -mapuser cgatepro -pass <password> -out C://keytab.data -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -kvno <version>

где:
service – имя сервиса. HTTP обязательно в верхнем регистре, для остальных регистр значения не имеет.
server_main_domain – главный домен сервера Communigate Pro (без FQDN)
REALM — домен Windows Active Directory, он же наш Kerberos KDC
<password> - пароль пользователя cgatepro
С://keytab.data — путь к файлу (и имя) в который запишется таблица ключей
RC4-HMAC-NT — тип шифрования «по умолчанию» для kerberos, использовался для совместимости, может быть изменен.
-kvno <version> - версия файла ключей. Специально прописывать версию следует если в логах при проверке возвращается ошибка:

Код: Выделить всё

DOMAIN(*) Kerberos key HTTP/server_main_domain@REALM encType=23 v=12 not found

В этом случае в поле <version> вписываем номер на единицу больше указанного в (v=12). Как либо повлиять на нумерацию, сбросить ее, указать на 0 или отключить проверку версии не удавалось.
5.Созданный keytab.data загрузить на CommuniGate сервер:

Код: Выделить всё

WebAdmin → Users → Domains → Security → Kerberos

После добавления Keytab нужно открыть

Код: Выделить всё

WebAdmin → Settings → Services → HTTPU

и включить Advertise 'Negotiate' Authentication.
6.В командной строке сервера Active Directory с правами администратора прописать SPN:

Код: Выделить всё

setspn -S <service>/server_main_domain cgatepro

Ключ -S в отличие от -A дополнительно проверяет наличие повторяющихся SPN одного и того же service/principal, это важно, т.к. при наличии повторений, обращение к KDC для этих service/principal станет невозможным.
7.В командной строке с правами администратор запустить привязку служебного пользователя

Код: Выделить всё

ksetup /MapUser * cgatepro

Вызвав команду ksetup, убедиться, что REALM прописался верно:

Код: Выделить всё

Default realm = <REALM AD-сервера>
Mapping <service>/server_main_domain to cgatepro

Это значит что привязка удалась. Можно так же проверить spn командой

Код: Выделить всё

 setspn -L cgatepro

8.Добавить клиентский компьютер в домен Windows Active Directory, или использовать уже добавленный. После добавления требуется перезагрузка клиентского компьютера и авторизация под пользователем, которым необходимо будет произвести вход в CommuniGate.
9.Настроить Internet Explorer.

Код: Выделить всё

ALT+X → Свойства браузера → Безопасность → Местная интрасеть → Сайты

Добавить CGP сервер в список. Перезагрузить браузер. После добавления исключений и доверенных сайтов в IE можно использовать и Chrome.
10.Для аутентификации через Kerberos использовать страницу

Код: Выделить всё

http://server_main_domain:8100/login/

Если все работает правильно, должна быть показана страница пользователя минуя запрос «логин/пароль».

Вернуться в «Аутентификация»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость