Ошибка при вызове конструктора (WSОпределения). Сквозная аутентификация из 1С.

1. budden2010 06.03.17 09:42 Сейчас в теме +2 $m
Доброго времени суток!
Подскажите кто сталкивался с подобной проблемой.

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

При обращении к веб-сервису из 1С выдается ошибка: «Проблема: {ВнешняяОбработка.ПроверкаWS.Форма.Форма.Форма(19)}: Ошибка при вызове конструктора (WSОпределения): Аутентификация пользователя не выполнена. URL сервиса: https://server.domain.local/test/ws/test_ws?wsdl»
Подключение к веб-сервису из браузера с того же сервера и под тем же доменным пользователем проходит успешно, выдается wsdl-описание.

Для обращения к веб-сервису из 1С вызывается следующий код:
&НаСервере
Процедура ПодключитьНаСервере()
                Попытка                              
                               ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
                               ОпределWS = Новый WSОпределения("https://server.domain.local/test/ws/test_ws?wsdl",,,,, ЗащищенноеСоединение, Истина);
                Исключение
                               текстОш = ОписаниеОшибки();
                               Сообщить("Проблема: " + текстОш);
                КонецПопытки;
КонецПроцедуры
Показать


Описание ландшафта:

Платформа 1С:Предприятие - 8.3.8.2054
IIS - v 8.5
ОС на серверах - Windows 2012R2
Веб-сервер и сервер приложений 1С расположены на разных серверах.
Попытка подключения из 1С производилась как с клиентского компьютера, так и с сервера приложений 1С, результат аналогичный.
Для учетной записи, под которой запущен пул приложений IIS настройка делегирования установлена в «Доверять этому пользователю делегирование служб (только Kerberos)».

На веб-сервере в IIS выполнены настройки для выполнения сквозной доменной аутентификации:
Установлен сертификат от доверенного Центра сертификации.
Сертификат прописан в сертификаты сервера в IIS.
Создан пул приложений, который запускается от имени УЗ, настройка делегирования которой, установлена в «Доверять этому пользователю делегирование служб (только Kerberos)».
Настройка Kerberos авторизации в IIS производилась по аналогии со статьей:
http://winitpro.ru/index.php/2016/05/18/nastrojka-kerberos-avtorizacii-na-sajte-iis/

Настройки веб-сайта в прикрепленном файле.
Прикрепленные файлы:
Настройки IIS.pdf
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Vlad33k 25.05.17 13:26 Сейчас в теме
Получилось решить проблему? Сам столкнулся с этой ошибкой..
3. budden2010 25.05.17 18:29 Сейчас в теме +2 $m
(2) Да, это недоработка платформы 1С.
На партнерском форуме есть информация по этой проблеме.
Ответ от сотрудника 1С был 30.06.2016: "Пожелание записано, но в ближайшее время реализации ждать не стоит, есть технические сложности."
В итоге вариант пока остается только один, размещение веб-сервера совместно с сервером приложений (((

https://partners.v8.1c.ru/forum/topic/1502325#m_1502325

"При подключении к внешним веб-сервисам из кода 1с должна использоваться windows аутентификация. В соответствующих методах платформы для этой цели появился параметр ИспользоватьАутентификациюОС.
С данным параметром прекрасно отрабатывает вызов сервиса, который расположен на Web-сервере вместе с клиентом или вызываемым сервером (например при вызове сервиса другой системы 1С, IIS должен быть расположен вместе с сервером 1С).
При расположении web-сервера отдельно от клиента/сервера для успешной Windows-аутентификации (Negotiate:Kerberos) необходимо олицетворять контекст безопасности клиента на удаленных системах (задействовать механизм Kerberos-delegation)
При реализации клиента за это отвечает параметр олицетворения AllowedImpersonationLevel, который должен принимать значение Delegation (например, myTestAuth.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Delegation)
В текущей реализации 1С не нашли параметра, позволяющего управлять уровнем олицетворения и при использовании параметра ИспользоватьАутентификациюОС на сервер IIS передается уровень олицетворения Impersonation (Сервер не может выдать себя за клиента на удаленных системах.)"
4. AlexeyIsip 26 21.09.23 08:47 Сейчас в теме
Внимательно смотрите на строчные и прописные буквы адреса подключения. Регистр имеет значение.
Вставьте адрес подключения в браузер. Если подключится, то скопируйте измененный адрес в код 1с. У меня заработало.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот