К статье
Практический материал

Администрирование · 12 мин

OpenID Connect в 1С: что это и как настроить

Что такое OpenID Connect в 1С, как работает аутентификация через внешнего провайдера, настройка публикации, типичные ошибки и проверка результата.

OpenID Connect (OIDC) — это протокол аутентификации, построенный поверх OAuth 2.0, который позволяет пользователю входить в приложение через внешнего провайдера идентификации вместо ввода логина и пароля самой системы. В контексте 1С это означает, что пользователь информационной базы может авторизоваться через корпоративный сервер аутентификации (например, Keycloak, Active Directory Federation Services или другой OIDC-провайдер), а 1С получает подтверждение личности в виде подписанного токена.

Платформа 1С:Предприятие поддерживает OpenID Connect как один из способов аутентификации наряду с парольной, аутентификацией операционной системы и сертификатами. Механизм работает для клиентских приложений, подключающихся к серверу 1С, и для веб-клиента, опубликованного на веб-сервере. Настройка выполняется на стороне публикации и в конфигураторе, а сам провайдер OIDC разворачивается и администрируется отдельно.

Тема актуальна для организаций, где уже действует единая точка входа (Single Sign-On): сотрудник один раз проходит аутентификацию в корпоративной системе и далее работает в 1С без повторного ввода пароля. Это снижает количество забытых паролей, упрощает блокировку доступа при увольнении и централизует политику безопасности.

Как работает аутентификация OpenID Connect в 1С

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

После успешной проверки провайдер возвращает платформе токен — подписанную структуру данных, содержащую идентификатор пользователя и дополнительные атрибуты (claims). Платформа проверяет подпись токена, срок его действия и извлекает идентификатор, по которому ищет соответствие в списке пользователей информационной базы. Если соответствие найдено, сеанс открывается от имени этого пользователя.

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

Что нужно подготовить перед настройкой

До начала настройки убедитесь, что выполнены базовые условия. Во-первых, должен быть развёрнут и доступен по сети OIDC-провайдер с поддержкой стандартных сценариев (authorization code flow). Во-вторых, версия платформы 1С:Предприятие должна поддерживать аутентификацию OpenID Connect — этот механизм появился не в самых ранних релизах, поэтому проверьте документацию к вашей версии платформы.

В-третьих, для веб-клиента потребуется публикация информационной базы на веб-сервере (Apache или IIS) с настроенным HTTPS: передача токенов по незашифрованному соединению недопустима, большинство провайдеров откажутся работать по HTTP. В-четвёртых, у вас должны быть административные доступы ко всем трём компонентам: провайдеру, веб-серверу и конфигуратору 1С.

На стороне провайдера потребуется зарегистрировать 1С как клиентское приложение: указать допустимые адреса перенаправления (redirect URI), получить идентификатор клиента и, если провайдер этого требует, секрет клиента. Эти параметры понадобятся при настройке публикации.

Настройка публикации и параметров провайдера

Для веб-клиента параметры OIDC указываются в файле публикации default.vrd, который лежит в каталоге публикации на веб-сервере. В нём описывается элемент, задающий адрес провайдера, идентификатор клиента и связанные параметры аутентификации. Точные имена атрибутов зависят от версии платформы, поэтому сверяйте синтаксис с документацией на ваш релиз.

Типовой фрагмент настройки в default.vrd выглядит примерно так (имена атрибутов приведены для иллюстрации структуры):

xml
<point name="OpenIDConnect" enable="true">
  <provider url="https://idp.example.com/realms/main" clientID="onec-client" clientSecret="SECRET"/>
</point>

После изменения default.vrd перезапустите веб-сервер, чтобы публикация перечитала настройки. Для Apache это команда перезапуска службы, для IIS — перезапуск пула приложений или команда iisreset. Без перезапуска старые параметры продолжат действовать, и вы будете отлаживать несуществующую конфигурацию.

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

Сопоставление пользователей провайдера и информационной базы

В карточке пользователя информационной базы (раздел администрирования или справочник пользователей в конфигураторе) указывается, что аутентификация выполняется через OpenID Connect, и задаётся идентификатор, по которому платформа будет искать соответствие. Обычно это значение одного из claims токена — чаще всего sub (уникальный идентификатор субъекта у провайдера) или предпочитаемое имя пользователя.

Практический порядок действий при добавлении пользователя:

Порядок действий
  1. 1
    Узнайте у администратора провайдера, какой claim используется как уникальный идентификатор (обычно sub)
  2. 2
    Откройте карточку пользователя в конфигураторе или в режиме предприятия
  3. 3
    Включите для пользователя аутентификацию OpenID Connect и укажите идентификатор из токена
  4. 4
    Назначьте пользователю роли и права в конфигурации
  5. 5
    Войдите под этим пользователем через OIDC и проверьте доступные функции

Если пользователей много, заводить их вручную трудоёмко. В таких случаях пишут обработку загрузки пользователей из выгрузки провайдера (через его API или файл) с автоматическим заполнением идентификаторов. Это уже задача разработки, и её сложность зависит от того, какие данные отдаёт конкретный провайдер.

Проверка результата и диагностика

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

Контрольные точки

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

Переход на страницу провайдера
Норма

При запуске клиента открывается форма входа провайдера по HTTPS

Тревожный признак

Сразу ошибка соединения или открывается стандартное окно пароля 1С

Возврат в 1С после входа
Норма

После ввода пароля у провайдера открывается сеанс под нужным пользователем

Тревожный признак

Ошибка redirect URI или циклические перенаправления

Сопоставление пользователя
Норма

Сеанс открыт от имени ожидаемого пользователя, роли применены

Тревожный признак

Отказ во входе при успешной аутентификации у провайдера

Технологический журнал
Норма

В журнале нет ошибок проверки подписи токена

Тревожный признак

Ошибки валидации токена, несовпадение audience или issuer

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

Типичные ошибки и ограничения

Типичные ошибки
01
Несовпадение redirect URI: адрес возврата, зарегистрированный у провайдера, не совпадает с фактическим адресом публикации — провайдер отклоняет запрос ещё до показа формы входа
02
Расхождение времени между серверами: токен проверяется по сроку действия, и при заметном рассинхроне часов валидный токен считается просроченным — настройте синхронизацию по NTP на всех серверах
03
Идентификатор из нестабильного claim: если сопоставление настроено по email, а пользователь сменил адрес, вход перестанет работать — надёжнее использовать неизменный sub
04
Отладка на рабочей базе: эксперименты с параметрами публикации на продуктивной публикации рвут сеансы всех пользователей — используйте тестовую копию

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

Ещё одно ограничение — поведение при истечении токена. Сеанс 1С и срок жизни токена провайдера живут по своим правилам; при настройке политик на стороне провайдера согласуйте их с ожидаемой длительностью рабочих сессий пользователей, чтобы не получить массовые повторные входы в середине рабочего дня.

Когда OIDC оправдан, а когда проще обойтись без него

Сравнение вариантов аутентификации

OpenID Connect

Подходит при наличии корпоративного провайдера и требований единого входа; требует развёртывания и сопровождения провайдера

Аутентификация ОС (доменная)

Простой вариант для доменной сети Windows без дополнительной инфраструктуры; не работает для внешних пользователей вне домена

Парольная аутентификация 1С

Самый простой вариант для небольших баз; пароли хранятся и администрируются отдельно в каждой базе

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

Маршрут решения

Как выбрать действие

В компании уже работает Keycloak, AD FS или другой OIDC-провайдерНастройте OIDC-аутентификацию для 1С по инструкции из документации платформы
Сеть доменная, все пользователи внутри домена, провайдера нетИспользуйте аутентификацию операционной системы — она проще и не требует новых компонентов
Пользователи внешние (контрагенты, удалённые точки) без доменаРассмотрите OIDC с публикацией по HTTPS либо отдельные парольные учётные записи с ограниченными ролями
Итог

Что важно запомнить

OpenID Connect в 1С — это вход через внешнего провайдера по подписанному токену. Настройка затрагивает провайдера, публикацию и карточки пользователей; права по-прежнему задаются ролями в конфигурации. Работайте только по HTTPS, сопоставляйте пользователей по стабильному идентификатору и оставьте резервную учётную запись с парольным входом.

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

Заменяет ли OpenID Connect роли и права в 1С?

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

Можно ли использовать OIDC для тонкого клиента, а не только для веб-клиента?

Да, платформа поддерживает OIDC-аутентификацию и для клиентских приложений, подключающихся к серверу 1С. Настройка в этом случае выполняется на уровне информационной базы, а не только в файле публикации. Точные шаги зависят от версии платформы, поэтому сверяйтесь с документацией на ваш релиз.

Что будет, если сервер провайдера недоступен?

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

Нужен ли HTTPS, если база работает только в локальной сети?

Да. Токены OIDC передаются между компонентами и при перехвате дают возможность войти под чужим именем. Кроме того, многие провайдеры отказываются работать с адресами перенаправления по HTTP. Выпустите сертификат для веб-сервера даже во внутренней сети — можно использовать внутренний центр сертификации организации.

Как узнать, какой идентификатор приходит в токене, для сопоставления пользователей?

Попросите администратора провайдера показать состав claims тестового токена — большинство провайдеров имеют встроенные средства просмотра выдаваемых токенов. Для сопоставления выбирайте неизменный идентификатор (обычно sub), а не email или отображаемое имя, которые могут меняться.

Можно ли для части пользователей оставить пароль, а части включить OIDC?

Да, способ аутентификации задаётся индивидуально в карточке каждого пользователя. Это удобно на период миграции: переводите пользователей на OIDC постепенно, не разрывая работу остальных.