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

08.01.21

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Запрещаем администратору системы заходить в конфигуратор (Внешнее управление сеансами):
.cf 78,35Kb
11
11 Скачать (1 SM) Купить за 1 850 руб.

Много кому в организации нужны права администрирования системы, например сотрудникам техподдержки - подправить документы, завести пользователей. Давать доступ в конфигуратор этим сотрудниками совсем не нужно, однако широкие права предполагают, что доступ в конфигуратор у них есть. Традиционно такие вопросы решаются административным путем, однако мы (повелители 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

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

См. также

Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

3600 руб.

06.02.2017    31903    32    18    

48

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

Предлагается внешняя обработка для просмотра данных в формате ASN1. Есть 2 режима: загрузка из бинарного формата и из BASE64. Реализована функция извлечения всех сертификатов, которые можно найти в ASN1-файле. В дополнении к этому продукту предлагается методическая помощь по вопросам, связанным с технической реализацией криптографии и шифрования в 1С.

1000 руб.

29.08.2016    29886    9    1    

10

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

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

30.05.2024    5456    kamisov    17    

60

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

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

27.02.2024    5892    PROSTO-1C    10    

39

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

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

1 стартмани

27.10.2023    2253    platonov.e    1    

23

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

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

5 стартмани

24.04.2023    6042    18    soulner    7    

32

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

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

2 стартмани

08.12.2022    6894    43    Silenser    12    

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

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

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

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