|
HTTPСоединение, HTTPЗапрос, аутентификация ОС | ☑ | ||
---|---|---|---|---|
0
Darjeeling
11.03.19
✎
10:11
|
Всем добрый день!
Ситуация такая, в браузере при наборе строки «ИмяХоста/authentication-microservice/auth», мне возвращается структура с полями type и credeintials. Когда я из 1С при помощи объекта HTTPСоединение стучусь по этому адресу (свойство ИспользоватьАутентификациюОС стоит Истина), мне выдается следующая ошибка: <h1>Unauthorized</h1> <p>This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.</p> <hr> Подскажите, пожалуйста, в какую сторону нужно копать, на ИТС не нашла ничего. |
|||
1
Asmody
11.03.19
✎
10:18
|
(0) Какой тип авторизации используется сервисом?
|
|||
2
Darjeeling
11.03.19
✎
10:42
|
(1) Kerberos, если вопрос был про это. (Я в этой теме очень плаваю).
|
|||
3
Asmody
11.03.19
✎
11:11
|
(2) Я про http authentication.
|
|||
4
Cyberhawk
11.03.19
✎
11:42
|
Копать в сторону АПИ-документации (или требований) поставщика сервиса касательно аутентификации
|
|||
5
Darjeeling
11.03.19
✎
12:58
|
(3)
В браузере я смотрю (по F12) там заголовок "Authotization" = Negotiate ****здесь аброкадабра из букв****. В 1С в HTTPЗапрос я в заголовоки устанавливаю только "Content-Type", а "Authotization" не передаю, я думала платформа сама сгенерирует его при установленном параметре ИспользоватьАутентификациюОС. |
|||
6
Asmody
11.03.19
✎
13:23
|
(0) HTTPСоединение где вызывается - на сервере или на клиенте?
|
|||
7
Darjeeling
11.03.19
✎
13:31
|
(6) Я и так и так пробовала, результат одинаковый.
|
|||
8
Darjeeling
11.03.19
✎
13:55
|
Вообще, когда я смотрю в браузере у меня там идет два запроса get, первый возвращает код 401 и один из заголовков ответа "WWW-Authenticate" = "Negotiate " + "кракозябина"
А второй запрос уже передает заголовок "Authotization" = "Negotiate" + "другая кракозябина", и этот запрос получает возвращается уже ответ с кодом 200. Но в 1С в ответе заголовок ответа "WWW-Authenticate" содержит только одно слово "Negotiate" Вообще, интересно флаг ИспользоватьАутентификациюОС у http-соединение на что влияет? Платформа при этом генерирует какие-то заголовки? |
|||
9
Darjeeling
11.03.19
✎
14:06
|
Я так понимаю эти аброкадабры, это kerberos ticket-ы, но не понятно как их в 1С сгенерировать
|
|||
10
Asmody
11.03.19
✎
14:26
|
(9) 1С их сама генерит если под Windows работает. Только на сервере она их будет генерить от имени того пользователя, под которым служба сервера работает. Под Linux 1Ска тоже kerberos понимает (с бубном), но прокидывает ли она тикет в HTTPСоединение не могу сказать.
|
|||
11
Darjeeling
11.03.19
✎
15:45
|
(10) У нас Windows, нам как раз и надо от имени сервера генерировать (но я всяко пробовала: и сервер, и клиент), хотелось понять как именно их генерировать.
Пока решили получать токен при помощи COM-объекта("WinHttp.WinHttpRequest.5.1"): WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); WinHttp.SetAutoLogonPolicy(0); WinHttp.Open("GET", СтрокаЗапросаИзБраузера, Ложь); WinHttp.Send(); После этого в WinHttp.ResponseText возвращается строка-json с нужными полями(type, credentials). |
|||
12
oleg_km
11.03.19
✎
16:04
|
(9) Через фидлер надо смотреть, что там 1С формирует
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |