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

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

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

ONVIF_NOT_AUTHORIZED IP-Телефония и СКУД

ONVIF Ошибка NotAuthorized: сбой проверки WS-Security UsernameToken

Обновлено: 24.08.2026 · Официальная документация ↗
  • SOAP-запрос к веб-службе камеры завершается ошибкой <env:Value>env:Sender</env:Value> <ter:Value>ter:NotAuthorized</ter:Value>.
  • VMS/NVR не может получить RTSP-ссылку или профили через GetProfiles / GetStreamUri.
  • Логин и пароль в веб-интерфейсе камеры работают, но внешние интеграции отклоняются.

1. Причины ошибки ONVIF NotAuthorized

Ошибка авторизации спецификации ONVIF Core Specification генерируется в следующих случаях:

  • Некорректно рассчитан хеш PasswordDigest в заголовке WS-Security;
  • Рассинхронизация времени: Разница между таймстемпом в запросе (wsu:Created) и часами камеры превышает допустимое окно (обычно 5–30 секунд);
  • Учетная запись существует только в веб-интерфейсе, но не добавлена в базу пользователей ONVIF (характерно для Dahua/Hikvision/Uniview);
  • Некорректная генерация случайного числа Nonce (отсутствие Base64-кодирования или повторное использование Nonce).

2. Корректный расчет WS-Security PasswordDigest

По стандарту ONVIF формула дайджеста имеет вид:

Password_Digest = Base64( SHA-1( Raw_Nonce + Created_Timestamp + Password ) )

Пример корректного XML-заголовка авторизации:

<soapenv:Header>
  <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <wsse:UsernameToken>
      <wsse:Username>admin</wsse:Username>
      <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">LKjshdf8934kjshd89f=</wsse:Password>
      <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">bW9jaw==</wsse:Nonce>
      <wsu:Created>2025-01-15T12:00:00.000Z</wsu:Created>
    </wsse:UsernameToken>
  </wsse:Security>
</soapenv:Header>

3. Проверка синхронизации времени по протоколу NTP

Время в теге wsu:Created обязано быть представлено в формате UTC (Zulu Time). Выполните синхронизацию часов камеры и управляющего сервера по единому NTP-серверу.

4. Активация ONVIF и создание пользователя на камере

На современных устройствах Hikvision/Dhua протокол ONVIF по умолчанию отключен:

  1. Перейдите в веб-интерфейс камеры: Configuration -> Network -> Advanced Settings -> Integration Protocol;
  2. Установите флаг Enable ONVIF / Open Network Video Interface;
  3. Нажмите кнопку Add и создайте отдельного пользователя с уровнем прав Administrator или Media User.
💡 Практика специалистов: Всегда проверяйте соответствие таймзоны на камере. Если камера переведена в GMT+3, но время отправляется без суффикса 'Z' или со смещением локального времени вместо чистого UTC, камера вернет ошибку NotAuthorized.

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

Почему авторизация работает по HTTP Digest, но падает в ONVIF SOAP?

HTTP Digest авторизация управляется веб-сервером камеры, а ONVIF SOAP запросы обрабатываются отдельным демоном onvif-server со своей таблицей пользователей и строгой валидацией WS-Security.

Какая максимальная погрешность времени допускается стандартом ONVIF?

Большинство камер отклоняют запросы, если разница между меткой времени wsu:Created и внутренними часами камеры превышает ±10 секунд для предотвращения Replay-атак.

Нужно ли отправлять заголовок Security при каждом SOAP запросе?

Да, если не используется сессионный механизм на базе WS-Trust/OAuth, заголовок WS-Security UsernameToken со свежей меткой Created и новым Nonce должен присутствовать в каждом запросе.

Поддерживают ли камеры передачу пароля в открытом виде (PasswordText)?

По соображениям безопасности тип PasswordText в современных прошивках отключен по умолчанию и работает только поверх зашифрованного HTTPS соединения.

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