Имя: Пароль:
1C
1С v8
Тип аутентификации 1с HTTP соединения
0 zhukovia
 
14.07.19
13:29
Собственно вопрос какой "тип" аутентификации у HTTP соединения в 1с 8.3? Поясню в чем загвоздка. У меня есть самописанная конфа на 1с 8.3 и в ней имеется несколько HTTP соединений. Раньше у меня все это стояло на связке 1С+ISS+Windows? ctqxfc 1C+Apache2.2+CentOS 6. Подключение к 1С-HTTP осуществляется при помощи perl скрипта с помощью LWP::UserAgent->new(). Ранее все работало т.к. в ISS (от которого запускается соединение с 1С) и 1С я установил одного и того же пользователя. Так же в 1С была настроена авторизация пользователя по ("Аутентификаций операционной системы" в домене). Но теперь как я понимаю нужно при подключении к 1С из perl как то передавать пароль и пользователя базы, а вот как непонятно. Пробовал через $browser->authorization_basic("user", "passwd"), не работает.
Подскажите как подключиться и какой тап аутентификации (если правильно сформулировал конечно)?
1 PiotrLoginov
 
14.07.19
14:09
>>нужно при подключении к 1С из perl как то передавать пароль и пользователя базы, а вот как непонятно
Вопрос авторизации в http-сервисе 1c легко гуглится (если коротко, можно передать учетку при запросе, а можно автоматически авторизовывать всех "стучащихся" и открыть этим доступ любому желающему)
Вопрос программирования запроса в perl с авторизацией - тоже:

https://yandex.ru/search/?text=perl авторизация в http сервисе
2 zhukovia
 
14.07.19
16:48
(1) А можно более конкретно? По слову perl, я уже кончено все поиска но ничего не нашел. Авторизароваться с передачей параметров в теле POST запроса я пробовал (типа &login=user&passwd=passwd). Пробовал и авторизацией Пера LPW (типа $browser->authorization_basic("user", "passwd"). Но видимо что то упускаю. Поэтому. если не затруднит, дайте более конкретную подсказку.
3 Garykom
 
гуру
14.07.19
16:52
CORS ?
4 zhukovia
 
14.07.19
16:58
(3) Cross-origin resource sharing? Не совсем понял причем здесь они. Мне нужно чтобы запрос прошел авторизацию в 1С, а не для передачи запроса Аякса на другой домен. Ну если я верно понял.
Если заходить из браузера по адресу HTTP запроса, то появляется окно авторизации и если ввести логин и пароль пользователя 1С то все хорошо проходит. Вот мне надо сделать то же только из Перла.
5 Garykom
 
гуру
14.07.19
17:10
(4) В заголовки вставь "Authorization", "Basic <ключ>"
Где <глюч> это Base64(Логин:Пароль)
6 Garykom
 
гуру
14.07.19
17:11
(5)+Чтобы понятнее Base64(Логин+":"+Пароль) через ":"
7 zhukovia
 
14.07.19
17:21
(6) Я правильно понял?
@headers = ('User-Agent' => 'Authorization' => 'user:passwd');
$response = $browser->post($url, @headers, $Content);
Если да, то не работает.
8 zhukovia
 
14.07.19
17:39
(7) Закодированый конечно. Что не верно?
use MIME::Base64;
use LWP;
@headers = ('User-Agent' => 'sh.ru/account.pl',
        'Accept' => 'application/json',
        'Content-Type' => 'application/json',
        'Accept-Charset' => 'UTF-8',
        'Accept-Language' => 'ru-RU',
        'Authorization' => encode_base64('user:passwd'));
$browser = LWP::UserAgent->new();
$response = $browser->post($url, @headers, $Content);
9 zhukovia
 
14.07.19
17:47
(6) Все понял, был невнимательным и забыл про "Basic ". Огромное спасибо за помощь.. Надо было так.
@headers = ('Authorization' => 'Basic '.encode_base64('user:passwd'));