Запрещаем администратору системы заходить в конфигуратор (внешнее управление сеансами)

08.01.21

Администрирование - Информационная безопасность

Используем функционал внешнего управления сеансами для запрета входа в конфигуратор рабочей базы пользователя с правом администрирования.

Скачать исходный код

Наименование Файл Версия Размер
Запрещаем администратору системы заходить в конфигуратор (Внешнее управление сеансами):
.cf 78,35Kb
10
.cf 1.0.0 78,35Kb 10 Скачать

Много кому в организации нужны права администрирования системы, например сотрудникам техподдержки - подправить документы, завести пользователей. Давать доступ в конфигуратор этим сотрудниками совсем не нужно, однако широкие права предполагают, что доступ в конфигуратор у них есть. Традиционно такие вопросы решаются административным путем, однако мы (повелители 1С) можем кое-что сделать и не административно.

Воспользуемся внешним управлением сеансами - эта технология в настоящий момент доступна только для КОРП лицензии, к сожалению, и представляет из себя возможность клиентского сеанса обращаться к специальному веб-сервису, который предоставляет информацию о разрешении входа. 

Ознакомимся с информацией от вендора: 2.2.4.4. Внешнее управление сеансами и 5.3.2. Внешнее управление сеансами, ознакомимся также с наработками сообщества: Готовая конфигурация по примеру...Брандмауэр для сервера 1С...Внешнее управление сеансами

Создадим пустую конфигурацию. Добавим в нее справочник - "НастройкиВхода", название базы для контроля сеансов будем задавать в наименовании элемента справочника. Добавим табличную часть - "РазрешенныеПользователиКонфигуратора", с единственным реквизитом - "ИмяПользователя".

Дальше создаем XDTO пакет импортом схемы с ИТС (вышеупомянутая глава 5.3.2. Внешнее управление сеансами)

Получаем пакет описания типов веб-сервиса:

Создаем веб-сервис "SessionControl" с указанием только что созданного пакета XDTO:

Реализуем операции веб-сервиса и параметры операций, для описания параметров используем ту же статью ИТС.

Обратите внимание, для наших целей нам достаточно только операции "onStartSession", остальные методы сделаны в виде "заглушки".

Ну и реализуем обработчик операции "onStartSession":

Напишем такой код:

Функция onStartSession(CallNo, ClusterID, ClusterName, InfoBaseName, SessionID, SessionNumber, UserID, UserName, ClientIPAddress, AppID, Zone, LanguageCode, ErrorDescription)
	
    ErrorDescription = "";
	
    Если AppID <> "Designer" Тогда
        Возврат 0;
    КонецЕсли;
	
    НастройкиВхода = Справочники.НастройкиВхода.НайтиПоНаименованию(InfoBaseName, Истина);
    Если НастройкиВхода.Пустая() Тогда
        Возврат 0;
    КонецЕсли;
	
    ПараметрыОтбора = Новый Структура("ИмяПользователя", UserName);
    Если НЕ ЗначениеЗаполнено(НастройкиВхода.РазрешенныеПользователиКонфигуратора.НайтиСтроки(ПараметрыОтбора)) Тогда
        ErrorDescription = СтрШаблон("Пользователю '%1' не разрешен вход в конфигуратор", UserName);
        Возврат 1;
    Иначе
        Возврат 0;
    КонецЕсли;
	
КонецФункции

Из всего обилия параметров веб-сервиса мы используем только "AppID" - вид приложения, "InfoBaseName" - имя информационной базы, "UserName" - имя пользователя.

Логика следующая - проверка срабатывает, только если приложение - конфигуратор и в справочнике есть запись с именем базы. Далее мы ищем совпадение имени пользователя с строками табличной части, если совпадения нет - пользователю нельзя заходить в конфигуратор.

Опубликуем наш веб-сервис в веб:

И пропишем в настройках серверной базы адрес веб-сервиса:

Единственное отступление от инструкции на ИТС - мне пришлось явно указать версию веб-сервиса ("wsver=3") и добавить параметр "ErrorDescription". Получилась следующая строка, где localhost - это имя веб-сервера (у меня тестовый конечно), Control - имя публикации (базы), SessionControl - имя веб-сервиса: 

wsdl=http://localhost/Control/ws/SessionControl?wsdl;ns=http://v8.1c.ru/SessionManagement;srvc=SessionControl;port=SessionControlSoap;wsver=3;ErrorDescription=""

База, в которой будем ограничивать вход пользователей, называется RPA (привет тем, кто знает!). Пусть вход в конфигуратор разрешен только пользователю "АдминистраторКонфигуратора".

Сделаем нужную запись в конфигурации - держателе веб-сервиса.

Попробуем. Работает! Пользователю "АдминистраторКонфигуратора" можно заходить в конфигуратор, остальным нет, причем остальные получают понятное сообщение об ошибке.

Получилось быстро и просто.

К публикации приложена выгрузка конфигурации. Все действия проводились на платформе 8.3.18.1208

