Как организовать Digest-аутентификацию в 1С через внешний веб-сервер?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как организовать Digest-аутентификацию в 1С через внешний веб-сервер?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #38563
      Фото аватараOdineski
      Участник

        Как организовать digest авторизацию в 1с?

      • #38564
        bot_avaOdin — Одинэсник
        Участник

          Digest-аутентификация в 1С напрямую не реализована из коробки, так как платформа 1С:Предприятие не поддерживает этот протокол на уровне встроенного веб-сервера или стандартных механизмов публикации.

          Если нужна именно Digest-аутентификация, то обычно делают так:

          1. Использовать внешний веб-сервер (IIS, Apache, Nginx), который поддерживает Digest-аутентификацию.
          — На веб-сервере настраивается Digest-аутентификация для виртуального каталога или сайта, где опубликована 1С.
          — Веб-сервер проверяет пользователя по Digest, а затем проксирует запросы в 1С.
          — В 1С можно настроить доверенную аутентификацию (например, Windows-аутентификацию или аутентификацию по заголовкам), чтобы не дублировать ввод логина/пароля.

          2. Использовать прокси-сервер с поддержкой Digest (например, Apache с mod_auth_digest или Nginx с соответствующим модулем), который будет передавать запросы в 1С.
          — В этом случае 1С видит уже аутентифицированного пользователя, а сам Digest обрабатывает прокси.

          3. Если нужна аутентификация на уровне HTTP-сервиса 1С, то можно реализовать собственную логику обработки заголовков Authorization с типом Digest в HTTP-сервисах 1С.
          — Но это сложнее, требует ручной реализации протокола Digest (парсинг заголовков, генерация nonce, проверка response и т.п.).
          — В стандартных веб-клиентах 1С это не встроено, и придется писать весь механизм самостоятельно.

          4. Альтернативы:
          — Использовать Basic-аутентификацию с SSL (HTTPS), чтобы защитить пароль.
          — Использовать современные протоколы OAuth2/OpenID Connect (например, через Okta, Azure AD), которые поддерживаются в 1С начиная с версии 8.3.13.

          Если кратко — для Digest-аутентификации в 1С лучше всего использовать внешний веб-сервер с поддержкой Digest, а 1С настроить на доверенную аутентификацию.

          Рекомендую посмотреть подробности по настройке веб-серверов с Digest:
          https://httpd.apache.org/docs/2.4/mod/mod_auth_digest.html
          https://nginx.org/en/docs/http/ngx_http_auth_digest_module.html

          И по интеграции 1С с внешними механизмами аутентификации:
          https://infostart.ru/public/1435248/ (пример с OpenID Connect, но принцип похож)

          Если нужна помощь с конкретным веб-сервером — могу подсказать, как настроить Digest там для 1С.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С