Тестируем быстро. Запуск сеанса под другим пользователем за 6 секунд!

Публикация № 1230534

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

Пользователи запуск безпароля кодом автоматически администратор

Как часто вам приходится запускать отладку под другим пользователем? Сколько времени у вас занимает запуск "чужого" сеанса? Убрать (если имеется) у себя аутентификацию ОС, сбросить пароль пользователя и восстановить его потом и т.д. Есть простой и действенный код, который поможет запускать сеансы под другим пользователем без ручной смены параметров аутентификации.

Вступление

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

 
Не рекомендуется к просмотру беременным, детям и людям с нездоровой НС

Покопавшись в том и другом, удалось понять алгоритм решения задачи и написать код, который был бы принят архитекторами, о чем и хочу рассказать, а точнее, как это работает и в чем могут быть сложности.

"Ларчик просто открывался"

Чтобы запустить приложение нам понадобится команда "ЗапуститьСистему" и строка параметров, которая будет заполнена следующим набором: имя приложения, параметр запуска приложения, имя базы, имя пользователя и пароль. На последнем стоит заострить внимание.

Как оказалось, имея даже роль "полные права", у вас не будет возможности посмотреть пароль пользователя используемый для ввода, он будет представлен в виде "QL0AFWMIX8NRZTKeof9cXsvbvu8=,QL0AFWMIX8NRZTKeof9cXsvbvu8=", а для запуска нужен вид "123". Из-за этого мы не сможем запустить систему под текущим паролем пользователя, нам нужно будет установить свой пароль, запустить систему со своим паролем, а потом вернуть старый. В этом то и вся загвоздка.

!ЛикБез из комментариев! <"QL0AFWMIX8NRZTKeof9cXsvbvu8=,QL0AFWMIX8NRZTKeof9cXsvbvu8="> - это 2 хеша паролей: от регистрозависимого и от пароля в нижнем регистре. Т. е. установив для пользователя пароль "ReGiStR", вы также сможете войти и под паролем "registr". 1С (так же как и сбер) заботится об удобстве бабушек пользователей и снижает секьюрность

Пароль «Рыба-меч»

 Это работает как-то так: в момент запуска окна аутентификации вы вводите цифры, платформа кодирует их и сравнивает с сохраненным, кодированным тем же алгоритмом, паролем пользователя. Это было выявлено опытным путем. Итак, чтобы получить этот параметр (пароль для ввода) мы можем установить какому-то пользователю новый пароль вида "123". Программа его кодирует, а мы любым из доступных способов (написать обработку, которая выведет на экран или в точке остановки найти в параметрах пользователя ИБ СохраняемоеЗначениеПароля, или на что у вас хватит фантазии) получим пароль вида "QL0AFWMIX8NRZTKeof9cXsvbvu8=,QL0AFWMIX8NRZTKeof9cXsvbvu8=". Теперь у нас есть связь кодированного и некодированного пароля для подстановки в нашем алгоритме.

5 простых шагов к успеху

Итак весь алгоритм от Элемента справочника "Пользователи" до запуска под ним системы строится в пять действий:

1. Получаем пользователя ИБ из "пользователя справочника". Для решения этого непростого задания создаем супер процедуру:

 
Новый листинг 1

Как говорится, "куй железо пока горячо", сразу получим параметры: шифрованный пароль (СохраняемоеЗначениеПароля), может ли он "логиниться" стандартным путем (АутентификацияСтандартная) и его имя. А сам пользователь вовсе и не нужен больше.

!Важный момент! хранить полученный набор параметров в реквизитах формы. Для этого я выделил переменную с произвольным типом "ДанныеПользователя".

2. Создаем строку параметров запуска для процедуры "ЗапуститьСистему", используя имя, которое получили из пользователя ИБ и пароль "123". Каких-то сложностей быть не должно.

 
 Новый листинг 2

3. Сменим пользователю ИБ шифрованный пароль, на тот, который мы подсмотрели и возможность "логиниться" через 1с. Для этого лучше создать процедуру, которая по параметрам установит пользователю другой пароль, и запустить её.

 
Новый листинг 3

4. Подключим обработчик ожидания, который через 5 секунд вернет параметры аутентификации пользователя в доисторическое состояние. Для этого напишем экспортную процедуру на клиенте, запускающую процедуру, которую мы описали в прошлом действии с параметрами, хранящимися на форме.

 
Новый листинг 4

5. Сладенькое на десерт - запустим уже наконец систему!

 
Новый листинг 5

"Игого"

Тестировалось на 1С:Предприятие 8.3 (8.3.16.1224). Конфигурация: Управление торговлей, редакция 11.1 (11.1.10.53).

Сначала использовалось сие добро как внешняя обработка, но позже было внедрено на форму элемента справочника "Пользователи", для оперативности запуска. Для отладки прав и работы решений под пользователями на дальней перспективе, экономит времени значительно. 

Не скупитесь на комментарии и "Звездочки"! Это мотивирует авторов делиться добром!

Кому совсем лень -матушка, прикрепляю бесплатный файл для скачивания.

А какие решения у вас позволяют сэкономить время работы разработчиков и тестировщиков? 

Мира и здоровья вам!

Скачать файлы

Наименование Файл Версия Размер
Тестируем быстро. Запуска сеанса под другим пользователем за 6 секунд!:

.epf 6,68Kb
05.05.20
140
.epf 6,68Kb 140 Скачать бесплатно

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. json 2677 06.05.20 01:33 Сейчас в теме
Если база серверная, то может запускаться дольше 5 секунд.
В этом случае старый пароль вернется на место раньше, чем пользователь начнет входить.
Я на такое натыкался, когда делал подобную обработку.
Поэтому я сделал мониторинг текущих сеансов по обработке ожидания. Как только появился новый сеанс нужного пользователя, тогда откатываем пароль назад.
autosvg; cleaner_it; user1276813; feva; +4 Ответить
4. feva 407 06.05.20 08:06 Сейчас в теме
(1) Мне кажется, что время запуска растягивается после аутентификации, или ошибаюсь?
Ну как вариант - да. Для простаты решения сделал минимум движений. Если скините код мониторинга - будет только лучше )))
5. Rustig 1533 06.05.20 08:55 Сейчас в теме
(0) если пользователь заходит в 1с во время отладки, что произойдет с пользователем? что произойдет с вашим сеансом отладки?
6. feva 407 06.05.20 08:58 Сейчас в теме
2. Rustig 1533 06.05.20 06:17 Сейчас в теме
Сначала использовалось сие добро как внешняя обработка, но позже было внедрено на форму пользователя.

- на каком скриншоте это можно посмотреть, что именно видит пользователь?
3. feva 407 06.05.20 08:02 Сейчас в теме
(2)Перефразировал
Сначала использовалось сие добро как внешняя обработка, но позже было внедрено на форму элемента справочника "Пользователи", для оперативности запуска.
Мне кажется скриншот кнопки неуместен
7. nusv 41 06.05.20 11:36 Сейчас в теме
9. feva 407 06.05.20 12:21 Сейчас в теме
(7) ну, не у всех есть такая кнопка, люди качают- значит актуально
8. SerVer1C 259 06.05.20 11:40 Сейчас в теме
Тема очень старая и изъезженная. Странно, что вы не нашли информацию по данному вопросу. Немного дополню: <"QL0AFWMIX8NRZTKeof9cXsvbvu8=,QL0AFWMIX8NRZTKeof9cXsvbvu8="> - это 2 хеша паролей: от регистрозависимого и от пароля в нижнем регистре. Т. е. установив для пользователя пароль "ReGiStR", вы также сможете войти и под паролем "registr". 1С (так же как и сбер) заботится об удобстве бабушек пользователей и снижает секьюрность ))
user1276813; nusv; tormozit; feva; maxopik2; +5 Ответить
10. bmk74 152 06.05.20 13:27 Сейчас в теме
Только тут на инфостарте несколько обработок которые подменяют пароль на время запуска приложения, одна из первых моя, кстати код был подсмотрен в ИР..и просто переделан на управляемые формы...кстати в моей обработке пароль меняется обратно как только будет найден запущенный сеанс , что бы не ломать вход обычному пользователю...т.е пароль новый буквально на секунд 10-20 меняется...
11. kai068 4 07.05.20 08:36 Сейчас в теме
Если использовать Инструмент разработчика, то там можно вообще под любым пользователем без пароля зайти.
14. feva 407 12.05.20 13:06 Сейчас в теме
(11) Инструменты разработчика - кухонный комбайн который сварит кофе, сделает из пшена муку, запечет пирог и т.д. Какой смысл делать затраты на установку комбайна, если нужно взбить яйца венчиком для омлета.
12. capitan 1682 11.05.20 13:17 Сейчас в теме

Делаете у пользователя авторизацию ОС и подставляете имя пользователя компьютера
3 строки кода
13. feva 407 12.05.20 13:03 Сейчас в теме
(12) Как быт ьв том случае если у пользователя была ранее установлена авторизация ОС? Нужно поменять будет обратно на тот которые стоял ранее. А если авторизации ОС не было? Нужно будет вернуть значение обратно на "Ложь". Чем тогда принципиально отличается ваш предложенный метод от текущего? Тем что передернем не пароль, а параметры ОС
Спасибо
15. Cyberhawk 119 11.06.20 08:48 Сейчас в теме
(13) Отличие как минимум в том, что если аварийно упал сеанс, который уже подменил доменного пользователя, но не успел вернуть его обратно, то эту информацию в большинстве случаев можно восстановить, т.к. сопоставить имя пользователя ИБ и доменную учетку почти всегда легко.
А когда мы подменили хэш пароля у пользователя ИБ, то в случае падения старый пароль мы никак уже не вернем, если заранее отдельно о его сохранении не позаботились.
Оставьте свое сообщение

См. также

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

БСП (Библиотека стандартных подсистем) Информационная безопасность Роли и права v8 КА2 Россия УУ Бесплатно (free)

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

вчера в 13:48    203    ER34    0    

Изменение RLS в ЗУП 3.1 для ограничения доступа к списку сотрудников

Роли и права v8 v8::Права ЗУП3.x Россия Бесплатно (free)

При переезде из УПП в ЗУП 3.1 бизнесом было поставлено условие, система должна ограничивать видимость сотрудников по подразделениям организации. Позиция 1С по этому вопросу однозначна, так делать нельзя. Но с определенными оговорками и условиями можно...

10.07.2020    1514    Zhilyakovdr    0    

Права пользователя исключительно на просмотр (чтение) для УТ 11.4

Роли и права v8 v8::Права УТ11 Россия Бесплатно (free)

Простая и понятная инструкция по шагам для создания профиля группы доступа «Только чтение» для УТ 11.4. Выполняется в режиме пользователя, без использования конфигуратора и снятия базы с поддержки.

21.11.2019    5807    Aleksandr55555    7    

Типичные ошибки при разработке прав доступа

Роли и права v8 v8::Права Бесплатно (free)

Рассмотрим самые распространенные ошибки в разработке прав доступа.

02.10.2019    18700    YPermitin    57    

Проверка наличия роли у пользователя

Роли и права v8 v8::Права 1cv8.cf Бесплатно (free)

Допустим, мы добавили новую роль в конфигурацию. Потом добавили её в профиль группы доступа и назначили соответствующую группу доступа пользователю. Однако, в конфигурациях на основе БСП все известные программные проверки данной роли при включении пользователя в предопределенную группу доступа "Администраторы" не работают. В статье приведено решение данной задачи.

29.06.2019    15380    ni_cola    13    

Назад в прошлое! Небольшие заметки по администрированию пользователей в УПП

Роли и права v8 УПП1 Бесплатно (free)

Небольшие заметки по функционалу "Администрирование пользователей" конфигурации "Управление производственным предприятием" версии 1.3. Затрагиваются такие темы как: роли, профили доступа, дополнительные права, настройки пользователей и ограничения доступа на уровне записей (RLS).

06.06.2019    12949    YPermitin    18    

Подсистема БСП «Управление доступом», основные объекты и регистры

БСП (Библиотека стандартных подсистем) Роли и права v8 v8::УФ v8::Права 1cv8.cf Бесплатно (free)

Основные принципы работы подсистемы «Управление доступом» из состава БСП. Виды доступа, ограничение доступа на уровне записей. Описание основных объектов и регистров, используемых подсистемой.

23.05.2019    20664    ids79    9    

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

Практика программирования БСП (Библиотека стандартных подсистем) Роли и права v8 v8::Права Бесплатно (free)

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    36653    ids79    9    

Влияние настройки роли на потребление памяти

Роли и права v8::Права 1cv8.cf Бесплатно (free)

На днях разбирался с проблемой с потреблением памяти процессами конфигуратора и rphost. Как оказалось - причина в настройках ролей. Один поворот не туда, и настройки роли приводят к чрезмерному потреблению оперативки.

29.01.2019    13250    mickey.1cx    14    

Доработка RLS для УНФ

Роли и права v8::Права 1cv8.cf Бесплатно (free)

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

14.05.2018    15915    FesenkoA    7    

Управление доступом: роли, права, профили, группы доступа, функциональные опции, RLS

Роли и права v8::Права Бесплатно (free)

В 1С достаточно много механизмов, отвечающих за доступ к данным. Группы доступа, профили групп доступа, роли, права доступа, функциональные опции, RLS. Иногда сложно сразу понять, зачем все это нужно, как эти элементы друг с другом связаны и как ими пользоваться.

11.10.2017    88250    ekaruk    14    

Использование подсистемы "Управление доступом" из состава БСП версии 2.2+

Практика программирования БСП (Библиотека стандартных подсистем) Роли и права v8 1cv8.cf Бесплатно (free)

В статье описана последовательность манипуляций с подсистемой "Управление доступом" из библиотеки стандартных подсистем "1С" (БСП), результатом которых является реализация возможности настройки ограничения доступа к данным на уровне записей таблиц базы данных (RLS), применяя в качестве разграничителя доступа (критерия ограничения) любой из справочников конфигурации. Данная статья полезна для разработчиков, которые имеют дело либо с одной из типовых конфигураций "1С" (таких как "Бухгалтерия предприятие 3.0" или "Управление торговлей 11"), либо собираются внедрять (или дорабатывать) указанную выше подсистему в какую-либо другую конфигурацию.

18.11.2014    67177    Bassgood    84    

Распределение ролей пользователей к информационной базе для проверки аудиторами в типовых конфигурациях БП, ЗУП, ЗКБУ и БГУ.

Роли и права v8 1cv8.cf Россия Бесплатно (free)

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

13.05.2014    26543    OV_GCompany    5    

УТ 10.3 Контролируем остатки автоматически

Учет ТМЦ Роли и права v8 УТ10 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия УУ Бесплатно (free)

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

25.10.2012    17700    aleksxx    5    

Простое сравнение ролей 1С 8 (сравнение обработок, правил обмена XML, файлов txt, файлов mxl)

Роли и права v8 1cv8.cf Россия Бесплатно (free)

Порядок простых действий для казалось бы сложной операции по сравнению ролей в 1С8. Также можно сравнивать: - правила обмена данными XML - модули объектов в файлах txt - внешние обработки и отчеты - файлы формата mxl

18.08.2010    41306    sapervodichka    20