Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

1C-OIDC-INVALID-JWT 1С:Предприятие и СУБД

1С: Неверный токен JWT при аутентификации через OpenID (Invalid Signature / Token Expired)

Обновлено: 21.08.2026 · Официальная документация ↗

Структура токена JSON Web Token (JWT) и причины отклонения платформой 1С

При завершении аутентификации OpenID Connect провайдер (IdP) передает платформе 1С подписанный ID Token в формате JSON Web Token (RFC 7519), состоящий из трех частей, разделенных точками: Header.Payload.Signature. Платформа 1С выполняет криптографическую валидацию токена. Ошибка «Неверный токен JWT» (Invalid JWT Token / Signature Verification Failed / Token Expired) генерируется в следующих случаях:

  • Сбой подписи (Signature Mismatch): Токен подписан приватным ключом, публичная пара которого отсутствует в эндпоинте jwks_uri.
  • Истечение срока действия (Expired, exp): Текущее время сервера 1С опережает временную метку exp в payload токена.
  • Несоответствие аудитории (Audience, aud) или издателя (Issuer, iss): Значение iss в токене не совпадает в точности (байт-в-байт) с URL провайдера в default.vrd.

Бизнес-риски

Отказ в обслуживании доверенных пользователей, невозможность интеграции с корпоративными SSO-порталами, сбои при обработке API-запросов внешних мобильных клиентов.

Регламент валидации и исправления ошибок JWT в 1С

Сценарий 1: Проверка и декодирование JWT-токена в консоли

Для выявления некорректных клеймов перехватите и декодируйте входящий токен:

# Декодирование полезной нагрузки JWT через Python / CLI
python3 -c '
import sys, json, base64
token = sys.argv[1]
payload = token.split(".")[1]
# Коррекция base64 padding
payload += "=" * ((4 - len(payload) % 4) % 4)
print(json.dumps(json.loads(base64.b64decode(payload)), indent=2))
' "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTAwMDAwMDB9..."

Сценарий 2: Анализ полей токена и устранение расхождений

Проверьте соответствие полей спецификации 1С:

  • iss (Issuer): Должен совпадать с URL в default.vrd (например, https://idp.corp.local/realms/master). Ошибка в наличии или отсутствии закрывающего слэша / ломает строгую проверку строк!
  • aud (Audience): Обязан содержать значение clientId, сконфигурированное в 1С. В Keycloak настройте Client Scope $\rightarrow$ Audience Mapper.
  • exp и nbf: Проверьте синхронизацию часов сервера 1С и сервера IdP с точностью до секунды через NTP (chrony).

Сценарий 3: Настройка алгоритма подписи в Identity Provider (RS256 vs HS256)

Платформа 1С ожидает подпись токена асимметричным алгоритмом RS256 (RSA Signature with SHA-256) или ES256:

  1. В настройках клиента Keycloak перейдите в Fine Grain OpenID Connect Configuration.
  2. Убедитесь, что параметр ID Token Signature Algorithm установлен в RS256 (симметричный алгоритм HS256 платформой 1С не поддерживается для OIDC Discovery).

Типовые ошибки администраторов

  • Рассинхронизация времени серверов на несколько секунд: Если время на сервере 1С спешит на 5 секунд относительно IdP, токен считается «еще не наступившим» (nbf / Not Before error).
  • Ротация ключей JWKS без очистки кэша 1С: При смене ключей на стороне Keycloak сервер 1С кэширует старый набор ключей. Требуется перезапуск рабочего процесса rphost или пула веб-сервера.
Ошибки валидации токенов JWT и сертификатов в 1С?
Специалисты ITSTM настроят точную трансляцию claims, Audience Mappers в Keycloak и обеспечат надежную криптографическую валидацию токенов.
💡 Практика специалистов: При настройке проксирующих шлюзов API всегда следите за размером HTTP-заголовков. Если токен JWT перегружен десятками групп безопасности Active Directory (размер заголовка Authorization превышает 8 Кб), веб-сервер Apache/Nginx вернет ошибку 400 Bad Request (Request Header Or Cookie Too Large) еще до передачи запроса в модуль 1С.

Частые вопросы (FAQ)

Где сервер 1С берет публичные ключи для проверки подписи JWT?

Сервер 1С автоматически скачивает набор публичных ключей по адресу jwks_uri, указанному в документе .well-known/openid-configuration провайдера.

Что делать, если в токене отсутствует поле preferred_username?

В настройках мапперов клиента IdP добавьте User Property Mapper: Property = username, Token Claim Name = preferred_username, включите флаги Add to ID token и Add to access token.

Поддерживает ли 1С токены доступа в формате непрозрачных строк (Opaque Tokens)?

Нет, для аутентификации 1С требует строго валидный самодостаточный токен в формате JWT (JSON Web Token).

Как влияет параметр Token Expiration на активные сеансы пользователей в 1С?

Токен JWT проверяется только в момент инициализации пользовательского сеанса. После создания сеанса 1С поддерживает собственную сессионную куку.

Полезные материалы
Рекомендуем