HTTPСоединение ошибка авторизации 401.2

1. lonely_ferret 21.10.24 17:07 Сейчас в теме
Здравствуйте!
Подскажите, пожалуйста, в чем может быть причина следующей ситуации: есть опубликованная база, в ней http-сервис, через браузер подключаюсь под определенным пользователем, получаю данные, все в порядке; пытаюсь достучаться до этого сервиса из другой базы под этим же пользователем - код состояния 401.2.

Логин = "user";
	УстановитьПривилегированныйРежим(Истина);
	Пароль = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Логин);
	УстановитьПривилегированныйРежим(Ложь);
	
	Попытка
		Соединение = Новый HTTPСоединение("mybase.ru", 443, Логин, Пароль, , , Новый ЗащищенноеСоединениеOpenSSL, Ложь); 
	Исключение
		ЗаписьЖурналаРегистрации("Загрузка лицевых счетов. Ошибка авторизации при подключении к сервису.",
		УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки());
		Возврат;
	КонецПопытки;
	
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Content-type", "application/json; charset=utf-8");
	
	Ответ = Соединение.Получить(Новый HTTPЗапрос("/ser/hs/get", Заголовки));
Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starik-2005 3091 21.10.24 17:45 Сейчас в теме
(1)
"mybase.ru"
А это реальный адрес ресурса или просто так?
5. lonely_ferret 22.10.24 09:01 Сейчас в теме
4. user1880116 21.10.24 19:29 Сейчас в теме
(1)
есть опубликованная база
Код состояния 401.2 выплевывается IISом когда тот не может раскурить комбинацию заголовков ожидаемых и предъявляемых методов авторизации. Найди, пожалуйста, самостоятельно статью о настройке IIS для публикации и сделай все правильно.
6. lonely_ferret 22.10.24 09:04 Сейчас в теме
(4) База сторонняя и сервер тоже, я к ним отношения вообще не имею, поэтому и перенастроить как-то не имею права. И скорее всего проблема не в настройке IIS, так как жалоб на что-то похожее от других не поступало.
7. user1880116 22.10.24 09:07 Сейчас в теме
(6)
жалоб на что-то похожее от других не поступало.
Возможно, тогда имеет смысл спрашивать у этих других, как у них на этом сервере с нереальным именем всё работает? Или гадать на форуме проще?
9. lonely_ferret 22.10.24 09:24 Сейчас в теме
(7) Знаете, проще. Зачем Вам вообще тратить время на выяснение подобных моментов, если Вы посчитали вопрос глупым? Лучше попейте чаю)
10. user1880116 22.10.24 09:25 Сейчас в теме
(9)
если Вы посчитали вопрос глупым
Не вопрос.
3. gml 21.10.24 19:26 Сейчас в теме
Браузером подключаетесь к сервису с какой машины и каким пользователем Windows?
На web-сервере для опубликованного сервиса какие методы аутентификации разрешены?
Требует ли web-сервер предоставления клиентского сертификата?
8. lonely_ferret 22.10.24 09:21 Сейчас в теме
(3) Предоставление клиентского сертификата не требует, браузером подключаюсь с обычного компьютера под пользователем этой базы (мне предоставили логин и пароль). Насчет методов аутентификации не знаю, к сожалению.
11. lonely_ferret 22.10.24 09:47 Сейчас в теме
(8) Стоит аутентификацияОС на сервере, но так как меня в этой базе нет, вхожу с помощью логина и пароля.
12. gml 22.10.24 20:41 Сейчас в теме
(11) То есть набираете в адресной строке браузера на обычном компьютере (не на том, где работает или опубликована база) адрес https://mybase.ru/ser/hs/get, в открывшемся окне вводите имя и пароль пользователя 1С опубликованной базы и получаете файл json в ответ?
13. gml 22.10.24 20:47 Сейчас в теме
(8) Код, приведённый в примере, выполняется на клиенте или на сервере?
База, в которой выполняется этот код, файловая или клиент-серверная?
Определён ли прокси в свойствах браузера на клиентской и/или серверной машине?

Если хотите исключить влияние системных настроек прокси, добавьте в конструктор HTTPСоединения пятым параметром Новый ИнтернетПрокси(Ложь).
14. lonely_ferret 23.10.24 08:50 Сейчас в теме
(12) Да, все верно.
(13) Код выполняется на сервере, база клиент-серверная. Везде стоит автоматическая настройка прокси-сервера. Хорошо, попробую добавить этот параметр, спасибо.
15. gml 23.10.24 21:26 Сейчас в теме
(14) 1. Запросите, пожалуйста, какие способы аутентификации разрешены для публикации базы на IIS.
2. Попробуйте выполнить подключение с клиента.
18. Vlan 36 25.10.24 09:38 Сейчас в теме
(8) Попробуйте вставить в заголовок авторизацию по паролю

Basic = Логин + ":" + Пароль;
Basic = Base64Строка(ПолучитьДвоичныеДанныеИзСтроки(Basic));

Заголовки.Вставить("Authorization", "Basic " + Basic);


А вообще, должна быть документация по api, или хотя бы доступ к логам подключения.
16. user1880116 23.10.24 21:33 Сейчас в теме
Шел третий день игры в угадайку. Предложений сделать что-нибудь оставалось еще немало. Было очень интересно и весело.
17. gml 24.10.24 20:55 Сейчас в теме
(16) Ну, можно еще логи на IIS посмотреть при успешном доступе браузера и при ошибках доступа из 1С, и трассировку ошибок там настроить.
Оставьте свое сообщение

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