Перейти к основному содержимому

Настройка восстановления пароля в личном кабинете

Статья для администратора. Она описывает, как разрешить пользователям нового личного кабинета (далее — ЛК) самостоятельно восстанавливать забытый пароль: код подтверждения приходит на электронную почту из карточки пользователя, после ввода кода пользователь задаёт новый пароль. Инструкция для самих пользователей — в статье Как восстановить и сменить пароль.

Важно!

Восстановление пароля в новом ЛК работает в связке с веб-частью ЛК и становится доступно после выхода её обновления — веб-часть обновляется отдельно от конфигурации. Настройки в 1С можно подготовить заранее. Страница восстановления пароля старого ЛК от веб-части не зависит, см. раздел Старый личный кабинет.

Как это устроено​

Настройка начинается в общем разделе программы: Администрирование → Сервис → Настройки параметров учета → Личный кабинет → Вход и восстановление доступа. Здесь находятся оба флажка и ссылка на параметры восстановления. Открывать форму старого личного кабинета для этой настройки не нужно.

Что настраиваетсяГдеЗа что отвечает
Два флажкаГруппа Вход и восстановление доступа на странице Личный кабинетРазрешено ли восстановление пароля через API и показывать ли список логинов на странице входа
Параметры кода и шаблон письмаСсылка Настройки восстановления паролей в той же группе открывает штатную формуДлина кода, минимальное время между повторными запросами, допустимое число неудачных попыток, тема и шаблон письма

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

При первом появлении этих настроек оба выключателя выключены. Для восстановления пароля включите Разрешить восстановление пароля через API. Показ списка логинов включается отдельно и для восстановления не требуется.

Предварительные настройки​

  • Вы работаете с полными правами: форма Восстановление паролей доступна только полноправному пользователю, и только он может менять выключатели ЛК.
  • Настроена системная учётная запись электронной почты — письма с кодом уходят с неё. Как её настроить, описано в статье Учетные записи электронной почты.
  • У пользователей, которым нужно восстановление, в карточке указан адрес электронной почты. Письмо уходит только на этот адрес.
  • Для нового ЛК опубликована вторая публикация информационной базы — см. Публичные методы API (вторая публикация). Без неё новый ЛК не сможет вызвать методы восстановления: они работают без входа пользователя.

Инструкция​

Шаг 1: настройте форму «Восстановление паролей»​

Путь: Администрирование → Сервис → Настройки параметров учета → Личный кабинет → Вход и восстановление доступа → Настройки восстановления паролей

Ссылка открывает штатную форму «Помощь и восстановление паролей при входе». Числовые параметры и шаблон письма редактируются в этой форме; флажки разрешения восстановления через API и показа логинов остаются в группе Вход и восстановление доступа.

  1. Включите флажок Отображать гиперссылку "Забыли пароль?". Пока он снят, ЛК работает со встроенными значениями (см. раздел Когда форма не применяется).
  2. В поле Восстанавливать пароль выберите по электронной почте. Вариант переходом по ссылке для ЛК не используется.
  3. В поле Способ отправки письма выберите любой из вариантов: Стандартный сервис, Настройки почты или Указанный почтовый сервер. Для ЛК выбор не важен: письмо всегда уходит с системной учётной записи электронной почты. Платформа лишь проверяет, что для выбранного варианта заполнены его параметры.
  4. В группе Код подтверждения задайте длину кода, минимальное время между повторными запросами и допустимое число неудачных попыток (допустимые значения — в таблице ниже).
  5. При необходимости измените тему и текст письма, см. раздел Шаблон письма.
  6. Нажмите Записать и закрыть.
Эти настройки использует и сама платформа

Форма Восстановление паролей управляет и штатным диалогом входа в программу «1С:Предприятие». Правила там немного другие: например, после исчерпания попыток платформа требует запросить новый код. В ЛК действуют правила, описанные в этой статье.

Какие значения берутся из формы​

Каждое значение проверяется отдельно. Если значение не подходит, для него используется встроенное значение, остальные значения при этом применяются. Значение не «подтягивается» к ближайшей границе, а заменяется встроенным: например, при длине кода 51 код будет состоять из 6 символов, а длина 40 применяется без изменения.

