Pull to refresh

Обработка временной или постоянной замены пароля Аутентификации 1С: Предприятия 8.2-8.3

Reading time2 min
Views17K
Простенькая обработка на управляемых и обычных формах под платформу 8.2-8.3, позволяющая сменить пароль Аутентификации 1С: Предприятия и вернуть обратно. Будет полезна администраторам, программистам, связанным с 1С.

Недавно столкнулся с проблемой, которая потребовала простенького решения. Собственно, проблему можно уместить в один вопрос: как помочь пользователю, не зная и не сбрасывая его пароль?

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

С развитием мобильной платформы и мобильных клиентов Аутентификация 1С: Предприятия становится «занята» пользователем, так как синхронизация проходит именно по ней. То есть не каждый пользователь захочет разглашать свои пароли или пользоваться тем паролем, что ему «назначили». Наша контора также все больше и больше подвязывается с мобильными клиентами. Вот тут и возник упомянутый ранее вопрос.

Я перерыл просторы интернета, нашел кучу описаловок как ломать пароли в файловой БД или в серверных версиях.
В случае с файловой версией не нужно ни каких прав достаточно установить программу просмотра файлов баз *.1CD и меняем пароли в таблице V8USERS. Стоит заметить, что пароли там хранятся не в чистом виде, а хранится хеш пароля. Собственно хеш неизвестного пароля меняется на хеш известного пароля. В случае серверных баз нужно знать логин администратора БД и там уже дело не хитрое поменять пароль. Но как объяснить пользователю ошибку аутентификации после таких взломов? Да и к чему такие трудности?

Нашел так же обработку, которая подбирает пароли при этом требует такие же права как и моя обработка. Ну подбирает пароль 123 или даже 123456 она быстро, а что если пароль настоящий? Она пишет около 90 дней буду подбирать. Это не в какие ворота! Может выйти такая ситуация, пока подбирали пароль, пользователь сменил пароль. Да еще и не 1 раз может сменить.

В общем предлагаю небольшую обработку, которая меняет хеш неизвестного пароля на хеш желаемого пароля, а затем подменяет обратно. Работает она как в Управляемых формах, так и под обычные формы. Может быть встроена через «дополнительные обработки и отчеты», процедура в модуль объекта с описанием обработки добавлена.



Ну или можно встроить через «Расширения конфигурации» — очень полезная возможность, на данный момент позволяет добавлять обработки и отчеты в конфигурацию не снимая ее с поддержки. То есть типовая конфигурация остается типовой даже при добавлении обработки.

Принцип работы:

По пользователю получаем хеш пароля.

//Пользователь элемент справочника Пользователи
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Пользователь.ИдентификаторПользователяИБ);
//СохраняемоеЗначениеПароля хранит хеш пароля
ПарольПользователя = ПользовательИБ.СохраняемоеЗначениеПароля;
//Имя хранит логин пользователя
ЛогинПользователя = ПользовательИБ.Имя;

Вводим желаемый пароль и получаем его хеш.



Меняем хеш пользователя на хеш желаемого пароля.



Входим в систему под новым паролем. Меняем все обратно.



Ссылка на скачивание обработки
Tags:
Hubs:
+6
Comments24

Articles