Имя: Пароль:
1C
1С v8
Вопрос по OpenId-аутентификации в веб-клиенте
0 _stay true_
 
14.09.16
09:27
Здравствуйте. Есть три базы с идентичнымы списками пользователей(логины, пароли, права)

Юзеры планируют работать в веб морде.

Хотим попробовать настроить так, чтобы авторизовавшись во "входной" базе, в две другие заходили без ввода логина и пароля.

Перерыл кучу статей в сети, включая итс. Опубликовал "входную" базу с галкой "использовать в качестве провайдера OpenID". Две другие опебликовал с галками "Использовать OpenID-аутентификацию и в поле с адресом провайдера указал как в инструкции: http://127.0.0.1/mybase//e1cib/oid2op
вбиваем ссылку в браузер, скачивается файлик с настройками, как в инструкции. Вот его содержимое

<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">
<XRD>
<Service priority='0'>
<Type>http://specs.openid.net/auth/2.0/server</Type>;
<URI>http://127.0.0.1/mybase/e1cib/oid2op</URI>;
</Service>
</XRD>
</xrds:XRDS>


Ни в какую не хочет появляться окно OpenID-аутентификации. Только стандартное окно 1С.

платформа 8.3.8.2054 + сервер 1С(x64), веб-сервер Apache 2.4.4(x64)

Кто настраивал подобное - поделитесь мудростью.
1 _stay true_
 
14.09.16
09:29
2 _stay true_
 
14.09.16
10:11
Ну блин, выручайте((
3 _stay true_
 
14.09.16
10:22
Где же все остроумные гении типа "позовите специалиста" или "тебе этого делать не нужно"?)) А то скучно
4 xafavute
 
14.09.16
10:24
все сервера на 1 компе?
5 _stay true_
 
14.09.16
10:24
(4) Да, я пока локально на своём играюсь с win7 x64
6 _stay true_
 
14.09.16
10:25
Все три публикации доступны по 127.0.0.1/mybase или Localhost/mybase

Пробовал ru_RU в конец добавлять - безрезультатно.
7 _stay true_
 
14.09.16
10:31
Ещё наблюдал, что базы, в публикации которых указана ссылка на провайдер, при запуске по веб-морде долго "висят", а потом появляется окно 1С-аутентификации. Установка юзеру галки "Аутентификации OpenID" не дала результатов
8 xafavute
 
14.09.16
10:36
может это?
Если OpenID-провайдер требует интерактивной аутентификации (происходит первое обращение или истекло время жизни признака аутентифицированности), клиент отображает диалог для ввода имени и пароля пользователя.

Аутентификация происходит по списку пользователей информационной базы OpenID-провайдера.
9 xafavute
 
14.09.16
10:36
добавь в базу openid тестового пользователя и проверь
10 _stay true_
 
14.09.16
10:38
(9) Пробую
11 xafavute
 
14.09.16
10:40
также включи тж по exeption
12 xafavute
 
14.09.16
10:40
еще нашел
Возможно, дело в том, что вы пытаетесь работать c OpenID провайдером по протоколу http.

Это следует из того, что в файле oid2op указан адрес OpenID провайдера с протоколом http.

<URI>http://msk-s3-arm065/sm/e1cib/oid2op</URI>;

В то время как в документации по 1С:Предприятию сказано (Руководство администратора, приложение 3, п. 3.16.8.2):

ВНИМАНИЕ! Взаимодействие с OpenID-провайдером осуществляется только по HTTPS-соединению.
13 xafavute
 
14.09.16
10:41
14 _stay true_
 
14.09.16
10:44
(12) Поднимаем Apache 2.4.4(x64) с SSL. Будем пробовать.
15 Мыш
 
14.09.16
11:01
ОпенИД не делал, но доменную авторизацию заборол. Но на ИИС.
16 _stay true_
 
19.09.16
10:51
Не получилось.

Настроили SSL как
http://adminsnotes.blogspot.ru/2008/01/apache-openssl-windows.html

