|
JWT и WSПрокси | ☑ | ||
|---|---|---|---|---|
|
0
rozer76
02.08.26
✎
12:50
|
Привет, научите аутентифицировать вызов к 1с-вебсервису через JWT. Такое возможно вообще? С Htpp сервисом такое работает - в заголовке можно передать bearer но как с wsпрокси? Это возможно или только Basic-аутентификация?
|
|||
|
1
timurhv
02.08.26
✎
22:53
|
Может так проканает?
https://clck.ru/3V56QS |
|||
|
2
rozer76
03.08.26
✎
08:25
|
(1) интересная ссылка, попробую спасибо. Топовые ИИ и Напарник такую ерунду предлагают
Процедура ВызватьSOAPСервисСJWT()
WSОпределения = Новый WSОпределения("http://ваш_сервер/YourService.1cws?wsdl");
WSПрокси = Новый WSПрокси(WSОпределения, "http://your_namespace.ru/", "YourService", "YourServiceSoap");
HTTPСоединение = Новый HTTPСоединение("ваш_сервер", 443, , , , , Новый ЗащищенноеСоединениеOpenSSL());
JWTТокен = "your_jwt_token_here";
HTTPСоединение.Заголовки.Добавить("Authorization", "Bearer " + JWTТокен);
WSПрокси.Сессия.HTTPСоединение = HTTPСоединение;
Попытка
Результат = WSПрокси.МетодСервиса(Параметры);
Исключение
Сообщить("Ошибка вызова SOAP-сервиса: " + ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
|
|||
|
3
kuromanlich
03.08.26
✎
12:36
|
https://wonderland.v8.1c.ru/blog/autentifikatsiya-s-pomoshchyu-jwt-tokenov/?sphrase_id=10220868
Запрос = Новый HTTPЗапрос("http://example.com/hs/testService?AccessToken=" + ТокенДоступа); Или Запрос = Новый HTTPЗапрос("http://example.com/hs/testService"); Запрос.ДобавитьТокенДоступа(ТокенДоступа); Или Заголовки = Новый Соответствие; Заголовки.Вставить("Authorization", "Bearer " + ТокенДоступа); Запрос = Новый HTTPЗапрос("http://example.com/hs/testService" , Заголовки); |
|||
|
4
rozer76
03.08.26
✎
18:43
|
(3) есть разница между вебсервисом и хттпсервисом..как бы)
|
|||
|
5
rozer76
03.08.26
✎
18:47
|
Если кому интересно, накидали тут но не то... хочу натива https://forum.infostart.ru/forum86/topic342454/
|
|||
|
6
Garykom
гуру
03.08.26
✎
18:55
|
хочешь натива?
ну так берешь и пишешь сам через HTTPСоединение нашел проблему только вот задолбаешься... |
|||
|
7
rozer76
04.08.26
✎
06:41
|
(6) нативно=естественно и это wsпрокси а не это вот все..
|
|||
|
8
Nedomolkov_
Ivan 04.08.26
✎
08:17
|
(0) У WSПрокси заголовков нет в принципе: только Пользователь/Пароль (Basic), таймаут и защищённое соединение. Bearer туда не пролезет, а код из (2) даже не соберётся — свойства Сессия у прокси не существует, это фантазия модели.
Что реально работает: 1. Реверс-прокси перед публикацией: клиент шлёт Bearer, nginx валидирует JWT и уходит в 1С по Basic. Токен-логика живёт вне 1С, WSПрокси на клиенте не трогаем вообще. 2. Если токен нужен ради безопасности, а не ради протокола — mTLS: ЗащищенноеСоединениеOpenSSL с клиентским сертификатом, это нативно с обеих сторон и WSПрокси его принимает параметром. 3. Собирать SOAP-конверт руками и слать HTTPСоединением с заголовком, как в (6). Конверт генерится из WSDL один раз, больно не это — больно переделывать его на каждое изменение контракта. И отдельная грабля к (2): WSОпределения сам тянет WSDL по сети и упрётся в ту же аутентификацию. Кладите WSDL локально файлом, иначе 401 прилетит ещё до вызова метода. |
|||
|
9
rozer76
04.08.26
✎
08:33
|
(8) спасибо за развернутый грамотный ответ, SSL есть, остаемся на Basic. Только каждой МП сделаем свой логин и так даже логировать проще чем все через один ходят.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |