Аутентификация – проверка принадлежности предъявленного идентификатора (имени) конкретному пользователю системы, проверка подлинности. Система «1С:Предприятие» поддерживает несколько различных вариантов аутентификации, которые будут рассмотрены в следующих разделах.
Пользователь может быть аутентифицирован системой «1С:Предприятие» с помощью ввода его имени и пароля (в диалоге аутентификации, в виде параметров командной строки или строки соединения с информационной базой для внешнего соединения или automation-сервера). В этом случае проверка наличия пользователя и корректности ввода его пароля выполняет система «1С:Предприятие».
Пользователь может быть аутентифицирован неявно средствами операционной системы. Для этого пользователю должен быть поставлен в соответствие некоторый пользователь операционной системы. При старте системы, «1С:Предприятие» запрашивает у операционной системы пользователя, который аутентифицирован в системе в данный момент. Для этого в ОС Windows используется интерфейс SSPI, а в ОС Linux — GSS-API. Затем выполняется проверка, что данному пользователю операционной системы сопоставлен пользователь «1С:Предприятия». Если поиск заканчивается успешно – считается, что пользователь системы «1С:Предприятие» аутентифицирован успешно, и диалог аутентификации не отображается.
Примечание. Не поддерживается аутентификация пользователя средствами ОС в том случае, если клиентское приложение подключается к информационной базе через веб-сервер Apache, работающий под управлением ОС Windows.
Пользователь операционной системы указывается в формате: \\имя_домена\имя_пользователя.
Если необходимо принудительно выполнить аутентификацию средствами системы «1С:Предприятие», то в командной строке запуска клиентского приложения следует указать ключ командной строки -WA-. Соответственно, ключ командной строки –WA+ предназначен для принудительного применения аутентификации средствами операционной системы (действует по умолчанию).
OpenID (http://openid.net/) – это протокол, который позволяет пользователю использовать единую учетную запись для аутентификации на множестве не связанных друг с другом ресурсов, систем и т.д. Система «1С:Предприятие» использует протокол, созданный на основе протокола OpenID версии 2.0 по модели Direct Identity.
Примечание 1. Данный способ аутентификации не применим при обращении к веб-сервисам, опубликованным из «1С:Предприятия».
Примечание 2. В роли провайдера OpenID выступает информационная база «1С:Предприятия».
Общая схема работы выглядит следующим образом:
OpenID-аутентифкация работает только в тех случаях, когда доступ к информационной базе осуществляется по протоколу http и https. Это означает, что использовать OpenID-аутентификацию могут только веб-клиент и тонкий клиент, подключенный к информационной базе через веб-сервер. При OpenID-аутентификации возможны кросс-доменные запросы при работе с помощью тонкого клиента, а также с помощью веб-браузеров Mozilla Firefox, Google Chrome, Safari и Microsoft Internet Explorer версий 8 и 9. В веб-браузере Microsoft Internet Explorer версий 6.0 и 7, после ввода имени пользователя и пароля, открывается окно сообщения с запросом подтверждения на выполнение операции. Если пользователь подтверждает выполнение операции — процесс аутентификации продолжается. В противном случае вновь предлагается ввести имя пользователя и пароль.
В качестве OpenID-провайдера выступает информационная база системы «1С:Предприятие». В качестве OpenID-идентификатора используются имена пользователей информационной базы. Такая информационная база должна быть особым образом опубликована на веб-сервере (в файле публикации default.vrd расположен особый элемент) и доступна для информационной базы, которая желает выполнять аутентификацию с помощью OpenID.
В качестве OpenID-идентификатора пользователя выступает свойство Имя пользователя информационной базы OpenID-провайдера. Пароль пользователя также задается в информационной базе OpenID-провайдера. Пароль, заданный в информационной базе, которая является клиентом OpenID-провайдера, игнорируется при выполнении аутентификации с помощью OpenID.
Если необходимо принудительно выполнить аутентификацию с помощью OpenID, то в командной строке запуска клиентского приложения следует указать ключ командной строки -OIDA+ (действует по умолчанию). Соответственно, ключ командной строки –OIDA- предназначен для принудительного отключения аутентификации с помощью OpenID.
Подробнее о настройке веб-сервера для работы с OpenID-аутентификацией см. стр. 2.
Для того, чтобы система выполняла аутентификацию с помощью протокола OpenID необходимо, чтобы у пользователя был установлен флажок Аутентификация 1С:Предприятия и соответствующим образом была настроена публикация данной информационной базы на веб-сервере.
Если информационная база использует OpenID-аутентификацию, то в файле default.vrd (с помощью которого выполнена публикация информационной базы на веб-сервере) необходимо указать адрес OpenID-провайдера, с помощью которого происходит аутентификация. Для этого предназначены элементы <openid> и <rely>.
Пример:
<?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="/demo"
ib="Srvr="tcp://Server";Ref="demo";"
enable="false">
<openid>
<rely url="http://myserver.org/users-ib/e1cib/oida"/>
</openid>
</point>
Эти элементы описывают URL к провайдеру OpenID, который выполняет аутентификацию пользователя для информационной базы, использующей OpenID-аутентификацию. В данном примере в качестве провайдера OpenID выступает информационная база, опубликованная по адресу http://myserver.org/users-ib.
Подробное описание файла default.vrd см. стр. 4.
Если информационная база выступает в роли OpenID-провайдера, то в в файл default.vrd (с помощью которого выполнена публикация информационной базы на веб-сервере) необходимо указать, что данная информационная база выступает в роли OpenID-провайдера. Для этого предназначены элементы <openid> и <provider>.
Пример:
<?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="/users-ib"
ib="Srvr="tcp://Server";Ref="oidusers";" enable="false">
<openid>
<provider>
<lifetime>1209600</lifetime>
</provider>
</openid>
</point>
Эти элементы указывают:
Подробное описание файла default.vrd см. стр. 4.
Реализация OpenID-провайдера в системе «1С:Предприятие» выполняет аутентификацию только в режиме checkid_immediate и не предоставляет страницу для ввода имени пользователя и пароля. Однако, в системе реализован ряд команд, упрощающих использование OpenID-провайдера сторонними системами.
Выполнение аутентификации
Описание:
Выполняет аутентификацию. HTTP-метод — POST.
В теле запроса передаются две строки: имя и пароль пользователя.
Синтаксис:
/e1cib/oida?cmd=login
Параметры:
Адрес, на который будет выполнен переход в случае успешной аутентификации.
Возвращаемое значение:
Проверка аутентификации
Описание:
Выполняется проверка аутентификации. HTTP-метод — GET.
Синтаксис:
/e1cib/oida?cmd=isloggedin
Возвращаемое значение:
«Выход» из системы
Описание:
Выполняет «выход» из системы, при этом сбрасывается признак аутентифицированности. HTTP-метод — GET.
Синтаксис:
/e1cib/oida?cmd=logout
Параметры:
Адрес, на который будет выполнен переход в случае успешного «выхода» из системы.
Данный элемент описывает настройки, связанные с OpenID-аутентификацией. Элемент <openid> подчинен элементу <point> и может быть один или ни одного. Элементу <openid> подчинены элементы <rely> и <provider>. Подчиненные элементы могут быть или в единственном числе или отсутствовать.
Данный элемент не содержит атрибутов.
Элемент содержит адрес информационной базы, выступающей в роли OpenID-провайдера.
Указывает URL информационной базы «1С:Предприятия», выступающей в роли OpenID-провайдера. Информационная база должна быть опубликована особым образом.
Пример:
<rely url="http://myserver.org/users-ib/e1cib/oida"/>
Элемент указывает, что данная информационная база выступает в роли OpenID-провайдера. Данному элементу подчинен элемент <lifetime>, который может быть один или ни одного.
Пример:
<?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="/demo"
ib="Srvr="tcp://Server";Ref="demo";" enable="false">
<openid>
<provider/>
</openid>
</point>
Элемент указывает время жизни признака аутентифицированности идентификатора в секундах. Если не указан, то значением по умолчанию является 604 800 секунд (1 неделя).
Пример:
<?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="/demo"
ib="Srvr="tcp://Server";Ref="demo";" enable="false">
<openid>
<provider>
<lifetime>1209600</lifetime>
<provider>
</openid>
</point>