Поле формыНа что влияет в ЛКДопустимые значенияВстроенное значение (если вне границ или не целое число)
Длина генерируемого кодаКоличество символов в кодецелое от 6 до 506
Минимальное время между повторными запросамиНе чаще чем раз в указанное число секунд пользователь может получить новый кодцелое от 30 до 3600 секунд180 секунд
Допустимое количество неудачных попыток вводаСколько раз подряд можно ввести неверный код до блокировкицелое от 1 до 103
ТемаТема письма с кодомлюбой текст; пустая тема заменяется встроенной — «Смена пароля в личном кабинете.»встроенная тема
Текст сообщенияТело письмалюбой текст, содержащий метку &VerificationCodeбез этой метки шаблон не применяется, письмо уходит встроенным простым текстом

Что стоит учесть:

  • Справка к форме называет допустимой длиной кода диапазон от 8 до 50 символов, а ЛК принимает длину от 6 до 50. Значения, которые форма допускает, ЛК использует без изменений; если длина задана иначе (например, в обход формы), в ЛК код будет состоять из 6 символов.
  • Поле минимального времени между запросами в форме трёхзначное, поэтому на практике доступно не больше 999 секунд.
  • Нулевые значения не применяются: ноль в любом из трёх числовых полей заменяется встроенным значением.
  • Изменения применяются со следующего запроса кода, перезапуск не нужен. Код, который уже выдан, остаётся действующим и после смены длины; число попыток и интервал считаются по текущим значениям формы.

Шаблон письма​

Тема и текст письма редактируются в группе Шаблон сообщения с кодом восстановления пароля. Текст может содержать форматирование и картинки — это обычный форматированный документ.

Метки вставляются в текст кнопкой Вставить параметр, а в поле Тема — командой Вставить параметр из контекстного меню поля:

КнопкаМеткаЧто подставляется в письмо
Код подтверждения&VerificationCodeКод. Метка обязательна: без неё шаблон не применяется
Имя пользователя&UserPresentationИмя пользователя
Наименование конфигурации&ApplicationPresentationНазвание программы

Команда Установить стандартный текст возвращает стандартное содержимое того поля, в котором стоит курсор: стандартный текст письма или стандартную тему.

Если вы ни разу не меняли шаблон, после записи формы в настройках сохраняется стандартный текст платформы, и именно он уйдёт в ЛК:

Тема: Восстановление пароля

Здравствуйте, имя пользователя. Мы получили запрос на восстановление пароля от название программы. Введите код код для сброса пароля. Если восстановление пароля не запрашивалось, сообщите об этом техническому специалисту.

Тема и текст доступны для правки не при всех способах отправки

Поля Тема и Текст сообщения доступны только при вариантах Настройки почты и Указанный почтовый сервер; при варианте Стандартный сервис группа с шаблоном скрыта. Чтобы изменить шаблон, временно выберите один из этих вариантов, внесите правки и запишите форму. Для варианта Настройки почты платформа потребует выбрать учётную запись и проверит, что она настроена для отправки (можно указать ту же системную учётную запись), для варианта Указанный почтовый сервер — заполнить сервер SMTP, пользователя, пароль и отправителя. Эти данные ЛК не использует. Уже записанный шаблон остаётся в настройках и применяется при любом из трёх способов отправки по почте.

Особенности шаблона:

  • Значения подставляются в письмо как обычный текст: если имя пользователя содержит символы разметки, они не превращаются в теги разметки.
  • Письмо уходит одной HTML-частью, без отдельной текстовой версии.
  • Картинки из шаблона форма встраивает прямо в письмо (в виде данных data:), а не прикладывает файлами. Часть почтовых клиентов такие картинки не показывает — не делайте на них смысловую нагрузку.

Что из формы не используется​

  • Параметры отправки: Стандартный сервис, учётная запись в поле Почта, Сервер SMTP, порт, шифрование, пользователь, пароль и отправитель. Письмо всегда уходит с системной учётной записи электронной почты, предупреждения формы о стандартном сервисе или Интернет-поддержке на ЛК не влияют.
  • Адрес страницы восстановления пароля (вариант переходом по ссылке) и гиперссылка помощи.
  • Срок жизни кода и срок блокировки — они зафиксированы в программе, форма их не меняет:
    • код действует 15 минут с момента отправки;
    • после исчерпания попыток ввод кода блокируется на 180 секунд. При этом код не аннулируется: когда блокировка закончится, можно ввести тот же код (если не прошло 15 минут). Пока блокировка активна, новый код получить нельзя.

Когда форма не применяется​

Если флажок Отображать гиперссылку "Забыли пароль?" снят либо выбран вариант переходом по ссылке, ЛК игнорирует все значения формы и работает со встроенными: код из 6 символов, повторный запрос не чаще чем раз в 180 секунд, 3 попытки ввода и встроенное письмо — простой текст с темой «Смена пароля в личном кабинете.».

Шаг 2: включите выключатели ЛК​

Путь: Администрирование → Сервис → Настройки параметров учета → Личный кабинет → Вход и восстановление доступа

В группе Вход и восстановление доступа расположены два флажка и ссылка Настройки восстановления паролей. Оба флажка по умолчанию выключены; перенос из прежней формы ЛК сохраняет уже записанные значения.

ФлажокЧто включаетЧто происходит, пока флажок выключен
Разрешить восстановление пароля через APIДва метода восстановления: запрос кода на почту и установка нового пароля по кодуОба метода отвечают ошибкой «Восстановление пароля через API отключено» (код ВосстановлениеПароля.Отключено), новый ЛК не может восстановить пароль
Показывать список логинов через APIМетод со списком логинов для подсказки в поле логина на странице входаМетод возвращает пустой список; ЛК предлагает вводить логин вручную

После изменения нажмите Применить, чтобы сохранить настройки, либо OK, чтобы сохранить их и закрыть форму.

Что важно знать о выключателях:

  • Менять и записывать их может только пользователь с полными правами. Если общая форма доступна пользователю без полных прав, эти флажки доступны только для чтения, а ссылка Настройки восстановления паролей недоступна.
  • Выключатели не попадают в выгрузку и загрузку настроек ЛК: при переносе настроек на другую базу включите их на новой базе заново.
  • Выключатель восстановления не затрагивает смену пароля вошедшим пользователем (POST /v2/password-change) — она работает всегда.
  • Старый ЛК выключателями не управляется.

В прежней форме Администрирование → Личный кабинет этих двух флажков больше нет. Она по-прежнему используется для настройки страниц, локализации и собственной авторизации старого ЛК.

Прежде чем включать список логинов

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

Перед включением проверьте флажок Показывать в списке выбора у всех учётных записей, в том числе у клиентов, внешних сотрудников и пользователей, импортированных из Active Directory. Проверьте и учётную запись второй публикации: назначение служебной роли само по себе не означает, что у неё установлен признак служебного пользователя. Если пользователей ИБ с флажком списка и стандартной аутентификацией больше 300, список возвращается пустым ещё до исключения служебных, недействительных и помеченных на удаление пользователей. Список не усекается.

Шаг 3: опубликуйте вторую публикацию​

Методы восстановления и список логинов вызываются без входа пользователя, поэтому ЛК обращается к ним через отдельную публикацию информационной базы со служебным пользователем. Как её настроить на Apache и IIS — в статье Публичные методы API (вторая публикация).

Проверка​

  1. Убедитесь, что у тестового пользователя в карточке указан адрес электронной почты, а выключатель Разрешить восстановление пароля через API включён.
  2. Запросите код для этого пользователя — из ЛК (когда выйдет обновление веб-части) или запросом к API, см. Публичные методы входа и восстановления пароля.
  3. Проверьте письмо: тема и текст соответствуют шаблону, код имеет заданную длину.
  4. Введите неверный код столько раз, сколько указано в поле допустимого числа попыток. Следующая попытка, даже с верным кодом, будет отклонена: включилась блокировка на 180 секунд.
  5. Если меняли значения формы только для проверки, верните их обратно.

