Имя: Пароль:
1C
1С v8
Web-сервисы. Аутентификация ОС
,
0 KRV_1983
 
22.03.17
14:08
Можно ли из 1С вызвать веб-сервис стороннего ПО (аутентификация в нем - по AD), от имени текущего пользователя (аутентификация в 1С по AD)?

Если можно, то как? Где можно посмотреть?
При вызове предполагается заполнить логин и пароль, если прописать ИмяДомена\пользователь и пароль, то все хорошо, но пароль пользователя неизвестен, да и не пропишешь его в коде..
Можно ли обойти это?
1 DmitrO
 
22.03.17
14:31
СоздатьWSПрокси(<URIПространстваИменСервиса>, <ИмяСервиса>, <ИмяПорта>, <ИнтернетПрокси>, <Таймаут>, <ЗащищенноеСоединение>, <Местоположение>, <ИспользоватьАутентификациюОС>)

Новый WSПрокси(<Определение>, <URIПространстваИменСервиса>, <ИмяСервиса>, <ИмяТочкиПодключения>, <ИнтернетПрокси>, <Таймаут>, <ЗащищенноеСоединение>, <Местоположение>, <ИспользоватьАутентификациюОС>)

последние два параметра в обоих случаях добавили еще в 8.3.7
2 KRV_1983
 
22.03.17
14:48
1, есть пример?

Если пароль не прописать, выходит Ошибка HTTP без всяких описаний
3 DmitrO
 
22.03.17
14:52
с параметром ИспользоватьАутентификациюОС=Истина, заполненым именем пользователя (ИмяДомена\пользователь) и пустым паролем вызывал?
4 Вафель
 
22.03.17
14:53
(3) а зачем имя пользователя указывать?
5 KRV_1983
 
22.03.17
14:57
3,4 вызывал и так и так. Ошибка в обоих случаях
6 Вафель
 
22.03.17
14:58
а из браузера работает?
7 Вафель
 
22.03.17
14:58
с сервера вызываешь?
8 KRV_1983
 
22.03.17
14:59
Ошибка при вызове метода контекста (Load): При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса:  {http://tempuri.org/}:WB:Load(): Ошибка HTTP:
9 KRV_1983
 
22.03.17
14:59
да, с сервера
10 Вафель
 
22.03.17
15:00
(9) под каким пользователем крутится сервер? ему доступ к сервису положен?
11 KRV_1983
 
22.03.17
15:02
10, нет, под локальным пользователем. У него доступа к веб сервису нет
12 DmitrO
 
22.03.17
15:03
(4)да, пользователя тоже не надо, туплю, в хттп запрос должен поступить текущий пользователь вызывающего процесса.
13 Вафель
 
22.03.17
15:03
(11) ну вот и весь ответ. делай на клиенте тогда
14 Вафель
 
22.03.17
15:04
хотя на клиенте это не работает
15 KRV_1983
 
22.03.17
15:05
вернулись к первому вопросу - как это обойти?
16 DmitrO
 
22.03.17
15:07
да, кстати, тут проблема будет в том что с клиента это сделать нельзя, а олицетворения в 1совской архитектуре клиент-сервер нету.
17 Вафель
 
22.03.17
15:07
не использовать виндовс авторизацию
18 DmitrO
 
22.03.17
15:08
а вот HTTPСоединение может работать на клиенте, там должно получиться
19 DmitrO
 
22.03.17
15:16
(15)теоретически обойти можно только так: работать с клиента через HTTPСоединение.
Формировать, что называется руками, SOAP запрос (xml), и отправлять через HTTPСоединение с клиента.
Полученный на клиенте SOAP ответ (xml) передавать на сервер и сериализатором перегонять в объект XDTО.
20 DmitrO
 
22.03.17
15:25
Сюда неплохо подошла бы система с ключами авторизации:
сначала с клиента получить некий ключ авторизации (строка временный хешкод)
потом передать ее на сервер и работать там в рамках него, указывая его параметре метода или в SOAP заголовке.

Но реализация сервиса сложнее, да и 1С до сих пор с SOAP заголовками не работает.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан