|
Тип аутентификации 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')); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |