Как программно изменить пароль пользователю в 1С:Предприятие

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

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

Базовый способ: работа с объектом ПользовательИнформационнойБазы

Для управления учетными записями платформы предназначен менеджер ПользователиИнформационнойБазы. Свойство Пароль конкретного пользователя доступно только для записи. Это означает, что мы не можем прочитать сохраненный пароль (платформа хранит его в виде необратимого хеша), но можем перезаписать новым строковым значением.

Рассмотрим по шагам, как найти нужного пользователя и сменить ему пароль:

  1. Находим пользователя информационной базы по имени или уникальному идентификатору.
  2. Проверяем и при необходимости включаем флаг стандартной аутентификации АутентификацияСтандартная, иначе платформа проигнорирует заданный пароль при входе.
  3. Записываем новое значение в свойство Пароль.
  4. Вызываем метод Записать(), чтобы зафиксировать изменения в базе данных.

Посмотрим на пример программного кода:


УстановитьПривилегированныйРежим(Истина);

ИмяПользователя = "ИвановИИ";
НовыйПароль = "P@ssw0rd2024!";

ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя);

Если ПользовательИБ <> Неопределено Тогда
    ПользовательИБ.АутентификацияСтандартная = Истина;
    ПользовательИБ.Пароль = НовыйПароль;
    
    Попытка
        ПользовательИБ.Записать();
    Исключение
        ЗаписьЖурналаРегистрации("СменаПароля", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
    КонецПопытки;
КонецЕсли;

Важные ограничения и тонкости работы платформы

Проанализируем технические нюансы, с которыми сталкивается разработчик при автоматизации смены паролей:

  1. Права доступа: Для изменения настроек другого пользователя у текущего сеанса должно быть административное право платформы (Администрирование или АдминистрированиеДанных). При выполнении кода в фоновом или регламентном задании обязательно включаем УстановитьПривилегированныйРежим(Истина).
  2. Активные сеансы: Изменение пароля не прерывает текущую работу пользователя. Новый пароль потребуется только при следующем открытии программы. Если доступ требуется ограничить немедленно, активные сеансы необходимо завершать принудительно (например, через кластер серверов 1С).
  3. Синхронизация со справочником пользователей: В конфигурациях на базе БСП (Библиотеки стандартных подсистем) пользователи информационной базы тесно связаны с элементами справочника Пользователи. Прямая перезапись пароля в обход стандартных модулей может нарушить внутренние механизмы контроля безопасности или историю смены паролей. В типовых решениях рекомендуется задействовать методы соответствующих общих модулей подсистемы управления пользователями.
  4. Технологические учетные записи: При массовой смене паролей скриптом крайне важно исключать служебные учетные записи (пользователей регламентных заданий, обменов через Web- и HTTP-сервисы, интеграций по COM). Иначе все автоматические процессы предприятия перестанут функционировать.

Альтернативные и более безопасные подходы

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

  1. Аутентификация Windows (Active Directory): Перевод пользователей на доменную авторизацию (свойство АутентификацияОС) полностью снимает задачу управления паролями с 1С. Политика смены паролей, их сложность и блокировки централизованно управляются системным администратором в контроллере домена, исключая необходимость рассылок по почте.
  2. Встроенная политика сложности и срока действия паролей: В типовых решениях 1С предусмотрена штатная настройка политик паролей. Можно задать срок действия пароля (например, 30 дней) и минимальную сложность. В этом случае система сама заблаговременно предупредит пользователя и потребует ввести новый пароль при очередном входе.
  3. Флаг принудительной смены пароля при входе: Вместо генерации временного пароля администратор может установить признак обязательной смены пароля пользователем при следующем запуске базы. Это перекладывает генерацию секретной комбинации на самого пользователя и исключает передачу конфиденциальных данных по незащищенным каналам связи.
← На главную