В браузере стучится в базу по https://localhost:443/mybase

Ссылка на провайдер стала такой:
https://localhost:443/mybase/e1cib/oid2op

default.vrd базы провайдера Openid

<?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="/SPPR"
        ib="File=&quot;D:\KULESHOV_K_O\SPPR_FILE&quot;;"
        enableStandardOData="true"
        temp="D:\www\tmp\">
    <ws publishExtensionsByDefault="true">
        <point name="EnterpriseDataExchange_1_0_1_1"
                alias="EnterpriseDataExchange_1_0_1_1.1cws"
                enable="true"/>
        <point name="EnterpriseDataUpload_1_0_1_1"
                alias="EnterpriseDataUpload_1_0_1_1.1cws"
                enable="true"/>
        <point name="ErrorsExchange"
                alias="ErrorsExchange.1cws"
                enable="true"/>
        <point name="Exchange"
                alias="exchange.1cws"
                enable="true"/>
        <point name="Exchange_2_0_1_6"
                alias="exchange_2_0_1_6.1cws"
                enable="true"/>
        <point name="FunctionModel"
                alias="FunctionModel.1cws"
                enable="true"/>
        <point name="InterfaceVersion"
                alias="InterfaceVersion.1cws"
                enable="true"/>
    </ws>
    <httpServices publishExtensionsByDefault="true"/>
    <openid>
        <provider>
            <lifetime>604800</lifetime>
        </provider>
    </openid>
</point>


default.vrd базы со ссылкой на провайдер openid:

<?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="/DMC_WEB"
        ib="File=&quot;D:\KULESHOV_K_O\DMC_WEB&quot;;"
        enableStandardOData="true">
    <httpServices publishByDefault="false"/>
    <ws>
        <point name="AddressSystem"
                alias="AddressSystem.1cws"
                enable="true"/>
        <point name="DMMessageService"
                alias="dmmessage.1cws"
                enable="true"/>
        <point name="DMService"
                alias="dm.1cws"
                enable="true"/>
        <point name="DMX"
                alias="DMX.1cws"
                enable="true"/>
        <point name="EnterpriseDataExchange_1_0_1_1"
                alias="EnterpriseDataExchange_1_0_1_1.1cws"
                enable="true"/>
        <point name="EnterpriseDataUpload_1_0_1_1"
                alias="EnterpriseDataUpload_1_0_1_1.1cws"
                enable="true"/>
        <point name="Exchange"
                alias="exchange.1cws"
                enable="true"/>
        <point name="Exchange_2_0_1_6"
                alias="exchange_2_0_1_6.1cws"
                enable="true"/>
        <point name="Files"
                alias="files.1cws"
                enable="true"/>
        <point name="InterfaceVersion"
                alias="InterfaceVersion.1cws"
                enable="true"/>
        <point name="MEDO"
                alias="medo.1cws"
                enable="true"/>
        <point name="MEDO1C"
                alias="medo1c.1cws"
                enable="true"/>
        <point name="MobileDMVersionService"
                alias="mobileDMVersionService.1cws"
                enable="true"/>
        <point name="MEDO2013"
                alias="medo2013.1cws"
                enable="true"/>
    </ws>
    <openid>
        <rely url="https://localhost:443/SPPR//e1cib/oid2op"/>;
    </openid>
</point>

И содержимое файла oid2op

<?xml version="1.0" encoding="UTF-8"?>

<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">

<XRD>

<Service priority='0'>

<Type>http://specs.openid.net/auth/2.0/server</Type>;;

<URI>https://localhost:443/mybase/e1cib/oid2op</URI>;;

</Service>

</XRD>

</xrds:XRDS>



Всё-равно вылезает стандартное окно 1С-аутентификации.
17 _stay true_
 
19.09.16
10:53
<rely url="https://localhost:443/SPPR//e1cib/oid2op"/>;;
Опечатка
Правильно

<rely url="https://localhost:443/mybase/e1cib/oid2op"/>;;
18 xafavute
 
19.09.16
11:00
(17) Сертификаты для https как настраивал?
19 xafavute
 
19.09.16
11:00
сама ссылкка в браузере открывается?
20 arsik
 
гуру
19.09.16
11:03
А попробуй в настройках не локалхост указать, а нормальный,внешний, айпишник.
21 _stay true_
 
19.09.16
11:08
(18) сертификаты как описано в статье в (16)
http://adminsnotes.blogspot.ru/2008/01/apache-openssl-windows.html

В командной строке прописывали нужные команды. Всё как по инструкции

(20) Сейчас попробую.
22 arsik
 
гуру
19.09.16
11:10
+ (20) Клиент возможно пытается на 127.0.0.1 искать openid сервер.
23 _stay true_
 
19.09.16
11:16
(22) я первый раз такое пытаюсь поднять: разве openid-сервером в данном случае не выступает база 1С?
24 xafavute
 
19.09.16
11:22
"https://localhost:443/mybase/e1cib/oid2op";
Открывается в браузере?
25 _stay true_
 
19.09.16
11:27
(24) Да. Скачивается файлик. Как в статье на ITS описано.

<?xml version="1.0" encoding="UTF-8"?>



<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">



<XRD>



<Service priority='0'>



<Type>http://specs.openid.net/auth/2.0/server</Type>;;;



<URI>https://localhost:443/mybase/e1cib/oid2op</URI>;;;
</Service>

</XRD>

</xrds:XRDS>
26 _stay true_
 
19.09.16
15:25
Если через тонкий клиент и выставить параметр запуска /OIDA+, то такая ошибка лезет:
"1с ошибка подключения к openid провайдеру https://localhost:443/mybase/e1cib/oid2op"; и предлагает повторить попытку подключения

Через браузер даже окошко OpenID-аутентификации не лезет.
Может, чего с юзерами намудрил? В базе-провайдере: создал админа с полными правами и ролью администратор системы, поставил галку "Аутентификация 1С: предприятия" и галку "Аутентификация OpenID". Во второй базе, где указана ссылка на провайдер OpenID, просто создал юзера с таким же логином и правами, но выставил только галку "Аутентификация OpneID".
27 _stay true_
 
19.09.16
15:48
Если просто без ввода пароля нажать вход, то получаем ошибку: "Ошибка OpenID-аутентификации пользователя(Тонкий клиент).

Что за бяка-кака(((
28 arsik
 
гуру
19.09.16
18:30
Внешний айпишник указывал? У тебя клиент пытается на локалхосте найти опенайди сервер.
29 xafavute
 
19.09.16
18:34
(26) Ты уже выяснил чей список показывается: свой или чужой?
30 xafavute
 
19.09.16
18:35
И в тж что пишется?
31 xafavute
 
19.09.16
18:35
попробуй полный собрать
32 xafavute
 
19.09.16
18:36
ну и платформу не ниже 8.3.8.2027
33 _stay true_
 
20.09.16
08:36
(28) Внешний айпи не указывал, ибо пока тестирую всё на рабочем компе.
(29) В тонком клиенте в окне OpenID-аутентификации не отображаются пользователи в списке вообще. Приходится руками писать имя и пароль. Если вводишь корректные данные - ругается, что ошибка соедигнения с сервером OpenID, если оставляешь пароль пустым - вылетает ошибка "Ошибка OpenID аутентификации(тонкий клиент)
(32) Платформа 8.3.8.1933+сервер x64
(31) Не совсем понял.
(30) В ТЖ вот что вижу:

Statistics: RecordsScanned = 1, ParseTime = 0, ExecuteTime = 0, BuffersMemory = 32988, ResultRecords = 1, RecordSize = 731',Rows=1
28:59.980006-0,SYSTEM,0,process=httpd,level=TRACE,component=vrsbase,class=OID2Log,line=281,file=src\VResourceOpenID2Impl.cpp,threadId=4184,func=RequestCookies::setCookie,Msg=set cookie,Name=vrs_oid2op_auth,Value='OpenID:20160920042859:9f6a9aee-ba45-4104-919a-5c161bf1edf8:gpJlceZT/y6QRXQEVcRMe7nlPHdTgWus2RJmM9ogOwc='
28:59.980007-0,SYSTEM,0,process=httpd,level=TRACE,component=vrsbase,class=OID2Log,line=2027,file=src\VResourceOpenID2Impl.cpp,threadId=4184,func=process_oid2op_request,OP=auth OK
28:59.995001-0,SYSTEM,0,process=httpd,level=TRACE,component=vrsbase,class=OID2Log,line=1128,file=src\VResourceOpenID2Impl.cpp,threadId=2212,func=process_oid2rp_request,RP=request received
28:59.995002-0,SYSTEM,0,process=httpd,level=TRACE,component=vrsbase,class=OID2Log,line=1409,file=src\VResourceOpenID2Impl.cpp,threadId=2212,func=process_oid2rp_request,RPCommand=init
28:59.995003-0,SYSTEM,0,process=httpd,level=TRACE,component=vrsbase,class=OID2Log,line=1413,file=src\VResourceOpenID2Impl.cpp,threadId=2212,func=process_oid2rp_request,RP=init command
28:59.995004-0,SYSTEM,0,process=httpd,level=TRACE,component=vrsbase,class=OID2Log,line=281,file=src\VResourceOpenID2Impl.cpp,threadId=2212,func=RequestCookies::setCookie,Msg=set cookie,Name=vrs_nooida,Value=
28:59.995005-0,SYSTEM,0,process=httpd,level=TRACE,component=vrsbase,class=OID2Log,line=281,file=src\VResourceOpenID2Impl.cpp,threadId=2212,func=RequestCookies::setCookie,Msg=set cookie,Name=vrs_oid2rp_sii,Value=966271582496286583:3393608938:1CV8C:
28:59.995006-0,SYSTEM,0,process=httpd,level=TRACE,component=vrsbase,class=OID2Log,line=2578,file=src\VResourceOpenID2Impl.cpp,threadId=2212,func=performDiscovery,RP=open https://localhost:443/SPPR/e1cib/oid2op
29:00.011000-0,SYSTEM,0,process=httpd,level=TRACE,component=vrsbase,class=OID2Log,line=2584,file=src\VResourceOpenID2Impl.cpp,threadId=2212,func=performDiscovery,RP XRDS parsing=downloading and parsing
29:00.026000-0,EXCP,0,process=httpd,Exception=9db1fa37-b455-4f3f-b8dd-7de0ea7d6da3,Descr="src\Libxml2_Intf.cpp(136):
9db1fa37-b455-4f3f-b8dd-7de0ea7d6da3: Ошибка доступа к файлу 'https://localhost:443/SPPR/e1cib/oid2op': src\HTTPImpl.cpp(2559):
896db6ac-cc39-4065-8298-1bf5fccb9d98: Ошибка работы с Интернет:   Удаленный узел не прошел проверку"
29:00.026001-0,EXCP,0,process=httpd,Exception=c593fe3b-aeaf-496a-a32e-6b4dc2d13fff,Descr='src\VResourceOpenID2Impl.cpp(2555):
c593fe3b-aeaf-496a-a32e-6b4dc2d13fff: Ошибка разбора XML:  - [1,1]
Фатальная ошибка:
Extra content at the end of the document
SystemId: https://localhost:443/SPPR/e1cib/oid2op'
29:00.026002-0,SYSTEM,0,process=httpd,level=INFO,component=vrsbase,class=OID2Log,line=1437,file=src\VResourceOpenID2Impl.cpp,threadId=2212,func=process_oid2rp_request,RP=OP DISCOVERY ERROR https://localhost:443/SPPR/e1cib/oid2op
29:00.026003-0,SYSTEM,0,process=httpd,level=TRACE,component=vrsbase,class=OID2Log,line=281,file=src\VResourceOpenID2Impl.cpp,threadId=2212,func=RequestCookies::setCookie,Msg=set cookie,Name=vrs_nooida,Value=1
34 _stay true_
 
20.09.16
09:19
Обновляю платформу до 8.3.8.2088
35 _stay true_
 
20.09.16
14:34
Та же беда. И в cacert.pem отпечаток прописал, и как только уже не изголялся. Не работает.
36 _stay true_
 
28.09.16
10:43
попробуем ещё раз:) Апну темку)))

