Блокировка установки сеансов пользователями
Описаны ручная и программная блокировка сеансов пользователей в информационной базе BAS, а также автоматическая блокировка аутентификации после неудачных попыток ввода пароля.. Вручную, для всех. Автоматически, при попытке подбора пароля
Автоматически, при попытке подбора пароля
Вручную, для всех
Интерактивный способ
Система позволяет устанавливать блокировку сеансов пользователей с информационной базой. Можно запретить установку сеансов пользователей с информационной базой с отображением сообщения о причинах запрета. Эта возможность полезна, например, когда для выполнения административных действий требуется, чтобы текущие пользователи завершили свои сеансы работы, а новые пользователи при этом не могли подключиться к информационной базе.
При работе в клиент-серверном варианте блокировку можно установить с помощью утилиты администрирования кластера серверов.
Имеется возможность соединения с информационной базой в обход установленной блокировки сеансов. Для этого используется параметр командной строки /UC<код разрешения> и параметр строки соединения UC=<код разрешения>. Если при установке блокировки задан непустой код разрешения, то для установки соединения в обход блокировки необходимо в параметре /UC указать этот код разрешения. Если код разрешения содержит пробелы, его следует заключить в кавычки.
Если используется веб-клиент или тонкий клиент, работающий через веб-сервер, можно указать код разрешения в параметре UC строки соединения файла-дескриптора. В этом случае рекомендуется выполнить дополнительную публикацию информационной базы на веб-сервере.
Так, если установлена блокировка начала сеансов и код разрешения равен 123, то для начала сеанса в обход установленной блокировки необходимо указать в командной строке запуска клиентского приложения строку /UC123.
Программный способ
Кроме того, при работе в любом режиме информационной базы установку блокировки начала сеансов можно выполнить средствами встроенного языка. Для этого используется объект встроенного языка SessionsLock/БлокировкаСеансов, который можно создать с помощью конструктора и установить необходимые свойства блокировки установки соединений. Сообщение, которое будет отображаться пользователю с помощью свойства SessionsLock.Message/БлокировкаСеансов.Сообщение, может быть задано как простой текстовой строкой, так и форматированной строкой.
Метод глобального контекста SetSessionsLock()/УстановитьБлокировкуСеансов() позволяет установить созданную блокировку, а метод GetSessionsLock()/ПолучитьБлокировкуСеансов() — получить установленную блокировку.
Автоматически, при попытке подбора пароля
Одним из способов получения несанкционированного доступа к данным информационной базы является подбор пароля пользователя, когда злоумышленник перебирает пароли по определённому алгоритму, пока не подберёт нужный пароль для выбранного пользователя. Чтобы усложнить подбор, в программе BAS предусмотрен специальный механизм, который работает только в клиент-серверном варианте информационной базы.
Администратор управляет работой механизма, настраивая перечисленные ниже параметры информационной базы. Диалог открывается из главного меню командой Администрирование – Параметры информационной базы:
- Максимальное количество неуспешных попыток аутентификации – определяет количество последовательных попыток ввода пользователем неправильного пароля перед блокировкой диалога аутентификации. Блокировка сработает на N+1 неудачной попытке аутентификации подряд, где N – это значение, установленное в этом параметре. Например, если в параметре установлено значение 2, то пользователь будет заблокирован после 3 (третьей) неудачной попытки аутентификации.
Если в этом параметре установлено значение 0, то механизм отключается, и программа не контролирует количество неудачных попыток аутентификации.
- Длительность блокировки при превышении количества неуспешных попыток аутентификации (в секундах) – определяет время, в течение которого пользователь не сможет выполнить попытку аутентификации, если он ввёл неправильный пароль больше раз подряд, чем указано в параметре Максимальное количество неуспешных попыток аутентификации.
- Коды дополнения имени пользователя при блокировке аутентификации – позволяет продолжить попытки аутентификации для заблокированного пользователя. Коды дополнения разделяются символом ";". В этом случае имя пользователя формируется из реального имени заблокированного пользователя и одного из указанных кодов дополнения. Пользователю, имя которого образовано с помощью кода дополнения, предоставляется столько же попыток, сколько и обычному пользователю. После исчерпания попыток аутентификации «дополнительный» пользователь также блокируется.
Механизм работает так:
- Злоумышленник вводит имя пользователя и начинает вводить пароли, чтобы подобрать пароль пользователя. После срабатывания ограничения на максимальное количество ошибок аутентификации система блокирует имя пользователя, которое использует злоумышленник.
- Если заблокированный пользователь попытается войти под своим именем и со своим паролем, он получит сообщение о том, что пользователь заблокирован.
- Если в базе настроены коды дополнения, пользователь может воспользоваться одним из них. Для этого ему необходимо ввести имя, дополненное кодом дополнения. При работе с кодом дополнения следует учитывать, что анализ кода дополнения начинается только при отсутствии дополненного имени в списке пользователей информационной базы. Тогда из этого дополненного имени последовательно вычитаются все коды дополнения имён, указанные в настройках, а затем проверяется наличие пользователя информационной базы с таким именем. Из-за описанной особенности не рекомендуется создавать коды дополнения, совпадающие с окончанием имени реального пользователя. Если такой пользователь будет заблокирован, то войти с помощью кода дополнения он не сможет. Ещё одним следствием этой особенности является рекомендация начинать код дополнения с различных «технических» символов, которые не могут быть в имени пользователя, например, «!», «^» и т. п.
Для просмотра списка заблокированных пользователей можно воспользоваться формой, которая открывается в конфигураторе из главного меню командой Администрирование – Блокировка аутентификации. Форма доступна пользователю, который имеет право Administration/Администрирование или DataAdministration/АдминистрированиеДанных. Информация о блокировке пользователей доступна в журнале регистрации.
Информация о заблокированных пользователях хранится сервисом вспомогательных функций кластера серверов. Это означает, что:
- Если заблокирован единственный администратор, то для входа под ним во время блокировки следует перезапустить кластер серверов.
- Счётчик ошибочных попыток входа ведётся с момента последней успешной попытки входа и не имеет срока давности. Однако перезапуск кластера серверов сбрасывает все счётчики для всех пользователей информационной базы.
Управление механизмом блокировок выполняется с помощью объекта глобального контекста AuthenticationLock/БлокировкаАутентификации. С его помощью можно изменять параметры механизма с помощью методов GetSettings()/SetSettings() (ПолучитьНастройки()/УстановитьНастройки()). Также можно получить список текущих блокировок с помощью метода GetLocks()/ПолучитьБлокировки().
Из встроенного языка можно принудительно разблокировать всех или выбранных заблокированных пользователей. Для этого нужно получить список текущих блокировок, представленный массивом объектов InfoBaseUserAuthenticationLock/ БлокировкаАутентификацииПользователяИнформационнойБазы. Затем определить список пользователей, которых следует разблокировать, на основании свойств объекта InfoBaseUserAuthenticationLock/ БлокировкаАутентификацииПользователяИнформационнойБазы. Далее для выбранных заблокированных пользователей следует вызвать метод Unlock()/Разблокировать() этого же объекта.