Вход с помощью сеанса операционной системы#
Способ входа с использованием сеанса операционной системы позволяет пользователям не проходить дополнительно идентификацию и аутентификацию в Blitz Identity Provider, если они ранее вошли со своего ПК в сеть организации и прошли идентификацию и аутентификацию в операционной системе (вошли в сетевой домен). Такие пользователи получат возможность сквозной идентификации при доступе ко всем приложениям, подключенным к Blitz Identity Provider.
Для входа с помощью сеанса операционной системы в организации должен быть развернут Kerberos-сервер (отдельно или в составе контроллера домена организации) и выполнены описанные ниже настройки.
Настройки контроллера домена (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
.
В оснастке управления групповыми политиками следует настроить политику 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 к нескольким контроллерам домена.
Далее необходимо определить параметры соответствия Kerberos-токена (TGS) и учетной записи в Blitz Identity Provider.
Например, можно задать соответствие, что получаемый из Kerberos-токена идентификатор пользователя (username) должен соответствовать атрибуту sAMAccountName
, получаемому из LDAP-каталога (Microsoft Active Directory).
Далее необходимо установить параметры задержек при использовании метода входа с использованием сеанса операционной системы.
Blitz Identity Provider предоставляет два возможных сценария использования входа по сеансу операционной системы:
Основной сценарий. Пользователи входят в операционную систему, и после этого должны сквозным образом входить во все приложения, подключенные к Blitz Identity Provider. Предоставлять пользователям возможность войти в приложения под другой учетной записью не требуется. В этом случае нужно установить Время задержки перед запуском метода
, равное 0
секунд. При обращении к приложению сразу будет произведена попытка сквозного входа по сеансу операционной системы.
Дополнительный сценарий. Пользователи не всегда имеют возможность войти в домен операционной системы, либо пользователям в некоторых случаях необходима возможность войти в приложения под другой учетной записью чем та, что они использовали для входа в домен. В этом случае нужно установить Время задержки перед запуском метода
такое, чтобы пользователю хватило времени для возможности отменить автоматический вход с использованием сеанса операционной системы.
Время ожидания получения токена
нужно установить достаточным, чтобы Kerberos сервер успевал предоставить ответ Blitz Identity Provider. Обычно достаточно установить 5 секунд.
Как и в случае входа по логину и паролю, по умолчанию поиск пользователей для аутентификации происходит во всех активных хранилищах. В блоке Правила выбора хранилища атрибутов можно настроить правила, при выполнении которых поиск пользователя будет осуществляться в определенном хранилище.
Настройки браузеров пользователей#
В зависимости от используемого пользователем браузера может потребоваться его дополнительная настройка для поддержки Kerberos-идентификации.
Для браузеров под операционной системой Windows нужно задать следующие настройки:
открыть Пуск → Панель управления, изменить вариант просмотра с
Категория
наМелкие значки
, в открывшихся настройках выбрать Свойства браузера;в новом окне выбрать Безопасность → Местная интрасеть и нажать кнопку Сайты. В открывшемся окне нажать кнопку Дополнительно и внести сайт с Blitz Identity Provider в список сайтов Местная интрасеть, нажав Добавить;
в окне Свойства: Интернет → Безопасность → Местная интрасеть нажать кнопку Другой…. В открывшемся окне найти настройку
Проверка подлинности пользователя
→Вход
. Установить ее в значениеАвтоматический вход в сеть только в зоне интрасети
.
Можно не задавать для операционной системы 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-сервере.