|
Как сделать basic авторизацию в веб-сервисе с использованием домена юзера? | ☑ | ||
---|---|---|---|---|
0
DTX 4th
11.04.17
✎
14:41
|
Никак не могу авторизоваться на веб-сервисе.
Через SoapUI всё норм: http://i.imgur.com/wcY726C.png В 1С: uri = "http://schemas.microsoft.com/sharepoint/soap/";
Получаю 401 - Unauthorized Непонятно, куда писать домен. Есть подозрение, что домменые пользователи пока не поддерживаются.. И это на 8.3.10.2168 |
|||
1
Неверный Параметр И
11.04.17
✎
15:04
|
>Прокси.Пользователь = "domen\user";
Здесь надо указывать имя пользователя 1С, а не свои фантазии. |
|||
2
Fragster
гуру
11.04.17
✎
15:05
|
так доменная, или basic?
|
|||
3
Fragster
гуру
11.04.17
✎
15:06
|
||||
4
DTX 4th
11.04.17
✎
15:08
|
(1) (2) Имя пользователя, под которым пускает в сервис, к 1С никакого отношения не имеет.
(2) Судя по SoapUI, basic. Пользователь для SharePoint'а имеет вид Superserver\username |
|||
5
SiAl-chel
11.04.17
✎
15:11
|
(4) Попробовать поиграться с именем пользователя.
1. user (домен не указывать) 2. user@domain |
|||
6
DTX 4th
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.. Сейчас может, но нет возможности указать домен =\ |
|||
7
Serginio1
11.04.17
✎
15:26
|
(6) Не надо ничего писать. Нужно просто создать библиотеку, ссылку на службу и использовать через
Использование классов .Net в 1С для новичков Ссылки на исходники здесь http://ru.stackoverflow.com/questions/527763/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b7%d0%b2%d0%b0%d1%82%d1%8c-%d0%bc%d0%b5%d1%82%d0%be%d0%b4-%d0%b8%d0%b7-c-%d0%b2-1%d0%a1/527802#527802 и http://stackoverflow.com/questions/29396229/wcf-service-authorizing-with-active-directory-access-denied-error |
|||
8
Fragster
гуру
11.04.17
✎
15:44
|
(7) надоел
|
|||
9
DmitrO
11.04.17
✎
15:46
|
? Basic аутентификация – в этом случае клиент интернет-сервиса передает для аутентификации на веб-сервер имя пользователя и пароль в HTTP-запросе, который формируется при обращении к веб-серверу.
Для успешного выполнения данного типа аутентификации, имя пользователя и пароль, которые используются для доступа к «1С:Предприятию», должны использоваться и для доступа к веб-серверу. Если пользователь, параметры которого передаются в HTTP-запросе, не может получить доступ к веб-серверу, значит, он не сможет пользоваться интернет-сервисом. |
|||
10
DTX 4th
11.04.17
✎
15:46
|
Даже не знаю, что проще. Разобраться с C# и использовать (7) или продолжить ковырять PowerShell..
|
|||
11
DmitrO
11.04.17
✎
15:46
|
||||
12
Fragster
гуру
11.04.17
✎
15:49
|
я надеюсь, в имени пользователя нет кириллицы?
|
|||
13
Serginio1
11.04.17
✎
15:51
|
(8) Ну извини. Скоро отдохнешь от меня.
|
|||
14
DTX 4th
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) Ура! Ты нашел работу!
|
|||
17
DTX 4th
11.04.17
✎
16:20
|
(15) Как раз сейчас фидлером мониторил. В общем, мне нужна не basic аутентификация. А 1С, походу, умеет только её. Занавес.
|
|||
18
Serginio1
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 на сервере. Значение по умолчанию: Ложь. |
|||
20
DTX 4th
11.04.17
✎
18:52
|
(19) Вот это поворот. Всё заработало)
Спасибо!) |
|||
21
oleg_km
11.04.17
✎
21:18
|
(8) Аналогично.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |