Имя: Пароль:
1C
1С v8
Как сделать basic авторизацию для своего http-сервиса реализованного в 1С.
,
0 pavlushov
 
28.07.22
12:11
Задача такая. Нужно поднять свой веб-сервер и реализовать защиту по Basic. Т.е. на мой сервер будет приходить запрос содержащий заголовок "Authorization" "Basic ", соответственно его надо обработать. Не понимаю как это реализовать.
1 Caber
 
28.07.22
12:20
1. Отключить авторизацию 1С у публикации (создать пользователя, прописать его жестко в файле публикации.
2. В теле запроса читать заголовки, если в них есть то что нужно - все хорошо, обрабатывать запрос.
2 pavlushov
 
28.07.22
12:21
(1) 1. Отключить авторизацию 1С у публикации (создать пользователя, прописать его жестко в файле публикации. - вот это сложно непонятно ) где находится файл публикации хотя бы?
3 Garykom
 
гуру
28.07.22
12:24
(2) эээ а кто публиковал то?
4 mistеr
 
28.07.22
12:25
(0) Поставить перед 1С Nginx, который переведет запрос в формат, понятный 1С.
5 pavlushov
 
28.07.22
12:27
(1) Правильно ли я понял. В 1С конфигураторе иду в публикацию на вэб-сервере и вместо кнопки "Опубликовать" жму "Сохранить" и получаю файл vrd - это и есть файл публикации? Далее в нем нужно где то отключить авторизацию 1с и включить авторизацию по конкретному пользователю для которого я и задам пароль? Имя пользователя и его пароль и будут данными для Basic авторизации? И куда я потом должен положить этот файл? В какую папку?
6 pavlushov
 
28.07.22
12:28
(3) я публикую, у меня должна быть basic авторизация, на мой сервер
7 pavlushov
 
28.07.22
12:28
(4) где поставить?
8 Caber
 
28.07.22
12:31
9 pavlushov
 
28.07.22
12:35
(8) я опубликовал и уже потестил запросы постманом, мне не понятно как так хитро опубликовать чтобы была basic авторизация, об этом нигде не нашел инфу
10 DGorgoN
 
28.07.22
12:37
(9) В файле публикации пропиши пользователя по умолчанию и в самой 1С уже обрабатывай. Написали жеж. Что у тебя за веб сервер?
11 pavlushov
 
28.07.22
12:40
(10) апач24, я просто не знаю что за файл публикации, где его брать
12 DGorgoN
 
28.07.22
12:43
(11) Когда публикуешь базу 1с ты указываешь путь. По этому пути пройди и открой файлики блокнотом.
13 Garykom
 
гуру
28.07.22
12:44
(4) это слишком сложно для ТС, он даже файлик default.vrd в каталоге который при публикации указывал найти не может
14 TSRh
 
28.07.22
13:22
(5)

1. в базе создай пользователя с нужными правами

2. в файле default.vrd:
ib="Srvr="192.168.0.1";Ref="Имя_базы";Usr=пользователь_1С;Pwd="пароль_пользователя"">

3. перезапусти веб-сервер на всякий случай

4. в модуле HTTP-сервиса обрабатывай:

Запрос.Заголовки();
15 TSRh
 
28.07.22
13:23
(14) пардон:

Запрос.Заголовки;
16 arsik
 
гуру
28.07.22
13:27
(14) Зачем в 1С это делать. Прикинь тебе 500 запросов прилетит в 1С? Это нужно или на прокси nginx отфильтровывать или в апаче, еще до обращения к 1С.
Вот например для апача https://httpd.apache.org/docs/2.4/mod/mod_auth_basic.html
17 pavlushov
 
28.07.22
13:45
(12) (13) (14) (16) Всем большое спасибо! Теперь точно разберусь! Тема закрыта!
18 TSRh
 
28.07.22
14:00
(16) чтобы весело стало, когда всё начнёт тормозить ;)
19 Smit1C
 
28.07.22
14:10
(16) если бы прилетало по 500 одновременных запросов, то таких вопросов бы ТС не задавал.
Скорее всего там максимум 1 запрос в минуту.
20 Caber
 
28.07.22
14:19
(19) От локалхоста)
21 arsik
 
гуру
28.07.22
14:42
(19) Ну так он же наружу хочет выставить, а там возможно все. Начнут просто ддосить или перебирать авторизацию по словарю.
22 mikecool
 
28.07.22
16:23
классно как все советуют прописать юзер-пароль по дефолту, но никто не пишет, что надо при этом оставить один сервис, которому нужен такой доступ
или пусть база наружу смотрит? )
23 mikecool
 
28.07.22
16:24
(21) зачем перебирать, если доступ уже будет ?
24 arsik
 
гуру
28.07.22
16:37
(23) Какой доступ будет? Ну вот злоумышленники знают только адрес сервиса, ну и начнут подбирать авторизацию.
Если авторизация будет внутри 1С, как предлагает (14), в 1с создастся куча сеансов.
Если авторизацию вынести на уровень апача или нгинкса, на 1с это никак не повлияет.