Ваш браузер устарел, не поддерживает современные веб-стандарты и представляет угрозу Вашей безопасности. Для комфортной работы с порталом, пожалуйста, установите современыый браузер.
Портал технической поддержки

Поддержка протокола kerberos в версии WebClient 5.4 для сквозных ссылок - как?

С ответом

Комментарии

Комментариев: 7

  • Avatar
    Денис Елхов

    Артем, добрый день и спасибо за вопрос.

    Вероятно речь идет про WebClient 10 для платформы Docsvision 5.4.
    Я уже видел, что вы обращались к нам в техническую поддержку с этим вопросом.
    Действительно, протокол kerberos не поддерживается в WebClient 10. Однако это справедливо и для всех последних версий: 11, 12, 13, 14. 

    Мы начнем исследование этого вопроса для версии WebClient 15.
    Так как механизм аутентификации не сильно изменился, то есть большая вероятность безболезненного переноса на версию WebClient 10.

    Здесь я буду держать вас в курсе исследований.

    0
    Действия с комментариями Постоянная ссылка
  • Денис, понятно.

    Последнюю версию WebClient мы еще не запустили в эксплуатацию. Тем не менее на тестовом стенде обнаружили, что можно вместо Form воспользоваться windows аутентификацией. В этом случае администраторам удается настроить сквозной вход из вне.

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Денис Елхов

    Артем, спасибо за ответ.

    С самого начала WebClient поддерживает аутентификацию через Windows и Forms.
    Windows - используется по умолчанию, Forms - в случае если аутентификация через Windows не прошла или требуется вход из-под другой учетной записи.
    В IIS должны быть включены только анонимная и аутентификация с помощью форм, но это не значит, что windows аутентификация выключена. Она включает через локации Web.config файла.

    Эта схема не менялась между 10 и 14 версией, поэтому, если вам удалось настроить тестовый сервер WebClient 14 на одинаковую работу внутри и снаружи, то и WebClient 10 это тоже должен поддерживать.

    С уважением, Денис.

    0
    Действия с комментариями Постоянная ссылка
  • Денис, спасибо за информацию.

    Для 14 версии в настройках сайта можно отключить тип аутентификации Form, включить Windows и все будет работать.

    В 10 версии такой ход не удался. Верно ли, что поведение самом деле зависит от настроек в web.config ? Если это так - отличное открытие для нас )

    Подскажите, какое значение в конфиге нужно поменять?

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Денис Елхов

    Артем, я сравнил конфигурационные файлы для 10 и 14 версии.
    Единственное отличие в 14 версии добавилось configuration/system.webServer/security добавилось следующее:

    <authentication>
    <anonymousAuthentication enabled="true" />
    <windowsAuthentication enabled="false" />
    <basicAuthentication enabled="false" />
    </authentication>

    Возможно это повлияло на поведение в случае изменений настроек через IIS.

    Однако, я не рекомендую менять настройки в IIS. Там должны быть выбраны аутентификации: анонимная и через формы.

    Работает это так:
    Если у пользователя нет cookie определяющие пользователя, то срабатывает редирект на Account/LoginWindows. Это происходит за счет комбинации настроек IIS (аутентификация с помощью форм) и элементов в web.config:

    <authorization>
    <deny users="?"/>
    </authorization>
    <authentication mode="Forms">
    <forms loginUrl="~/Account/LoginWindows" timeout="2880" />
    </authentication>

    Далее срабатывает элемент конфигурационного файла:

    <location path="Account/LoginWindows">
    <system.web>
    <authorization>
    <deny users="?"/>
    <allow users="*"/>
    </authorization>
    </system.web>
    <system.webServer>
    <security>
    <authentication>
    <anonymousAuthentication enabled="false"/>
    <windowsAuthentication enabled="true"/>
    </authentication>
    </security>
    </system.webServer>
    </location>

    После срабаывает Windows-аутентификация NTLM и/или Kerberos (в порядке и зависимости от настроек сайта выше по уровню)

    Если Windows-аутентификация не завершилась успехом, то на уровне кода возращается код ошибки 401 и редирект на Account/Login, где в свою очередь срабатывает другой элемент конфигурационного файла:

    <location path="Account/Login">
    <system.web>
    <authorization>
    <allow users="*"/>
    </authorization>
    </system.web>
    <system.webServer>
    <security>
    <authentication>
    <anonymousAuthentication enabled="true"/>
    <windowsAuthentication enabled="false"/>
    </authentication>
    </security>
    </system.webServer>
    </location>


    С уважением,
    Денис Елхов

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Денис Елхов

    Артём, добрый день.

    Мы протестировали следующую версию Веб-клиент 15 на работу только через Kerberos и получили положительные результаты.

    Здесь я выложу часть документации администратора, которая может подойти для всех версий Веб-клиента начиная с 10.

    НАСТРОЙКА АУТЕНТИФИКАЦИИ KERBEROS

    1. Настройте Service Principal Names для учетной записи пула приложений Wеb-клиента. Для этого от имени администратора домена выполните команды:
      Setspn /s HTTP/webc company\webuser
      Setspn /s HTTP/webc.company.com company\webuser

      Здесь: «webc» и «webc.company.com» нужно заменить на имя и полное сетевое имя сервера Web-клиента, «company\webuser» – заменить на имя учётной записи, под которой работает пул приложений Web-клиента. Учетная запись пула должна быть доменной учётной записью, входить в группу локальных администраторов на сервере Web-клиента, и в группу администраторов Docsvision.

    2. Включите аутентификацию Kerberos в конфигурационном файле Web-клиента:
      1. Откройте конфигурационный файл [Каталог установки Web-клиента]\5.5\Site\web.config в режиме редактирования.
      2. Перейдите к секции configuration → location[path="Account/LoginWindows"].
      3. Измените секцию на:
        <location path="Account/LoginWindows">
            <system.web>
              <authorization>
                <deny users="?" />
                <allow users="*" />
              </authorization>
            </system.web>
            <system.webServer>
              <security>
                <authentication>
                  <anonymousAuthentication enabled="false" />
                  <windowsAuthentication enabled="true" useKernelMode="false" useAppPoolCredentials="true">
                    <providers>
                      <clear />
                      <add value="Negotiate:Kerberos" />
                    </providers>            
                  </windowsAuthentication>
                  <basicAuthentication enabled="false" />
                </authentication>
              </security>
            </system.webServer>
        </location>
      4. Сохраните изменения.
    3. Очистите кэш браузеров пользователей.

    С уважением, Денис Елхов.

    0
    Действия с комментариями Постоянная ссылка
  • Денис, добрый день.

    Да. Kerberos работает. Спасибо!

    0
    Действия с комментариями Постоянная ссылка

Войдите в службу, чтобы оставить комментарий.