Вход с помощью сеанса операционной системы#
Способ входа с использованием сеанса операционной системы позволяет пользователям не проходить дополнительно идентификацию и аутентификацию в Blitz Identity Provider, если они ранее вошли со своего ПК в сеть организации и прошли идентификацию и аутентификацию в операционной системе (вошли в сетевой домен). Такие пользователи получат возможность сквозной идентификации при доступе ко всем приложениям, подключенным к Blitz Identity Provider.
Для входа с помощью сеанса операционной системы в организации должен быть развернут Kerberos-сервер (отдельно или в составе контроллера домена организации) и выполнены следующие настройки (см. описания далее в подразделах):
Настройки контроллера домена (Kerberos-сервера)
Настройки в консоли управления Blitz Identity Provider.
Настройки браузеров пользователей.
Настройки запуска приложений Blitz Identity Provider.
Настройки веб-сервера.
Настройки контроллера домена (Kerberos-сервера)#
В контролере домена необходимо зарегистрировать учетную запись для сервера Blitz Identity Provider. Для созданной учетной записи нужно на странице «Account» в блоке «Account options» оснастки контроллера домена включить настройки «User cannot change password» и «Password never expires».
Также следует отметить опции «This account supports Kerberos AES 256 bit encryption» и запретить предварительную аутентификацию «Do not require Kerberos preauthentication».

Свойства Kerberos#
В оснастке управления групповыми политиками следует настроить политику
«Configure encryption types allowed for Kerberos», указав следующие
возможные значения: RC4_HMAC_MD5
, AES128_HMAC_SHA1
и
AES256_HMAC_SHA1
.
Пример настройки:

Настройка политик шифрования#
Далее необходимо создать Service Principal Name (SPN) для идентификации сервера Blitz Identity Provider сервером Kerberos. Это выполняется с помощью следующей команды:
ktpass -princ HTTP/idp.company.ru@DOMAIN.LOC -mapuser DOMAIN\blitzidpsrv -out C:\temp\spnego_spn.keytab -mapOp set -crypto ALL -ptype KRB5_NT_PRINCIPAL /pass SecretPassword
Параметры команды ktpass:
значение параметра
mapuser
– имя созданной в домене учетной записи сервера Blitz Identity Provider, например,DOMAIN\blitzidpsrv
;значение параметра
princ
– имя SPN сервера с Blitz Identity Provider для идентификации в среде Kerberos. Это имя состоит из имени хоста сервера с Blitz Identity Provider, имени Kerberos Realm в верхнем регистре (обычно совпадает с именем домена) и используемого транспортного протокола (HTTP). Пример значения SPN –HTTP/idp.company.ru@DOMAIN.LOC
. Важно, чтобыHTTP/
в начале имени SPN указывалось именно большими буквами, как в примере.параметр
mapOp
– если задан в значениеadd
, то новый SPN будет добавлен к существующим. Если задано значениеset
, то SPN будет перезаписан.параметр
out
– задает путь к генерируемому keytab-файлу. Например,C:\temp\spnego_spn.keytab
;параметр
/pass
– значение пароля от учетной записи сервера Blitz Identity Provider в домене.параметры
crypto
иptype
задают ограничения на используемые алгоритмы и тип генерируемой Kerberos-службы. Рекомендуется задать параметры как в указанном примере-crypto ALL -ptype KRB5_NT_PRINCIPAL
.
Сгенерированный keytab-файл необходимо сохранить. Он будет необходим для последующей настройки в консоли управления Blitz Identity Provider.
Настройки в консоли управления Blitz Identity Provider#
Необходимо перейти в консоли управления в разделе «Аутентификация» к настройкам способа входа «Вход по сеансу операционной системы». В открывшемся окне необходимо загрузить сгенерированный ранее keytab файл. Имя SPN при этом будет задано автоматически в соответствии с загруженным файлом.
По результатам загрузки keytab-файла будет отображаться информация о соответствующей Kerberos-службе.
При необходимости можно:
удалить загруженный keytab-файл;
загрузить еще keytab-файлы, в случае подключения Blitz Identity Provider к нескольким контроллерам домена.

Keytab-файл успешно загружен#
Далее необходимо определить параметры соответствия Kerberos-токена (TGS) и учетной записи в Blitz Identity Provider.

Настройка соответствия Kerberos-идентификатора пользователя и его учетной записи в хранилище#
Например, можно задать соответствие, что получаемый из Kerberos-токена
идентификатор пользователя (username) должен соответствовать атрибуту
sAMAccountName
, получаемому из LDAP-каталога (Microsoft Active
Directory).
Далее необходимо установить параметры задержек при использовании метода входа с использованием сеанса операционной системы.

Дополнительные настройки#
Blitz Identity Provider предоставляет два возможных сценария использования входа по сеансу операционной системы:
Основной сценарий. Пользователи входят в операционную систему, и после
этого должны сквозным образом входить во все приложения, подключенные к
Blitz Identity Provider. Предоставлять пользователям возможность войти в
приложения под другой учетной записью не требуется. В этом случае нужно
установить «Время задержки перед запуском метода», равное 0
секунд. При обращении к приложению сразу будет произведена попытка
сквозного входа по сеансу операционной системы.
Дополнительный сценарий. Пользователи не всегда имеют возможность войти в домен операционной системы, либо пользователям в некоторых случаях необходима возможность войти в приложения под другой учетной записью чем та, что они использовали для входа в домен. В этом случае нужно установить «Время задержки перед запуском метода» такое, чтобы пользователю хватило времени для возможности отменить автоматический вход с использованием сеанса операционной системы.
«Время ожидания получения токена» нужно установить достаточным, чтобы Kerberos сервер успевал предоставить ответ Blitz Identity Provider. Обычно достаточно установить 5 секунд.
Как и в случае входа по логину и паролю, по умолчанию поиск пользователей для аутентификации происходит во всех активных хранилищах. В блоке «Правила выбора хранилища атрибутов» можно настроить правила, при выполнении которых поиск пользователя будет осуществляться в определенном хранилище (см. Вход по логину и паролю).
Настройки браузеров пользователей#
В зависимости от используемого пользователем браузера может потребоваться его дополнительная настройка для поддержки Kerberos-идентификации.
Для браузеров под операционной системой Windows нужно задать следующие настройки:
открыть «Пуск → Панель управления», изменить вариант просмотра с «Категория» на «Мелкие значки», в открывшихся настройках выбрать «Свойства браузера»;
в новом окне выбрать «Безопасность → Местная интрасеть» и нажать кнопку «Сайты». В открывшемся окне нажать кнопку «Дополнительно» и внести сайт с Blitz Identity Provider в список сайтов «Местная интрасеть», нажав «Добавить»;
в окне «Свойства: Интернет → Безопасность → Местная интрасеть» нажать кнопку «Другой…». В открывшемся окне найти настройку «Проверка подлинности пользователя → Вход». Установить ее в значение «Автоматический вход в сеть только в зоне интрасети».

Настройки Internet Explorer для Kerberos – включение Blitz Identity Provider в ресурсы Локальной вычислительной сети#

Настройки Internet Explorer для Kerberos – включение встроенной идентификации#

