Настроить список имён и восстановление пароля
Эта настройка нужна администратору, если пользователи должны выбирать имя из списка или восстанавливать пароль до входа. Для обычного входа с известным именем и паролем она не обязательна.
Для готовящегося веб-ЛК 4.0.34. Нужны права администратора 1С и веб-сервера, работающая основная публикация и проверенная совместимость.
Подготовьте служебного пользователя
- В УИТ откройте «Администрирование → Настройки пользователей и прав → Профили групп доступа». Создайте профиль, содержащий только роль «Публичные методы API».
- В «Группах доступа» создайте группу с этим профилем.
- Создайте служебного пользователя, например
ApiPublic, с аутентификацией 1С и надёжным паролем, включите его только в подготовленную группу. Проверьте, что ему не назначены другие роли, в том числе наследуемые.
Пользователи кабинета под этой учётной записью не работают. Её пароль хранится только в защищённой конфигурации веб-сервера — не в config.json, URL или сообщении в поддержку.
Создайте отдельную публичную публикацию
Основной и публичный API должны вести в одну и ту же информационную базу. Для веб-ЛК, где оба адреса задаются в config.json, пример основного пути — /base/, публичного — /base-public/. Если этой же базой пользуется мобильное приложение, учитывайте его порядок: из /base/ оно вычисляет публичный адрес /base_public/hs/api_public/v2/. Для мобильного приложения настройте публикацию или маршрутизацию именно по вычисляемому адресу. Название каталога само по себе этого не гарантирует: проверьте строку подключения.
- Создайте отдельную папку публикации и подготовьте в ней
default.vrdна основе рабочей публикации. На IIS также нужен соответствующий файл публикацииweb.config— это файл публикации 1С, а неdeploy/iis/web.configстатического ЛК. - В
default.vrdизменитеbaseна путь публичной публикации. В строкеibсохраните подключение к той же базе и добавьтеUsr/Pwdслужебного пользователя. - В
httpServicesоставьте единственный сервис:
<httpServices>
<service name="APIПубличный" rootUrl="api_public" enable="true"/>
</httpServices>
Не переносите остальные HTTP-сервисы, веб-сервисы ws или OData: эта публикация доступна клиенту без предварительного входа. Ограничьте доступ к самому default.vrd, содержащему пароль.
В атрибуте ib серверной базы сохраняется такая форма записи; значения в верхнем регистре замените своими:
ib="Srvr="СЕРВЕР_1С";Ref="ИМЯ_БАЗЫ";Usr="ApiPublic";Pwd="ПАРОЛЬ_СЛУЖЕБНОГО_ПОЛЬЗОВАТЕЛЯ";"
Для файловой базы сохраните её существующее подключение File, не заменяйте его примером Srvr. Полный образец default.vrd есть в архиве, docs/Публичный API личного кабинета.md. Перед сохранением проверьте XML и экранирование кавычек; значение примера не является готовым паролем.
- На Apache настройте отдельные
Aliasи<Directory>для публичного каталога с обработчиком1c-applicationиManagedApplicationDescriptor, указывающим егоdefault.vrd. Используйте рабочую схему основной публикации, но измените адреса и пути. После проверки синтаксиса примените настройки. - На IIS преобразуйте публичную папку в приложение с пулом, совместимым с основной публикацией 1С. Разрешите анонимный доступ только для публичного приложения и отключите там проверки, требующие входа браузера. Аутентификацию основной публикации не меняйте. Учётные данные подключения к 1С уже находятся в
ib.
Включите нужные возможности в УИТ
Откройте «Администрирование → Сервис → Настройки параметров учёта → Личный кабинет → Вход и восстановление доступа». Включите нужные функции списка логинов и/или восстановления пароля. По умолчанию они могут быть выключены; список имён не обязателен для восстановления.
Для восстановления настройте системную отправку почты и почтовые адреса пользователей. В настройках восстановления проверьте параметры кода и письма. Испытайте получение письма только на согласованной тестовой учётной записи.
Подключите публичный адрес к кабинету
Запишите полный адрес публичного API в config.json. Затем проверьте список имён до входа, а восстановление — на согласованной тестовой учётной записи. Успешный список имён не подтверждает отправку писем.
Если после включения появляется отказ 401/403, проверьте отдельную публикацию и её служебного пользователя. Не расширяйте ему роли наугад. Пароль не помещают в файлы сайта и не пересылают поддержке.
Вернуться к подготовке базы и адресов. Первая версия этого порядка не установлена.