Кирпичами прошу не кидаться:)

Итак, было сделано следующее:

1.Установлены 1С:предприятие 8.3.8.2088+Сервер 1С: предприятия(х64) того же релиза(чтобы получить 64х-компоненты для взаимодействия с Apache 2.4.4(x64))
2. Установлен веб-сервер Apache 2.4.4(x64) с поддержкой OpenSSL/1.0.1e
3. Настроены Apache и SSL согластно инструкции http://catalog.mista.ru/public/146288/
4. в каталоге bin платформы и сервера в файлы cacert.pem добавлены отпечатки, полученные строго по инструкции http://1centerprise8.blogspot.ru/2015/08/post-https-82.html
5. Сертификат был успешно импортированы в винду в доверенные корневые центры сертификации
7. Опубликована база-провайдер с галкой "Использовать в качестве OpenID-провайдера" и временем жизни соединения 432 000 секунд.
7. Ссылка на провадйер openid получилась такой: https://myserver/SPPR/e1cib/oid2op
Как в инструкции на its
8. создан тестовый пользователь в базе провайдере СППР: OpenID, способ аутентификации 1С, пароль и роли установлены;
9. В базе-примемнике создан пользователь с таким же логином и ролями, но способ аутентификации указан OpenID;
10. Источник, примемник, настройки OpenID доступны по ссылкам;
11. Настроен технологический журнал в соответствии с интсрукцией на ИТС(получение событий OpenID)


В итоге:

1. Подключаемся к базе-приемнику по тонкому клиенту: появляется окно OpenID-аутентификации со ссылкой на провайдер, вводим логин, пароль вводим пустой или неправильный: получаем ошибку "Ошибка OpenID-аутентификации пользователя(тонкий клиент). В тех журнале наблюдаем:



38:11.145002-0,SYSTEM,0,process=httpd,level=INFO,component=vrsbase,class=OID2Log,line=1437,file=src\VResourceOpenID2Impl.cpp,threadId=1884,func=process_oid2rp_request,RP=OP DISCOVERY ERROR https://kab314-12/SPPR/e1cib/oid2op
38:11.145003-0,SYSTEM,0,process=httpd,level=TRACE,component=vrsbase,class=OID2Log,line=281,file=src\VResourceOpenID2Impl.cpp,threadId=1884,func=RequestCookies::setCookie,Msg=set cookie,Name=vrs_nooida,Value=1
39:27.810001-0,SYSTEM,0,process=httpd,level=TRACE,component=vrsbase,class=OID2Log,line=1977,file=src\VResourceOpenID2Impl.cpp,threadId=1028,func=process_oid2op_request,OP=auth command
39:27.810002-0,SYSTEM,0,process=httpd,level=DEBUG,component=vrsbase,class=OID2Log,line=393,file=src\VResourceOpenID2Impl.cpp,threadId=1028,func=read_message,Msg="can't set msg param",Key=auth.pwd,Value=
39:27.810005-1,DBV8DBEng,1,process=httpd,Trans=0,Sql="SELECT TOP 2147483647 ID, Name, Descr, OSName, Changed, RolesID, Show, Data, EAuth, AdmRole, UsSprH
FROM v8users
WHERE Name = N'OpenID' AND ID <> 0x952A5019EAE6A1F74023E7966E3EE1DE
ORDER BY Name",NParams=0,Rows=1,Func=getExecSQLStatistics
39:27.810006-3,DBV8DBEng,0,process=httpd,Trans=0,Sql="SELECT TOP 2147483647 ID, Name, Descr, OSName, Changed, RolesID, Show, Data, EAuth, AdmRole, UsSprH
FROM v8users
WHERE Name = N'OpenID' AND ID <> 0x952A5019EAE6A1F74023E7966E3EE1DE
ORDER BY Name",NParams=0,planSQLText='Fields:(
    ID,
    Name,
    Descr,
    OSName,
    Changed,
    RolesID,
    Show,
    Data,
    EAuth,
    AdmRole,
    UsSprH
)
V8USERS (v8users) RANGE SCAN USING INDEX (BYNAME) (1 fields)
WHERE
        (ID <> 952A5019EAE6A1F74023E7966E3EE1DE)

