Http сервис без авторизации

1. flyer 232 25.05.15 10:37 Сейчас в теме
Доброго всем дня!

подскажите настроил сервис. выводит пользователям список документов. сделал без авторизации. вот пример файла vrd
?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/srvimp"
ib="File="C:\1c\test";usr=site;pwd=12345"
enableStandardOData="true">
<ws>
<point name="WebService"
alias="ws1.1cws"
enable="true"/>
</ws>
</point>

но как при обращении к базе через веб интерфейс захожу под пользователем site а хотелось бы под своим. подскажите как настроить параметры для входа под своим логином?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dj_serega 391 25.05.15 10:52 Сейчас в теме
(1) flyer, А если убрать ";usr=site;pwd=12345" то будет спрашивать логин-пароль?
3. flyer 232 25.05.15 12:06 Сейчас в теме
(2) dj_serega, да будет обычный вход через веб клиент. вот и хочется одновременно чтобы пользователи обращаясь к http сервису получали бе авторизации документы а кто хочет чтобы заходил под своей учеткой
4. ture 606 25.05.15 12:09 Сейчас в теме
(3)(3) flyer, Сделайте учетку для вебсервиса и опубликуйте в другой папке или на другом вебсервере, смотря на что хватит навыка.
user1619761; Serginio; +2 Ответить
5. flyer 232 25.05.15 13:10 Сейчас в теме
(4) ture, честно сказать не понял что да как надо сделать. если можете наведите на путь истинный. опубликовать в другой папке - т.е. как то разделить обращение к веб интерфейсу и http сервис?
26. пользователь 29.10.20 23:00
Сообщение было скрыто модератором.
...
6. bobank 200 27.07.16 07:43 Сейчас в теме
(1) Что-то по данному вопросу решилось? Найдено ли решение? Та же проблема с разделением интерфейса и сервисов.
Я пока только сделал 2 базы через план обмена: одна база для интерфейса пользователя, другая для http-сервисов с полной синхронизацией между ними.
14. пользователь 09.10.17 05:08
Сообщение было скрыто модератором.
...
20. пользователь 30.08.18 15:19
Сообщение было скрыто модератором.
...
7. kojinandrej 59 27.07.16 09:42 Сейчас в теме
Делаешь две публикации одна для просто просмотра документов с прописанным пользователем и паролем в VRD, и вторую где пользователи логинятся.
12. z5515 5 21.11.16 20:00 Сейчас в теме
(7)Спасибо помогло!
Создал вторую публикацию
Скопировал туда ВРД из основной публикации, прописал в скопированном врд автологин, теперь на одном урле обычный веб клиент с запросом пароля на другом урле хттп сервис
13. bobank 200 09.08.17 10:40 Сейчас в теме
(12) Но как создать вторую публикацию? Скопировать папку с новым именем, добавить автологон в строку подключения в vrd и создать на IIS новое приложение с указанием пути к этой папке? Я так пробовал, не работает. Просит авторизацию.

Расскажите по шагам, плз.
8. Andry.Boris 59 23.08.16 01:41 Сейчас в теме
День добрый!
Тоже интересует данная тема.
Может есть возможность через строку запроса передать логин и пароль???
Типа дописать в конце http://localhost/str/hs/our-services/list...логин%пароль
Может кто знает как это можно сделать???

С уважением, Андрей
17. serkorvin 16.02.18 17:38 Сейчас в теме
Логин и пароль можно дописать перед именем сервера

http://login:pass@localhost/str/hs/our-services/list

Правда этот метод работает во всех браузерах, кроме IE
user1619761; vellxl; madonov; +3 Ответить
18. skaoxy 18 21.03.18 10:03 Сейчас в теме
(17) Проверил, нет такой метод ни где не работает. Все равно требует логин и пароль
22. user608978_dtih 09.11.19 07:00 Сейчас в теме
9. serko8547 110 25.08.16 10:24 Сейчас в теме
Блин, ну КАК, КАК вы логинитесь? можно по шагам??? просто распишите - как?
10. Andry.Boris 59 25.08.16 18:43 Сейчас в теме
(9) serko8547, Привет! По факту нет опыта написания команд для подключения к 1C через GET/PUT запросы. Но думаю, что это возможно. В этом и состоял вопрос может у Вас есть этот опыт и Вы можете поделиться информацией и объяснить что и как нужно делать правильно. Спасибо за понимание.
11. Andry.Boris 59 25.08.16 19:08 Сейчас в теме
(9) serko8547, Привет! подкинули ссылку на http://www.forum.mista.ru/topic.php?id=636109
проверил...
Все верно если делать сквозную авторизацию по веб-клиенту в 1С то да
http://localhost/str?N=имяпользователя&P=парольпользователя выполняется на ура,
1С не запрашивает логин и пароль и открывает сразу 1С и рабочий стол,
в случае вызова через http-сервис и задать строкой
http://localhost/str/hs/our-services/list?N=имяпользователя&P=парольпользователя
непроходит и все равно запрашивает логин и пароль, значит неправильно строка составлена...
вот в чем вопрос...
С уважением, Андрей
15. barthes 29.11.17 21:28 Сейчас в теме
(11) А вопрос еще актуален?
16. ArchLord42 83 30.11.17 06:27 Сейчас в теме
Собственно если кто-то озадачится этим вопросом, то как писали выше можно сделать 2 публикации, в одной прописать логин и пароль (мы так сделали для HTTP сервисов, там свою авторизацию сделали) и запретить там веб клиент и сделать 2ю публикацию (стандартную), собственно можно скопировать папку с публикацией и донастроить IIS \ Apache и .vrd файл

Пример действий для IIS
1) Есть папка client со стадартной авторизацией, публикация сделана из конфигуратора.
2) Копируем папку, называем ее api
3) В IIS конвертим в веб приложение.
4) В .vrd файл добавляем логин и пароль, а так же самое важное изменение, без него не будет работать, нужно сменить директиву base="/client" соответственно на base="/api"

В Апаче все тоже самое только 3 шаг меняется на правку конфига апача.
user1619761; websamson; user1232351; KAV2; unknow_user; bursanb; +6 Ответить
19. Davurov 09.07.18 09:35 Сейчас в теме
(16)


В Апаче все тоже самое только 3 шаг меняется на правку конфига апача.


Не подскажите какие настройки нужно сделать в апаче?
25. unknow_user 14.01.20 08:00 Сейчас в теме
(16) Спасибо большое. Всё получилось
32. user1232351 20.08.21 20:21 Сейчас в теме
(16)Большое спасибо, долго искал эту информацию.
21. ViperGSV 21.02.19 19:48 Сейчас в теме
Для публикации http-сервисов на Linux без авторизации через webinst:
Делаем две публикации:
webinst -apache24 -wsdir BASENAME -dir /var/www/base -connstr "Srvr=localhost;Ref=BASE" -confPath /etc/apache2/apache2.conf
webinst -apache24 -wsdir BASENAME-NOAUTH -dir /var/www/base-noauth -connstr "Srvr=localhost;Ref=BASE" -confPath /etc/apache2/apache2.conf

Редактируем /var/www/base/default.vrd
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                base="/BASENAME"
                ib="Srvr=localhost;Ref=BASE>
        <debug enable="true" protocol="tcp" url="tcp://localhost" />
        <ws enable="false"/>
        <standardOdata enable="true"
                        reuseSessions="dontuse"
                        sessionMaxAge="20"
                        poolSize="10"
                        poolTimeout="5"/>
</point>
Показать


Редактируем /var/www/base-noauth/default.vrd
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                base="/BASENAME-NOAUTH"
                ib="Srvr=localhost;Ref=BASE;usr=user;pwd=password" enable="false">
        <debug enable="true" protocol="tcp" url="tcp://localhost" />
        <ws enable="false"/>
        <standardOdata enable="false"
                        reuseSessions="dontuse"
                        sessionMaxAge="20"
                        poolSize="10"
                        poolTimeout="5"/>
        <httpServices>
                <service name="TestHTTP"
                                rootUrl="TestHTTP"
                                enable="true"/>
        </httpServices>
</point>
Показать


service apache2 restart

Итог:
Имеем два подключения:
http://localhost/BASENAME/ - доступна работа с авторизацией чрез браузер (веб-клиент) и сервис OData
http://localhost/BASENAME-NOAUTH/hs/TestHTTP/<ВашРоут>; - Доступен только http-сервис без авторизации (веб-клиент не зайдет)
user1619761; monser; vv2; kot_vasja; +4 Ответить
24. kot_vasja 11.11.19 15:38 Сейчас в теме
(21) тут есть неточность.

Если оставить /var/www/base-noauth/default.vrd в таком виде, то будут доступны все HTTP-сервисы
Пришлось выключить каждый сервис
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                base="/BASENAME-NOAUTH"
                ib="Srvr=localhost;Ref=BASE;usr=user;pwd=password" enable="false">
        <debug enable="true" protocol="tcp" url="tcp://localhost" />
        <ws enable="false"/>
        <standardOdata enable="false"
                        reuseSessions="dontuse"
                        sessionMaxAge="20"
                        poolSize="10"
                        poolTimeout="5"/>
        <httpServices>
                <service name="TestHTTP"
                                rootUrl="TestHTTP"
                                enable="true"/>
        </httpServices>
        <httpServices>
                <service name="TestHTTP-2"
                                rootUrl="TestHTTP-2"
                                enable="false"/>
        </httpServices>


</point>
Показать
27. Zab 03.12.20 16:52 Сейчас в теме
(24) не надо выключать каждый веб-сервис. Достаточно заменить тэг
<httpServices>

на
<httpServices publishByDefault="false">
29. igor.potemkin33 15.01.21 23:24 Сейчас в теме
28. serko8547 110 12.01.21 00:20 Сейчас в теме
Ребята, я НАШЕЛ КАК АВТОРИЗОВАТЬСЯ!!!

что делаем:
в хед (head) пишем:

Authorization Basic VXNlcjE6NTU1

где VXNlcjE6NTU1 это зашифрованный в base64 кодировке логин:пароль

Например: Authorization Basic VXNlcjE6NTU1

VXNlcjE6NTU1 расшифровывается User1:555
где Логин User1, пароль 555


Для тестирования запроса использовал приложение тест клиент для хрома
https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo
Скриншот от туда же
Прикрепленные файлы:
user1619761; SP2000; tezdal; gigapevt; vv2; sys1c; aquath; vit00lya; omen3333; dimasts; +10 Ответить
30. frutonyanya 08.02.21 14:14 Сейчас в теме
31. omen3333 4 04.03.21 09:46 Сейчас в теме
33. realchel 05.01.22 12:50 Сейчас в теме
(28)Подскажи чайнику куда прописать?
34. Shar4ik 21.02.22 16:29 Сейчас в теме
(33) Судя по всему это заголовки http-запроса или headers
35. d.zhukov 1398 08.08.22 05:45 Сейчас в теме
В файле default.vrd, который создает 1с при публикации вашего веб сервера (смотрите его в этой же папке, в которой публикуете ваш веб-сервер) в строке: ib="Srvr="localhost";Ref="MY_1CBD";">
добавляем:
ib="Srvr="localhost";Ref="MY_1CBD";Usr="USR";Pwd="PASS";">

где USR и PASS ваш логин и пароль пользователя 1С
user1619761; bad_wag; +2 Ответить
36. gruk 15 11.01.23 08:07 Сейчас в теме
Apache 2.4 через <location> в httpd.conf. Удобно что после перепубликации не слетает
SSLProxyEngine on # Если используется SSL
<Location "/ИмяРесурсаДляВходаБезПароля/" >
 ProxyPreserveHost On
 LimitRequestBody 102400
 ProxyPass "https://localhost/ИмяПубликации/hs/ИмяСервиса/"
 RequestHeader set Authorization "Basic dGаfaG5vazo3Nk12Zmli" # Имя:Пароль в base64
</Location>


Для работы должны быть включены модули:
LoadModule headers_module modules/mod_headers.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so


Как работает: при обращении на www.ВашСервер.ru/ИмяРесурсаДляВходаБезПароля/ запрос будет перенаправлен на опубликованный сервис с добавленным заголовком авторизации.
user1619761; user756806; +2 Ответить
38. user756806 21.06.23 07:24 Сейчас в теме
Круто! без всяких двойных публикаций!
по короткому пути коннект к сервисам. Огонь!

Нашел также вариант почти такой же - с редиректом с помощью nginx https://www.youtube.com/watch?v=ZTU8V22SYvc
Это для тех, у кого IIS.
А с апачем можно и нужно ваш метод применять.

Единственный минус обоих способов - практически открытое хранение пароля.
Но в двойной публикации даже basic-шифрования нету, просто открытый пароль в vrd-файле хранится.
Так что здесь даже чуток надёжнее.
user1619761; +1 Ответить
37. BotMan4 15 07.06.23 14:44 Сейчас в теме
39. gruk 15 11.10.23 12:14 Сейчас в теме
(37) Вот так передаётся логин открытой строкой )
Оставьте свое сообщение

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