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

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    14608    23    32    

34

Хранение секретов в Hashicorp Vault для 1С

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

Все еще храните пароли в базе? Тогда мы идем к вам! Безопасное и надежное хранение секретов. JWT авторизация. Удобный интерфейс. Демо конфигурация. Бесплатно.

30.05.2024    1995    kamisov    13    

37

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

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

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

27.02.2024    3827    PROSTO-1C    10    

36

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

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

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

1 стартмани

27.10.2023    1915    platonov.e    1    

23

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

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

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

5 стартмани

24.04.2023    5680    18    soulner    7    

31

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

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

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

2 стартмани

08.12.2022    6285    34    Silenser    12    

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

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

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

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