Собственная авторизация в Личном кабинете

Собственная авторизация в Личном кабинете

Итак, мы хотим настроить Личный кабинет, чтобы его можно было запускать из браузера.
Для начала давайте рассмотрим принцип работы вообще HTTP-сервисов.
По сути, это доступ к информационной базе 1С через WEB и он был создан для того, чтобы отвечать на запросы извне.
Схема работы примерно следующая:
Пользователь ⟷ Браузер (Chrome, FireFox, Opera...) ⟷ Наш сервер с веб-сервером Apache или IIS ⟷ 1C
Обратите внимание, что браузер посылает запросы нашему веб серверу. То есть наш сервер должен быть доступен из того места, откуда мы посылаем запрос.
Если это локальная сеть, то через браузер мы можем работать только в локальной сети. Если же мы хотим подключаться к нашему личному кабинету из любого места, необходимо, чтобы веб-сервер был доступен из интернета. Для этого понадобится либо белый IP-адрес, который необходимо получить у провайдера, либо настройка вашего роутера (например, некоторые роутеры типа Keenetic умеют давать доступ через свои сервера к вашей внутренней сети и присваивая вашему роутеру определенный адрес вида my1c.zyxel.com).
Вот как можно настроить через роутер Keenetic:
Keenetic
После того как вы разберётесь с вопросом белого или серого IP-адреса, необходимо настроить личный кабинет.
Ранее мы уже рассмотрели, как установить веб-сервер Apache или IIS.
Теперь необходимо опубликовать базы и найти VRD-файл, который отвечает за публикацию вашей базы 1С через веб.
Необходимо отключить стандартную авторизацию средствами 1С в личном кабинете, чтобы не отображалось следующее окно:
Стандартная авторизация в веб сервиса
В личном кабинете используется своя красивая форма авторизации, которая также безопасна, как и стандартная, и прекрасно позволит авторизоваться пользователю. Безопасна она также потому, что использует проверку логина и пароля тем же способом, что и сама 1С.

Для того чтобы убрать эту форму и заменить своей новой страницей авторизации, необходимо произвести дополнительные настройки с публикацией ИБ:

Настройка публикации Apache

Выполните дополнительную настройку сервера Apache, которую начали при публикации конфигурации ранее в уроке «Публикация конфигурации на веб-сервере Apache». После публикации ИБ необходимо внести изменения в конфигурационный файл Apache и создать вторую публикацию ИБ. Для этого необходимо перейти в каталог, куда установлен Apache (у меня это C:\xampp\apache), затем открыть папку conf и отредактировать файл httpd.conf, а именно строки, добавленные при публикации базы:

# 1c publication
Alias "/ITdemo" "D:/Apache/ITDemo/"
<Directory "D:/Apache/ITDemo/">
    AllowOverride All 
    Options None 
    Order allow,deny  
    Allow from all
    SetHandler 1c-application 
    ManagedApplicationDescriptor "D:/Apache/ITDemo/default.vrd"
</Directory>		
Скопируйте и вставьте этот блок ниже. В результате должно получиться следующее:
 # 1c publication
Alias "/ITdemo" "D:/Apache/ITDemo/"
<Directory "D:/Apache/ITDemo/"> 
    AllowOverride All
    Options None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "D:/Apache/ITDemo/default.vrd"
</Directory>

# 1c publication
Alias "/ITdemo" "D:/Apache/ITDemo/"
<Directory "D:/Apache/ITDemo/">
    AllowOverride All
    Options None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "D:/Apache/ITDemo/default.vrd"
</Directory>		
В скопированном блоке измените следующие строки на собственные значения:

 Alias "/ITdemo" "D:/Apache/ITDemo/"     ->    Alias "/ITLk" "D:/Apache/ITDemoLK/"   
– таким образом вы добавляете ещё одну публикацию ИБ с именем «ITLk», которая будет расположена по следующему пути D:/Apache/ITDemoLK

<Directory "D:/Apache/ITDemo/">     ->    <Directory "D:/Apache/ITDemoLK/">   
- сам каталог файлов новой публикации;

ManagedApplicationDescriptor "D:/Apache/ITDemo/default.vrd"      ->    ManagedApplicationDescriptor "D:/Apache/ITDemoLK/default.vrd" 
  - файл описания параметров подключения.

В результате должно получиться так:

 # 1c publication
Alias "/ITdemo" "D:/Apache/ITDemo/"
<Directory "D:/Apache/ITDemo/">
    AllowOverride All
    Options None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "D:/Apache/ITDemo/default.vrd"
</Directory>

# 1c publication 
Alias "/ITLk" "D:/Apache/ITDemoLK/"
<Directory "D:/Apache/ITDemoLK/">
    AllowOverride All
    Options None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "D:/Apache/ITDemoLK/default.vrd"
</Directory>