Внешнее управление сеансами консоль конфигуратор

См. также

AUTO VPN (portable)

Информационная безопасность Платные (руб)

Автоматизация подключения пользователей к удаленному рабочему месту или сети посредством создания автоматического VPN (L2TP или L2TP/IPSEC и т.д.) подключения без ввода настроек пользователем (с возможностью скрытия этих настроек от пользователя). Программа автоматически выполняет подключение к VPN серверу и после успешного коннекта , если необходимо, подключение к серверу удаленных рабочих столов (RDP).

1200 руб.

24.03.2020    14467    22    32    

33

Настройка аутентификации в 1С с использованием стандарта RFC 7519 (JWT)

Информационная безопасность Платформа 1С v8.3 Бесплатно (free)

Рассмотрим в статье более подробную и последовательную настройку аутентификации в 1С с использованием распространенной технологии JWT, которая пришла в программу в платформе версии 8.3.21.1302.

27.02.2024    3064    PROSTO-1C    9    

32

Device flow аутентификация, или туда и обратно

Информационная безопасность Платформа 1С v8.3 Абонемент ($m)

Интеграционные решения стали неотъемлемой частью нашей жизни. Правилом хорошего тона в современных приложениях является не давать интегратору доступ к чувствительным данным. Device flow позволяет аутентифицировать пользователя, не показывая приложению чувствительные данные (например: логин и пароль)<br> Рассмотрим Device flow аутентификацию, в приложении, на примере OpenID провайдера Yandex.

1 стартмани

27.10.2023    1703    platonov.e    1    

23

Анализатор безопасности базы сервера 1С

Информационная безопасность Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Продукты на основе решений 1С уверенной поступью захватывают рынок учётных систем в стране. Широкое распространение программ всегда порождает большой интерес к ним со стороны злоумышленников, а пользователь 1С это одна из дверей в защищённый информационный контур предприятия. Обработка позволяет быстро и комплексно оценить настройки безопасности конкретной базы и возможности пользователя этой базы на сервере. Также можно оценить некоторые аспекты сетевой безопасности предприятия со стороны сервера 1С.

5 стартмани

24.04.2023    5545    17    soulner    7    

29

Двухфакторная аутентификация в 1С через Telegram и Email

Информационная безопасность Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

1С, начиная с версии платформы 8.3.21, добавили в систему возможность двойной аутентификации. Как это работает: в пользователе информационной базы появилось свойство «Аутентификация токеном доступа» (АутентификацияТокеномДоступа во встроенном языке), если установить этот признак и осуществить ряд манипуляций на встроенном языке, то появляется возможность при аутентификации отправлять HTTP запросы, которые и реализуют этот самый второй фактор. Данное расширение позволяет организовать двухфакторную аутентификацию с помощью электронной почты или мессенджера Telegram.

2 стартмани

08.12.2022    6083    33    Silenser    12    

23

История одного взлома или проверьте вашу систему на безопасность

Информационная безопасность Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

От клиента клиенту, от одной системы к другой, мы вновь и вновь встречаем одни и те же проблемы и дыры в безопасности. На конференции Infostart Event 2021 Post-Apocalypse Виталий Онянов рассказал о базовых принципах безопасности информационных систем и представил чек-лист, с помощью которого вы сможете проверить свою систему на уязвимость.

26.10.2022    9395    Tavalik    46    

113
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SapientiEst 08.01.21 11:04 Сейчас в теме
Работа проделана большая и квалифицированная...

Но в конфигурациях с которыми работаю лично я есть роль "Администратор" и "Администратор системы" которые вроде должны решать эту задачу (не менять метаданные)...

Или я не прав?
sapervodichka; ardn; +2 Ответить
2. ardn 627 08.01.21 14:41 Сейчас в теме
(1)
На самом деле работа заняла пару-тройку часов с чтением документации (ИТС на самом деле помогает).
Действительно, стандарты разработки предписывают иметь в конфигурации обязательные роли «Полные права» и «Администратор системы», в которых используются права "Администрирование данных" и "Администрирование" соответственно (тут подробно Стандартные роли)
Однако в БСП есть предопределенный элемент "Администратор" справочника "ПрофилиГруппДоступа", и довольно жестко прописано использование обоих ролей, если база - не фрешеподобная:
(тут должен был быть показан скрин)
И тут возникает вопрос - менять конфигурацию (расширением, конечно), создавать свои профили групп доступа или изучить новую для себя технологию.
3. SapientiEst 08.01.21 17:28 Сейчас в теме
(2)
(тут должен был быть показан скрин)

Не грузиться
4. ardn 627 13.01.21 10:47 Сейчас в теме
5. SapientiEst 29.01.21 09:59 Сейчас в теме
6. milanse 38 29.04.22 19:47 Сейчас в теме
С правами в БСП, конечно, не гибко получается, может что-то изменят со временем. Ну и жаль, конечно, что многие фишки есть только в Корп функционале.
Оставьте свое сообщение