Глобальный контекст.УстановитьМинимальныйСрокДействияПаролейПользователей

Методы · SetUserPasswordMinEffectivePeriod

Устанавливает минимальный срок действия паролей пользователей. Минимальный срок действия пароля не может превышать максимальный срок действия пароля.

Синтаксис

УстановитьМинимальныйСрокДействияПаролейПользователей(<МинимальныйСрокДействияПаролей>)
Полное описание, параметры и ограничения

Глобальный контекст.УстановитьМинимальныйСрокДействияПаролейПользователей (Global context.SetUserPasswordMinEffectivePeriod)

Глобальный контекст (Global context)

УстановитьМинимальныйСрокДействияПаролейПользователей (SetUserPasswordMinEffectivePeriod)

Доступен, начиная с версии 8.3.17.

Синтаксис:
УстановитьМинимальныйСрокДействияПаролейПользователей(<МинимальныйСрокДействияПаролей>)
Параметры:

<МинимальныйСрокДействияПаролей> (необязательный)
Тип: Число.
Минимальный срок действия пароля.
Значение по умолчанию: 0.
Описание:

Устанавливает минимальный срок действия паролей пользователей.
Минимальный срок действия пароля не может превышать максимальный срок действия пароля.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер, интеграция.

Использование в версии:

Доступен, начиная с версии 8.3.17.

Описание изменено в версии 8.3.24.

Методическая информация

Практические примеры

Изменить согласованную пару сроков пароля и вернуть исходные настройки

Показывается порядок операций при зависимых min/max: временно убрать минимум, задать максимум, затем минимум. Предупреждение читается и восстанавливается отдельно.

Где и как запускать

Полный модуль управляемой формы; серверный опыт min/max и предупреждения только в новом пустом стенде, без ожидания срока и аутентификации.

Подготовка

  1. Создайте с нуля отдельную пустую конфигурацию УчебнаяПарольнаяПолитика85 на платформе8.5.1.1343; управляемое приложение, без разделителей данных, расширений, обменов и подписок. Не переименовывайте рабочую базу под этот пример.

  2. Это административные настройки всей учебной информационной базы, не значения в локальной структуре. Только один заранее созданный учебный администратор с правом Администрирование; ни одного рабочего пользователя или рабочего пароля.

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

  4. Обработки → ОпытПарольнойПолитики85 → управляемая основная форма. Добавьте реквизит ПодтверждаюПустойСтенд типа Булево, исходно Ложь, и покажите его флажком. Для каждого урока используйте отдельную обработку либо целиком замените модуль формы.

  5. Добавьте команду с именем указанной клиентской процедуры, назначьте её действие и кнопку. Основной код — полный модуль формы; обе процедуры/функции уже показаны и не вставляются внутрь другого обработчика.

  6. Нажмите F7 и обновите только новый стенд. runtimeVerifiedScenarios=0: здесь примеры не запускались, пользователей и пароли не меняли; выполнены только статические проверки.

  7. Перед своим ручным запуском изучите весь блок восстановления. Исходные значения читаются до первой записи; после опыта восстанавливаются именно они, а не справочные значения по умолчанию.

  8. Установите флажок только после подготовки стенда. Клиент передаёт подтверждение, сервер повторно проверяет его. Это защита от случайного запуска, не универсальная авторизация для production.

  9. Не вводите и не выводите пароли. Код не создаёт пользователей, не вызывает проверку раскрытия конкретного пароля, не делает входов и не проверяет реальную реакцию диалогов аутентификации.

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

  11. Команда ПроверитьСроки85; исходная пара нового стенда должна быть неотрицательной и минимальный срок не выше максимального. Несогласованная пара отклоняется до записи.

&НаКлиенте
Процедура ПроверитьСроки85(Команда)
    Если Не ПодтверждаюПустойСтенд Тогда
        ВызватьИсключение "Подтвердите работу только в своём новом пустом стенде";
    КонецЕсли;
    Сообщить(ПроверитьСвоиСроки(ПодтверждаюПустойСтенд));
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПроверитьСвоиСроки(Подтверждение)
    Если ТипЗнч(Подтверждение) <> Тип("Булево") Тогда
        ВызватьИсключение "Нужно явное подтверждение нового пустого стенда";
    КонецЕсли;
    Если Не Подтверждение Тогда
        ВызватьИсключение "Только новый пустой стенд УчебнаяПарольнаяПолитика85 с отдельным согласием";
    КонецЕсли;
    ИсходныйМинимум = ПолучитьМинимальныйСрокДействияПаролейПользователей();
    ИсходныйМаксимум = ПолучитьМаксимальныйСрокДействияПаролейПользователей();
    ИсходноеПредупреждение = ПолучитьСрокПредупрежденияОбИстеченииСрокаДействияПаролейПользователей();
    Если ИсходныйМинимум < 0 Или ИсходныйМаксимум < ИсходныйМинимум Тогда
        ВызватьИсключение "Для этого опыта нужна исходная согласованная неотрицательная пара сроков нового стенда";
    КонецЕсли;
    ОшибкаОпыта = "";
    Попытка
        УстановитьМинимальныйСрокДействияПаролейПользователей(0);
        УстановитьМаксимальныйСрокДействияПаролейПользователей(60);
        УстановитьМинимальныйСрокДействияПаролейПользователей(30);
        УстановитьСрокПредупрежденияОбИстеченииСрокаДействияПаролейПользователей(10);
        Если ПолучитьМинимальныйСрокДействияПаролейПользователей() <> 30
            Или ПолучитьМаксимальныйСрокДействияПаролейПользователей() <> 60
            Или ПолучитьСрокПредупрежденияОбИстеченииСрокаДействияПаролейПользователей() <> 10 Тогда
            ВызватьИсключение "Учебная пара сроков или предупреждение не подтвердились";
        КонецЕсли;
    Исключение
        ОшибкаОпыта = ОписаниеОшибки();
    КонецПопытки;
    Попытка
        УстановитьМинимальныйСрокДействияПаролейПользователей(0);
    Исключение
        ОшибкаОпыта = ОшибкаОпыта + " Не снят промежуточный минимум: " + ОписаниеОшибки();
    КонецПопытки;
    Попытка
        УстановитьМаксимальныйСрокДействияПаролейПользователей(ИсходныйМаксимум);
    Исключение
        ОшибкаОпыта = ОшибкаОпыта + " Не восстановлен максимум: " + ОписаниеОшибки();
    КонецПопытки;
    Попытка
        УстановитьМинимальныйСрокДействияПаролейПользователей(ИсходныйМинимум);
    Исключение
        ОшибкаОпыта = ОшибкаОпыта + " Не восстановлен минимум: " + ОписаниеОшибки();
    КонецПопытки;
    Попытка
        УстановитьСрокПредупрежденияОбИстеченииСрокаДействияПаролейПользователей(ИсходноеПредупреждение);
    Исключение
        ОшибкаОпыта = ОшибкаОпыта + " Не восстановлено предупреждение: " + ОписаниеОшибки();
    КонецПопытки;
    Попытка
        Если ПолучитьМинимальныйСрокДействияПаролейПользователей() <> ИсходныйМинимум
            Или ПолучитьМаксимальныйСрокДействияПаролейПользователей() <> ИсходныйМаксимум
            Или ПолучитьСрокПредупрежденияОбИстеченииСрокаДействияПаролейПользователей() <> ИсходноеПредупреждение Тогда
            ВызватьИсключение "Исходные сроки ещё не восстановлены";
        КонецЕсли;
    Исключение
        ОшибкаОпыта = ОшибкаОпыта + " Проверка восстановления: " + ОписаниеОшибки();
    КонецПопытки;
    Если ОшибкаОпыта <> "" Тогда
        ВызватьИсключение ОшибкаОпыта;
    КонецЕсли;
    Возврат "Числовые настройки минимум30 и максимум60, предупреждение10 секунд проверены. Исходные сроки восстановлены. Истечение пароля не моделировалось.";
КонецФункции

Разбор по шагам

  1. Читаются фактические минимальный срок, максимальный срок и предупреждение. Исходная пара проверяется до первой записи.

  2. Первым устанавливается минимум0, чтобы прежний высокий минимум не мешал новому максимуму60. Затем ставится учебный минимум30, который не превышает60.

  3. Срок предупреждения устанавливается равным10 секундам; в справке этого метода единица измерения явно указана. Три значения проверяются повторным чтением.

  4. После опыта сначала снова снимается промежуточный минимум. Возвращаются исходный максимум, затем исходный минимум; этот порядок не создаёт временно неверную пару при восстановлении допустимого снимка.

  5. Предупреждение восстанавливается отдельно. Даже ошибка одного setter не отменяет попытки остальных; исходные и новые ошибки сохраняются.

  6. Последнее чтение подтверждает исходный снимок. Урок не ждёт истечения срока, не меняет системные часы и не выполняет повторного входа.

Как проверить результат

  1. Учебная пара30/60 согласована, а предупреждение10 подтверждается getter-методом.

  2. Снятие промежуточного минимума идёт до восстановления исходного максимума.

  3. Итоговая пара и предупреждение совпадают с прочитанными исходными значениями.

  4. В коде нет паузы, изменения часов или попытки принудительно просрочить пароль администратора.

Ожидаемый результат

Зависимые числовые параметры проверены и восстановлены; наступление срока пароля не моделируется.

На что обратить внимание

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

  2. Восстановление после обработанного исключения не гарантирует восстановление при падении процесса, отключении питания или потере соединения. Поэтому нужен отдельный пустой стенд, а не production.

  3. Каждая попытка восстановления независима, ошибки не замалчиваются. Даже успешное повторное чтение не превращает незавершённую миграцию пользовательских данных в откат.

  4. Значения этого опыта иллюстрируют API и проверки, а не рекомендуемую политику безопасности организации. Не переносите их как готовый стандарт.

  5. Проверка getter-методом доказывает только текущее значение настройки. Она не доказывает проверку конкретного пароля, историю ранее использованных паролей или реальный сценарий входа.

  6. В справочнике runtimeVerifiedScenarios=0. Перед самостоятельным использованием нужны F7 и контролируемый ручной опыт в собственном стенде; фактический запуск здесь не выполнялся.

  7. В установленной справке setter/getter минимального и максимального срока единица явно не уточнена. Числа30/60 здесь контрольные значения API, не рекомендация30/60 дней и не обещание измерения секунд; для предупреждения секунды указаны явно.

  8. Значение0 и его влияние на проверку срока нельзя трактовать универсально по одному числу. Этот урок использует0 только как промежуточное значение для согласованного порядка записей.

  9. Одновременная правка политики другим сеансом может сделать снимок устаревшим; исключите такие сеансы до опыта.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.