Statistics: RecordsScanned = 1, ParseTime = 0, ExecuteTime = 0, BuffersMemory = 32982, ResultRecords = 1, RecordSize = 731',Rows=1
39:27.810009-1,DBV8DBEng,1,process=httpd,Trans=0,Func=selectFileName,FileName=ibparams.inf
39:27.810010-3,DBV8DBEng,0,process=httpd,Trans=0,Func=readFile,CatName=Params,FileName=ibparams.inf
39:27.810011-0,SYSTEM,0,process=httpd,level=DEBUG,component=vrsbase,class=OID2Log,line=966,file=src\VResourceOpenID2Impl.cpp,threadId=1028,func=oid2op_check_cred,OP=invalid credentials,Username=OpenID
39:27.810012-0,SYSTEM,0,process=httpd,level=TRACE,component=vrsbase,class=OID2Log,line=2045,file=src\VResourceOpenID2Impl.cpp,threadId=1028,func=process_oid2op_request,OP=auth FAILED





2. Подключаемся к базе-приемнику по тонкому клиенту: появляется окно OpenID-аутентификации со ссылкой на провайдер, вводим КОРРЕКТНЫЕ логин/пароль(как в базе-провайдере), получаем "Ошибка подключения к OpenID-провайдеру https://myserver/SPPR/e1cib/oid2op";
В тех.журнале видим следующее:



40:46.097000-0,EXCP,0,process=httpd,Exception=9db1fa37-b455-4f3f-b8dd-7de0ea7d6da3,Descr="src\Libxml2_Intf.cpp(136):
9db1fa37-b455-4f3f-b8dd-7de0ea7d6da3: Ошибка доступа к файлу 'https://kab314-12/SPPR/e1cib/oid2op': src\HTTPImpl.cpp(2559):
896db6ac-cc39-4065-8298-1bf5fccb9d98: Ошибка работы с Интернет:   Удаленный узел не прошел проверку"
40:46.097001-0,EXCP,0,process=httpd,Exception=c593fe3b-aeaf-496a-a32e-6b4dc2d13fff,Descr='src\VResourceOpenID2Impl.cpp(2556):
c593fe3b-aeaf-496a-a32e-6b4dc2d13fff: Ошибка разбора XML:  - [1,1]
Фатальная ошибка:
Extra content at the end of the document
SystemId: https://kab314-12/SPPR/e1cib/oid2op'
40:46.097002-0,SYSTEM,0,process=httpd,level=INFO,component=vrsbase,class=OID2Log,line=1437,file=src\VResourceOpenID2Impl.cpp,threadId=1884,func=process_oid2rp_request,RP=OP DISCOVERY ERROR https://kab314-12/SPPR/e1cib/oid2op
40:46.097003-0,SYSTEM,0,process=httpd,level=TRACE,component=vrsbase,class=OID2Log,line=281,file=src\VResourceOpenID2Impl.cpp,threadId=1884,func=RequestCookies::setCookie,Msg=set cookie,Name=vrs_nooida,Value=1


Сервер и клиент всё поднято на одном компе, в апаче настроен виртуальный хост как по инструкции.

Почему пишет "узел не прошел проверку" и "ошибка работы с интернет" - для меня большая загадка(((
37 _stay true_
 
28.09.16
10:47
myserver=kab 314-12