Как исправить ошибку «Пользователь ИБ не идентифицирован» в версиях платформы 8.3.27 и 8.5.1?

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

Проблема с идентификацией пользователя информационной базы является одной из самых неприятных и трудноуловимых ошибок в последних релизах технологической платформы 1С:Предприятие (для оперативного реагирования на сбои можно использовать HTTP-сервис для перехвата штатных исключений) — есть решение для уведомлений об ошибках в Telegram. Особенно остро она проявилась в ветке 8.3.27 и экспериментальной 8.5.1. Ошибка «Пользователь ИБ не идентифицирован» прерывает работу пользователей в самый неподходящий момент, причем зачастую это происходит спонтанно. В рамках данной статьи мы подробно разберем природу этого явления, изучим зарегистрированные ошибки вендора и определим пошаговый алгоритм стабилизации системы.

Анализ технической природы ошибки

Давайте разберем, почему возникает это сообщение. В современных версиях платформы (начиная с 8.3.26) механизм аутентификации претерпел значительные изменения. Система стала более требовательной к передаче токенов безопасности между рабочими процессами кластера rphost и сервисом сеансов (подробнее о механизмах читайте в статье про Access и Refresh токены в 1С). Проанализируем ситуацию: когда пользователь подключается к базе, кластер создает сессию и привязывает её к конкретной записи в таблице v8users. Однако из-за ошибок в коде платформы при переключении между узлами кластера или обновлении кеша сеансов связь «сессия — пользователь» разрывается. Система видит активное соединение, но не может сопоставить его ни с одним пользователем, что и приводит к ошибке идентификации.

Ситуация осложняется в многосерверных конфигурациях. Если сервис сеансов (Session Service) и сервис управления пользователями распределены по разным рабочим серверам, микрозадержки в синхронизации данных приводят к тому, что один узел считает пользователя авторизованным, а другой — уже нет. В таких случаях может помочь механизм ограничения количества сеансов для контроля нагрузки на сервис — есть готовая обработка для управления сеансами пользователей.

Официально зарегистрированные ошибки (Bug Reports)

Для системного администратора и разработчика важно понимать, с чем именно они имеют дело. В последних релизах 1С зафиксировано несколько ключевых багов, связанных с этой проблемой. Рассмотрим их подробнее:

  1. Ошибка № 60028589: Исправлена в версии 8.3.27.1989. Касалась общих механизмов технологической платформы.
  2. Ошибка № 70139365: Исправлена в версии 8.3.27.2074. Была связана с регрессией в механизмах безопасности.
  3. Ошибка № 70122275: Проблема, которая затрагивает ветки 8.3.26, 8.3.27.1964 и 8.5.1.1236.

Как мы видим, вендор постоянно выпускает исправления, но ошибка периодически возвращается в новых сборках. Это указывает на глубокую переработку ядра платформы в ветке 8.5.1.

Вариант 1: Обновление платформы до стабильных релизов

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

Вариант 2: Тонкая настройка публикации (default.vrd)

Если ошибка возникает преимущественно у пользователей веб-клиента или при работе через мобильные приложения (особенно если вы использовали скрипт для автоматической установки Apache), нам необходимо обратить внимание на файл default.vrd. В новых версиях платформы изменились требования к параметрам аутентификации. Выясним, как это настроить.

Проверьте наличие параметра renew="true" в секции аутентификации. Этот параметр отвечает за корректное обновление идентификационных данных при истечении времени жизни токена. Пример структуры секции аутентификации в файле публикации:


<point xmlns="http://v8.1c.ru/8.2/virtual-resource"
       base="/YourBaseName"
       ib="Srvr=&quot;ServerName&quot;;Ref=&quot;BaseName&quot;;">
    <authentication renew="true" />
</point>

Добавление этого параметра заставляет платформу инициировать повторную проверку личности пользователя вместо того, чтобы просто сбрасывать сессию с ошибкой «не идентифицирован».

Вариант 3: Настройка требований назначения объектов в кластере

Разберем ситуацию, когда кластер состоит из нескольких рабочих серверов. Часто проблема кроется в «рассинхроне» между узлами. Чтобы исключить этот фактор, мы можем попробовать закрепить критически важные сервисы за центральным сервером.

Выполните следующие шаги в консоли администрирования кластера (MMC или через утилиту ras) (удобнее через обработку для онлайн-администрирования кластеров):

  1. Откройте свойства вашего кластера и перейдите в раздел «Требования назначения объектов».
  2. Создайте новое требование для объекта «Сервис сеансов» (Session Service).
  3. Установите тип требования «Назначать» и укажите конкретный рабочий сервер (желательно центральный).
  4. Аналогичное действие рекомендуется выполнить для сервиса управления пользователями.

Таким образом, все данные об идентификации будут консолидированы в рамках одного процесса rmngr, что минимизирует вероятность потери данных о пользователе при передаче между процессами.

Вариант 4: Проверка регистра имен пользователей и внешней аутентификации

Проанализируем еще одну неочевидную причину. В тестовых сборках 8.3.27 выявлена повышенная чувствительность к регистру имен при использовании доменной авторизации (Active Directory). Если в 1С пользователь заведен как Ivanov, а в ОС он авторизован как ivanov, в определенные моменты (например, при обращении к серверным вызовам через BackgroundJobs) сопоставление может дать сбой.

Рекомендация: Приведите имена пользователей в списке 1С в полное соответствие с именами в Active Directory, включая регистр символов. Также стоит временно отключить OpenID-аутентификацию, если она используется, для проверки стабильности системы без этого прокси-слоя.

Профилактические меры и «чистка» системы

Если вышеуказанные методы не помогают оперативно, рассмотрим методы «ручной» очистки системы, которые часто помогают снять остроту проблемы:

  1. Очистка сеансовых данных: На сервере приложений необходимо остановить службу 1С и очистить содержимое папки snccntx, которая находится в каталоге данных кластера (обычно внутри папки reg_1541). Там хранятся временные данные сеансов, которые могут быть повреждены.
  2. Тестирование и исправление: Запустите процедуру «Тестирование и исправление» в конфигураторе. Нас интересует флаг «Проверка логической целостности». Это позволит восстановить целостность внутренней таблицы v8users, если в ней возникли ошибки после некорректного обновления платформы.
  3. Пересоздание пользователя: В исключительных случаях, если ошибка преследует только одного конкретного сотрудника, попробуйте удалить его из списка пользователей ИБ и создать заново. Это принудительно обновит его внутренний уникальный идентификатор (UUID).

Подводя итог, можно сказать, что ошибка «Пользователь ИБ не идентифицирован» — это комплексная проблема, связанная с эволюцией платформы. Сочетание обновления на последние корректирующие релизы (например, 8.3.27.2130) и правильная настройка параметров публикации renew="true" в большинстве случаев позволяют победить это «зло».

← На главную