Вход с помощью сеанса операционной системы#
Способ входа с использованием сеанса операционной системы позволяет пользователям не проходить дополнительно идентификацию и аутентификацию в 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-сервере.