Далее необходимо создать каталог по прописанному пути, который только что был прописан (у меня это D:/Apache/ITDemoLK/) и скопировать в него файл 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="/ITdemo"
		ib="File=&quot;D:\Bases\Tests\ITdemo&quot;;"
		enableStandardOData="true">
	<ws>
		<point name="AddressSystem"
				alias="AddressSystem.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="EquipmentService"
				alias="EquipmentService.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="InterfaceVersion"
				alias="InterfaceVersion.1cws"
				enable="true"/>
		<point name="KnowledgeDB"
				alias="kdb1.1cws"
				enable="true"/>
	</ws>
	<httpServices>
		 <service name="УстановкаОценокПоЗаданиям"
				rootUrl="score"
				enable="true"
				reuseSessions="autouse"
				sessionMaxAge="20"
				poolSize="10"
				poolTimeout="5">
			<accessTokenAuthentication>
				<issuers/>
				<accessTokenRecepientName/>
			</accessTokenAuthentication>
		</service>
                <service name="ЛичныйКабинет"
				rootUrl="lk"
				enable="true"
				reuseSessions="autouse"
				sessionMaxAge="20"
				poolSize="10"
				poolTimeout="5">
			<accessTokenAuthentication>
				<issuers/>
				<accessTokenRecepientName/>
			</accessTokenAuthentication>
		</service>
	</httpServices>
</point> 
В новом файле необходимо внести следующие изменения:

base="/ITdemo" - > base="/ITLk"

В строку подключения добавьте пользователя, данные которого будут использоваться для авторизации средствами 1С в браузере:

ib="File=&quot;D:\Bases\Tests\ITdemo&quot;;Usr=&quot;UsrLK&quot;;Pwd=&quot;741596378951&quot;;"

Пользователя «UsrLK» с паролем «741596378951» (здесь следует указать вашего служебного пользователя) необходимо добавить в ИБ позже.



<?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="/ITLk"
		ib="File=&quot;D:\Bases\Tests\ITdemo&quot;;Usr=&quot;UsrLK&quot;;Pwd=&quot;741596378951&quot;;"
		enableStandardOData="true">
	
	<httpServices>		
		<service name="ЛичныйКабинет"
				rootUrl="lk"
				enable="true"/>
	</httpServices>
</point>

После внесённых изменений необходимо перезапустить Apache, затем можно переходить к настройкам конфигурации.

Настройка публикации IIS

После публикации ИБ на веб-сервере IIS (см. «Публикация конфигурации на веб - сервере IIS») в каталоге c:\inetpub\wwwroot\ создайте новый каталог ITdemoLK, скопируйте в него содержимое каталога первой публикации c:\inetpub\wwwroot\ITdemo\, а именно 2 файла: default.vrd и web.config. Откройте файл default.vrd на редактирование и внесите следующие изменения:

base="/ITdemo" - > base="/ITdemoLK"

- имя второй публикации ИБ;

В строку подключения добавьте пользователя, который будет использоваться для авторизации средствами 1С (в окне авторизации при открытии личного кабинета в браузере):

ib="File=&quot;D:\Bases\Tests\ITdemo&quot;;Usr=&quot;UsrLK&quot;;Pwd=&quot;741596378951&quot;;"

Строка подключения для серверной базы будет выглядеть примерно так:

ib="Srvr=&quot;АДРЕС_СЕРВЕРА&quot;;Ref=&quot;НАЗВАНИЕ_БАЗЫ&quot;;Usr=&quot;UsrLK&quot;;Pwd=&quot;741596378951&quot;;"
Пользователя UsrLK с паролем 741596378951 (здесь необходимо указать вашего служебного пользователя) нужно будет добавить в ИБ позже.
Блоки веб-сервисов, а также блок описания 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="/ITdemoLK"
		ib="File="D:\Bases\Tests\ITdemo";Usr="UsrLK";Pwd="741596378951""
		enableStandardOData="true">
	
	<httpServices>		
		<service name="ЛичныйКабинет"
				rootUrl="lk"
				enable="true"/>
	</httpServices>
</point>


Для вновь созданной папки c:\inetpub\wwwroot\ITdemoLK\ необходимо предоставить полные права доступа пользователю IUSR и группе IIS_IUSRS - аналогично тому, как это делалось при первой публикации ИБ.
Затем откройте Диспетчер служб IIS, раскройте ветку Default Web Site и найдите добавленную вами папку ITdemoLK. В контекстном меню этой папки выберите "Преобразовать в приложение":

Преобразование в приложение.png

Добавление приложения.png

Далее необходимо добавить пользователя и пароль, которые были указаны в файлах публикации информационной базы:

Создание пользователя.png

Создайте профиль групп доступа и выберите права, указанные на скриншоте. В созданную группу доступа добавьте пользователя UsrLK. Не беспокойтесь: даже при использовании автоматической авторизации конечный пользователь получит доступ только к тем объектам, к которым у него есть разрешения.

Права на доступ в ЛК.png

Также необходимо убедиться, что в настройках самого Личного кабинета указана нужная страница авторизации. Для этого откройте центральную базу и перейдите: Администрирование → Личный кабинет → Настройки → Дополнительно. В реквизите "Шаблон страницы авторизации" должно быть указано имя файла login.html, который формирует новую страницу авторизации.

Проверка шаблона страницы авторизации.png

В результате пользователь увидит современную и удобную форму входа вместо стандартной:

Окно авторизации.png

Также реализована возможность смены пользователя прямо из интерфейса:

Смена пользователя.png
Стандартная форма авторизации не предоставляет такой функциональности.

Функционал собственной авторизации доступен, начиная с версии 3.1.8.1


Логотип
 Личный кабинет пользователя через браузер | Описание курса | Обезличивание пользователя личного кабинета