Рекомендации​

  • Ограничьте частоту запросов к адресам /hs/api_public/* средствами веб-сервера или обратного прокси (например, по числу запросов с одного IP-адреса). Эти методы работают без входа. Программа не даёт одному пользователю получать код чаще заданного интервала, но не ограничивает количество обращений с одного адреса.
  • Не удаляйте метку &VerificationCode из текста письма: без неё шаблон не применяется и пользователь получит встроенный текст.
  • Не рассчитывайте на картинки в письме: часть почтовых клиентов их не показывает.
  • Используйте HTTPS для обеих публикаций: по ним передаются пароли и коды.

Если настройки не применились​

Ответ на запрос кода всегда одинаковый (это сделано намеренно, чтобы нельзя было выяснить, существует ли пользователь), поэтому по ответу причину не определить. Ориентируйтесь на письмо.

Что вы видитеВозможная причинаЧто сделать
Приходит письмо простым текстом («Запрошено изменение пароля… Код: …») вместо вашего шаблонаВ тексте нет метки &VerificationCode (тема при этом берётся из формы)Вставьте метку кнопкой Код подтверждения и запишите форму
Тема письма «Смена пароля в личном кабинете.»Флажок Отображать гиперссылку "Забыли пароль?" снят, либо выбран вариант переходом по ссылке, либо поле Тема пустоеПроверьте форму Восстановление паролей
Код короче или длиннее, чем в формеДлина вне диапазона 6–50 — применена встроенная (6)Задайте значение от 6 до 50
Повторное письмо можно получить через 180 секунд, а не через заданное времяЗначение вне диапазона 30–3600Задайте значение от 30 до 3600
Блокировка наступает после третьей попытки, а не после заданнойЗначение вне диапазона 1–10Задайте значение от 1 до 10
Форма настроена верно, но письмо всё равно встроенноеПрограмма не смогла прочитать платформенные настройки (например, служебной учётной записи второй публикации не хватает прав на их чтение)Обратитесь в поддержку и сообщите, какая учётная запись указана в публикации

Если письмо не приходит совсем, проверьте:

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

Старый личный кабинет​

Страница восстановления пароля старого ЛК (Забыли пароль? на странице входа) выключателями ЛК не управляется и работает независимо от веб-части. Но код выдаётся тем же механизмом, поэтому старый ЛК получает те же длину кода, минимальное время между запросами, число попыток и шаблон письма. Подробнее о странице — в статье Как восстановить и сменить пароль.

В текстах старого ЛК срок блокировки всегда указан как «180 секунд» (он не настраивается), а время до следующего запроса кода берётся из текущей настройки.

Частые вопросы​

Можно ли получить код не на почту, а, например, по SMS?​

Нет. Код отправляется только на адрес электронной почты из карточки пользователя.

Можно ли изменить срок действия кода или время блокировки?​

Нет. Код действует 15 минут, блокировка после исчерпания попыток длится 180 секунд. Эти значения зафиксированы в программе.

Пользователь вводит неверный код, и платформа просит запросить новый. В ЛК так же?​

Нет. В ЛК после исчерпания попыток ввод блокируется на 180 секунд, а затем можно ввести тот же код, пока он не истёк по сроку. Новый код пользователь может запросить после окончания блокировки и если прошло минимальное время между запросами.

Ограничения​

  • Требуемые права: полные права для формы Восстановление паролей и для выключателей ЛК.
  • Восстановление работает только через электронную почту и только для пользователей со стандартной аутентификацией, не служебных, не недействительных и без запрета изменения пароля. Если в форме Восстановление паролей включена отправка кода на почту, дополнительно учитывается флажок Пользователю запрещено восстанавливать пароль из карточки пользователя.
  • Новый пароль должен соответствовать политике паролей программы; её задаёт администратор в разделе Настройки входа (см. Настройки пользователей и прав).
  • Срок жизни кода (15 минут) и срок блокировки (180 секунд) не настраиваются.
  • Для работы в новом ЛК нужны вторая публикация и обновлённая веб-часть ЛК.