Настройки Internet Explorer для Kerberos – включение встроенной идентификации#
Можно не задавать для операционной системы Windows описанные выше настройки и в качестве альтернативы для возможности входа по сеансу операционной системы в браузере Google Chrome тогда можно запускать браузер со следующими параметрами запуска:
Chrome.exe –auth-server-whitelist="idp.domain.ru" –auth-negotiate-delegatewhitelist="idp.domain.ru" –auth-schemes="digest,ntlm,negotiate"
Где в качестве idp.domain.ru
нужно указать URL сайта Blitz Identity
Provider.
Также можно задать следующие настройки в реестр Windows, чтобы запускать браузер Google Chrome без параметров запуска.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google]
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
"AuthNegotiateDelegateWhitelist"="idp.domain.ru"
"AuthSchemes"="basic,digest,ntlm,negotiate"
"AuthServerWhitelist"="idp.domain.ru"
Для Mozilla Firefox нужно задать следующие настройки (для любых операционных систем):
в адресной строке браузера ввести
about:config
и нажать «Enter». В следующем окне ввестиnetwork.nego
в поле «Фильтры». Дважды нажать на найденной записи«network.negotiate-auth.trusted-uris»
и установить в ней значение URL сайта с Blitz Identity Provider, например,idp.domain.ru
. При указании адресов можно использовать звездочку (*
) и указать несколько URL через запятую, например:https://*.idp.domain.ru,http://*.idp.domain.ru
. Закрыть всплывающее окно кнопкой «ОК».дважды нажать на найденной записи
«network.negotiate-auth.delegation-uris»
и установить в ней значение URL сайта с Blitz Identity Provider, например,idp.domain.ru
. При указании адресов можно использовать звездочку (*
) и указать несколько URL через запятую, например:https://*.idp.domain.ru,http://*.idp.domain.ru
. Закрыть всплывающее окно кнопкой «ОК».открыть параметр
network.auth-sspi
, установить его значение вtrue
;перезапустить браузер.
Для Google Chrome в macOS и в Linux нужно осуществлять запуск Google Chrome специальным образом:
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --args --auth-server-whitelist="idp.domain.ru" --auth-negotiate-delegate-whitelist="idp.domain.ru"
Где в качестве idp.domain.ru
нужно указать URL сайта Blitz Identity
Provider.
Для Apple Safari в macOS отдельная настройка не требуется.
Настройки запуска приложений Blitz Identity Provider#
У пользователей могут возникнуть проблемы при входе по сеансу
операционной системы, если они используют браузер Internet Explorer, и
если в домене их учетная запись включена во многие группы безопасности,
либо если DN учетной записи достаточно длинный. Чтобы избежать такой
ситуации, необходимо при запуске приложения сервиса аутентификации
blitz-idp
задать специальный JAVA-параметр, определяющий большой
допустимый размер HTTP-заголовка. Для этого необходимо отредактировать
файл /etc/default/blitz-idp
. В параметр JAVA_OPTS добавить ключ:
-Dakka.http.parsing.max-header-value-length=16K
Настройки веб-сервера#
У пользователей могут возникнуть проблемы при входе по сеансу операционной системы, если они используют браузер Internet Explorer, и если в домене их учетная запись включена во многие группы безопасности, либо если DN учетной записи достаточно длинный. Чтобы избежать такой ситуации, необходимо скорректировать настройки веб-сервера, определяющие допустимый размер буферов заголовков.
Рекомендуемые значения буферов для nginx приведены ниже:
proxy_buffer_size 16k;
proxy_buffers 4 16k;
proxy_busy_buffers_size 16k;
client_body_buffer_size 16K;
client_header_buffer_size 16k;
client_max_body_size 8m;
large_client_header_buffers 2 16k;
Отладка проблем с входом по сеансу операционной системы#
Если при выполненных настройках у пользователей все же не работает вход по сеансу операционной системы, то рекомендуется на компьютере пользователя в командной строке выполнить следующую команду:
klist
Если команда успешно вернет TGS мандаты для SPN, настроенного для Blitz Identity Provider, значит нужно проверять корректность настроек на стороне браузера пользователя и в Blitz Identity Provider. Если TGS мандаты для Blitz Identity Provider отсутствуют, то можно их запросить, используя следующую команду (необходимо указать правильные SPN и имя домена компании):
klist get HTTP/idp.company.ru@DOMAIN.LOC
Если команда не вернет полученных TGS мандатов, значит нужно проверять корректность настроек на Kerberos-сервере.