Вход | Регистрация



Как сделать basic авторизацию в веб-сервисе с использованием домена юзера?

Как сделать basic авторизацию в веб-сервисе с использованием домена юзера?
Я
   DTX 4th
 
11.04.17 - 14:41
Никак не могу авторизоваться на веб-сервисе.
Через SoapUI всё норм:
http://i.imgur.com/wcY726C.png
В 1С:
    uri = "http://schemas.microsoft.com/sharepoint/soap/";;

    Прокси = WSСсылки.WSСсылка1.СоздатьWSПрокси(uri,
        "Lists", "ListsSoap12");
    
    Прокси.Пользователь = "domen\user";
    Прокси.Пароль = "Password";

    
    ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить(uri).Получить("GetListCollection");
    
    WSПараметр       = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
    
    Рез = Прокси.GetListCollection(WSПараметр);


Получаю 401 - Unauthorized
Непонятно, куда писать домен. Есть подозрение, что домменые пользователи пока не поддерживаются.. И это на 8.3.10.2168
 
 
   Неверный Параметр И
 
1 - 11.04.17 - 15:04
>Прокси.Пользователь = "domen\user";

Здесь надо указывать имя пользователя 1С, а не свои фантазии.
   Fragster
 
2 - 11.04.17 - 15:05
так доменная, или basic?
   Fragster
 
3 - 11.04.17 - 15:06
   DTX 4th
 
4 - 11.04.17 - 15:08
(1) (2) Имя пользователя, под которым пускает в сервис, к 1С никакого отношения не имеет.

(2) Судя по SoapUI, basic. Пользователь для SharePoint'а имеет вид Superserver\username
   SiAl-chel
 
5 - 11.04.17 - 15:11
(4) Попробовать поиграться с именем пользователя.
1. user (домен не указывать)
2. user@domain
   DTX 4th
 
6 - 11.04.17 - 15:18
(5) Пробовал..
Ещё в 2009 люди с такой проблемой столкнулись.
http://itland.ru/forum/lofiversion/index.php/t24306.html
Предлагают использовать COMОбъект("MSSOAP.SOAPClient30"), но он устарел и на W7+ его уже нет.
Если так ничего и не придумаю, придётся писать компоненту на C#, потому что от PowerShell меня выворачивает. Да, до этого писал скрипт на PS, но это было ещё в 2014 году, когда ещё платформа не могла https.. Сейчас может, но нет возможности указать домен =\
   Serginio1
 
7 - 11.04.17 - 15:26
   Fragster
 
8 - 11.04.17 - 15:44
(7) надоел
   DmitrO
 
9 - 11.04.17 - 15:46
? Basic аутентификация – в этом случае клиент интернет-сервиса передает для аутентификации на веб-сервер имя пользователя и пароль в HTTP-запросе, который формируется при обращении к веб-серверу.

Для успешного выполнения данного типа аутентификации, имя пользователя и пароль, которые используются для доступа к «1С:Предприятию», должны использоваться и для доступа к веб-серверу. Если пользователь, параметры которого передаются в HTTP-запросе, не может получить доступ к веб-серверу, значит, он не сможет пользоваться интернет-сервисом.
   DTX 4th
 
10 - 11.04.17 - 15:46
Даже не знаю, что проще. Разобраться с C# и использовать (7) или продолжить ковырять PowerShell..
 
 Рекламное место пустует
   DmitrO
 
11 - 11.04.17 - 15:46
   Fragster
 
12 - 11.04.17 - 15:49
я надеюсь, в имени пользователя нет кириллицы?
   Serginio1
 
13 - 11.04.17 - 15:51
(8) Ну извини. Скоро отдохнешь от меня.
   DTX 4th
 
14 - 11.04.17 - 15:52
(12) Всё на латинице.

(9) Не пойму. Если у меня веб-сервис на IIS, и пользователь имеет вид superserver\username, из 1С я не смогу достучаться до такого сервиса?
   Неверный Параметр И
 
15 - 11.04.17 - 16:06
(14) Наборот. К 1С не сможешь.

Авторизация происходит дважды - первый раз тебя проверяет веб-сервер, который решает - пропустить тебя дальше или нет. Если пропустить, то исходный запрос отдается системе, которая находится за веб-сервером и та производит авторизацию уже со своей колокольни.

Именно поэтому традиционная схема публикации веб-сервиса 1С  включает в себя настройку анонимной авторизации на веб-сервере, чтобы тот не ничего не проверял, а сразу отдавал запрос в 1С. Та проверяет переданный basic авторизацией логин/пароль на предмет пользователя 1С и в случае несовпадения кидает тебе 401.

В текущем случае тебе надо сначала понять, кто дает тебе отлуп по такому логину/паролю - веб-сервер, или сама обрабатывающая система. Берешь в руки Fiddler и смотришь, что от тебя вылетает и влетает...
   Неверный Параметр И
 
16 - 11.04.17 - 16:06
(13) Ура! Ты нашел работу!
   DTX 4th
 
17 - 11.04.17 - 16:20
(15) Как раз сейчас фидлером мониторил. В общем, мне нужна не basic аутентификация. А 1С, походу, умеет только её. Занавес.
   Serginio1
 
18 - 11.04.17 - 16:31
(16) Спасибо.
   Неверный Параметр И
 
19 - 11.04.17 - 18:13
(17) 1С:Предприятие 8.3 (8.3.8.2088)
WSСсылкаМенеджер.<Имя WS-Ссылки> (WSReferenceManager.<Имя WS-Ссылки>)
СоздатьWSПрокси (CreateWSProxy)

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

...
<ИспользоватьАутентификациюОС> (необязательный)

Тип: Булево. 
Указывает на использование аутентификации NTLM или Negotiate на сервере.
Значение по умолчанию: Ложь.
   DTX 4th
 
20 - 11.04.17 - 18:52
(19) Вот это поворот. Всё заработало)
Спасибо!)
   oleg_km
 
21 - 11.04.17 - 21:18
(8) Аналогично.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь во втором сообщении вам дадут решение, а в двадцатом дадут правильное решение. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует