Аутентификация операционной системы 1с что это
Глава 1. Аутентификация OpenID
1.1. Виды аутентификации
Аутентификация – проверка принадлежности предъявленного идентификатора (имени) конкретному пользователю системы, проверка подлинности. Система «1С:Предприятие» поддерживает несколько различных вариантов аутентификации, которые будут рассмотрены в следующих разделах.
1.1.1. Аутентификация средствами системы «1С:Предприятие»
Пользователь может быть аутентифицирован системой «1С:Предприятие» с помощью ввода его имени и пароля (в диалоге аутентификации, в виде параметров командной строки или строки соединения с информационной базой для внешнего соединения или automation-сервера). В этом случае проверка наличия пользователя и корректности ввода его пароля выполняет система «1С:Предприятие».
1.1.2. Аутентификация операционной системы
Пользователь может быть аутентифицирован неявно средствами операционной системы. Для этого пользователю должен быть поставлен в соответствие некоторый пользователь операционной системы. При старте системы, «1С:Предприятие» запрашивает у операционной системы пользователя, который аутентифицирован в системе в данный момент. Для этого в ОС Windows используется интерфейс SSPI, а в ОС Linux — GSS-API. Затем выполняется проверка, что данному пользователю операционной системы сопоставлен пользователь «1С:Предприятия». Если поиск заканчивается успешно – считается, что пользователь системы «1С:Предприятие» аутентифицирован успешно, и диалог аутентификации не отображается.
Примечание. Не поддерживается аутентификация пользователя средствами ОС в том случае, если клиентское приложение подключается к информационной базе через веб-сервер Apache, работающий под управлением ОС Windows.
Пользователь операционной системы указывается в формате: \\имя_домена\имя_пользователя.
1.1.3. Аутентификация с помощью OpenID
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-аутентификацией см. стр. 2.
Для того, чтобы система выполняла аутентификацию с помощью протокола OpenID необходимо, чтобы у пользователя был установлен флажок Аутентификация 1С:Предприятия и соответствующим образом была настроена публикация данной информационной базы на веб-сервере.
Аутентификация 1С
Аутентификация 1С:Предприятия
Аутентификация — это подтверждение, что пользователь действительно тот за кого себя выдает.
Средствами платформы аутентификация выполняется через проверку пароля пользователя.
Для включения аутентификации средствами платформы нужно в настройках пользователя установить флаг Аутентификация 1С:Предприятия:
Ниже можно указать пароль пользователя. Тогда для входа в программу нужно ввести логин и пароль:
Если у пользователя снят флаг Аутентификация 1С:Предприятия, то он не будет отображаться в списке выбора пользователей.
Аутентификация операционной системы
Аутентификация операционной системы работает только для Windows. Но если подключение выполняется через веб-сервер Apache, то аутентификация операционной системы не будет работать.
В настройках пользователя нужно установить флаг Аутентификация операционной системы и выбрать одного из пользователей операционной системы:
При запуске платформа запросит имя пользователя у операционной системы, затем проверит есть ли в списке пользователей 1С пользователь, у которого указана аутентификация операционной системы и указан текущий пользователь ОС. Если такой пользователь 1С есть, то программа будет запущена под ним без запроса логина и пароля. Если нет такого пользователя, то будет выведен стандартный диалог ввода логина и пароля (если установлен флаг Аутентификация 1С:Предприятия).
При этом в списке пользователей должен быть хотя бы один пользователь с административными правами, у которого настроена аутентификация 1С:Предприятия. Иначе будет выдана ошибка «После исполнения в списке не осталось бы ни одного пользователя с административными правами, допускающего аутентификацию средствами 1С:Предприятия!»:
Для одного пользователя может быть одновременно включена и аутентификация средствами операционной системы и аутентификация 1С:Предприятия.
OpenID-аутентификация
OpenID-аутентификация позволяет использовать для аутентификации в 1С внешний OpenID-провайдер. OpenID-провайдером может быть как база на платформе 1С, так и внешняя система, которая реализует работу по протоколу OpenID Authentication 2.0 и расширение этого протокола, реализованное в платформе 1С.
Преимущество данной аутентификации в том, что один провайдер может использоваться для аутентификации в нескольких базах 1С. Достаточно аутентифицироваться в одной базе, чтобы в другие входить без ввода логина и пароля.
Подключение к OpenID-провайдеру может выполняться только по HTTPS. Доступ к OpenID-клиентам должен быть настроен через HTTP или HTTPS.
Алгоритм аутентификации через OpenID выглядит следующим образом:
О том как установить веб-сервер, опубликовать на нем базу 1С и настроить HTTPS можно прочитать в этом курсе.
Сначала опубликуем на веб-сервере OpenID-провайдер. Это будет база 1С с пустой конфигурацией:
Чтобы данную базу можно было использовать как OpenID-провайдер нужно на закладке OpenID установить флаг Использовать в качестве OpenID-провайдера и указать Время жизни аутентификации в секундах. После истечения этого времени нужно будет снова ввести логин и пароль при входе в 1С.
Доменная аутентификация ОС при бесшовной интеграции 1С:Документооборот 8 КОРП, редакция 2.1 и 1С:ERP Управление предприятием 2 (в клиент-серверном режиме)
Доменная аутентификация ОС при бесшовной интеграции 1С:Документооборот 8 КОРП, редакция 2.1 (2.1.27.1) и 1С:ERP Управление предприятием 2 (2.4.13.103) (в клиент-серверном режиме)
Обратился клиент с проблемой: «После перехода на новую платформу перестала работать доменная аутентификация» (рисунок 1)
Рисунок 1. Ошибка аутентификации
Продолжительный поиск в сети позволил сделать следующее заключение – если база 1С:ERP работает в клиент-серверном режиме, все запросы на подключение к веб-сервису 1С:Документооборот пойдут через сервер 1С, и авторизоваться будет пользователь, под которым запущен rphost. Пробросить доменное имя пользователя с клиента на сервер нельзя, т.к. это не позволяет сделать платформа 1С:Предприятие (8.3.16.1876).
Однако опытным путем был найден способ обойти это ограничение.
Для того, чтобы победить и заставить авторизацию работать так как мы хотим нужно сделать следующие шаги:
Важно! При выполнении последующих условий интегрированный функционал при доменной аутентификации работает для всех пользователей.
1) Включить доменную авторизацию на операционной системе сервера (Windows)
2) Запустить службы 1С под системной учетной записью 1С (полные права, через домен) (рисунок 2).
Рисунок 2. Запуск службы
3) Настройки для пользователей в ДО и ERP (рисунок 3)
Рисунок 3. Настройки пользователей
4) Первый вход после перезапуска должен быть выполнен под системной учетной записью 1С.
В результате проведенных действий при входе в интегрированную в 1С:ERP (2.4.13.103) систему 1С:Документооборот 8 КОРП (2.1.27.1), не потребуется ввода пароля пользователя, т.к. будет срабатывать аутентификация операционной системы.
Настройка аутентификации Windows при расположении веб-сервера IIS и рабочих серверов на разных машинах
Описание проблемы
Не работает аутентификация операционной системы (windows) через IIS при использовании тонкого клиента или веб-клиента.
С точки зрения пользователей, будет видно окно с запросом логина и пароля.
Проблема может заключаться в том, что методы операционной системы в силу различных причин возвращают описание текущего пользователя сеанса в таком представлении, которое не совпадает ни с одним пользователем в списке пользователей информационной базы 1С
Решение проблемы
На сервере 1С включить технологический журнал, используя следующую настройку:
Воспроизвести ситуацию с неудачной аутентификацией операционной системы. Авторизоваться под пользователем операционной системы, указанным в свойствах пользователя 1С.
Открыть технологический журнал рабочего процесса и найти событие EXCP со следующим описанием: «Идентификация пользователя не выполнена
Неправильное имя или пароль пользователя»
04:45.940011-0,CONN,2,process=rphost,t:clientID=60,Txt=Srvr: SrcUserName1: svc-1c@DOMAIN701.COM
04:45.940012-0,CONN,2,process=rphost,t:clientID=60,Txt=Srvr: DstUserName1: testuser2@DOMAIN701.COM(DOMAIN701.COM\testuser2)
04:45.971001-0,CONN,2,process=rphost,t:clientID=60,Txt=Srvr: DstUserName2: DOMAIN701\testuser2(DOMAIN701\testuser2)
04:46.205021-0,EXCP,2,process=rphost,p:processName=trade,t:clientID=60,t:applicationName=WebServerExtension,t:computerName=webserver,t:connectID=19,Exception=a01f465c-ed70-442e-ada5-847668d7a41c,Descr=’src\VResourceInfoBaseServerImpl.cpp(991):
a01f465c-ed70-442e-ada5-847668d7a41c: Идентификация пользователя не выполнена
Неправильное имя или пароль пользователя’
Заменить значение свойства «Пользователь» пользователя информационной базы согласно следующему формату «\\» + [Имя пользователя из свойства DstUserName2 без скобок].
Проверить работоспособность аутентификации средствами операционной системы, войдя в информационную базу, используя веб-клиент.
Расположение веб-сервера IIS и рабочих серверов 1С на разных машинах
В некоторых случаях, несмотря на корректно указанного пользователя операционной системы в пользователе информационной базы, при попытке входа в опубликованную базу через браузер аутентификация операционной системы не проходит. Такая ситуация может возникать, если веб-сервер IIS и сервер 1с находятся на разных машинах. В таком случае в технологическом журнале рабочего процесса можно наблюдать следующую картину:
56:39.487001-0,CONN,2,process=rphost,p:processName=accounting,t:clientID=39,t:applicationName=WebServerExtension,t:computerName=webserver,t:connectID=16,Txt=Srvr: SrcUserName1: winserver1c$@DOMAIN701.COM
56:39.487002-0,CONN,2,process=rphost,p:processName=accounting,t:clientID=39,t:applicationName=WebServerExtension,t:computerName=webserver,t:connectID=16,Txt=Srvr: DstUserName1: testuser2@DOMAIN701.COM(DOMAIN701.COM\testuser2)
56:39.596004-0,CONN,2,process=rphost,p:processName=accounting,t:clientID=39,t:applicationName=WebServerExtension,t:computerName=webserver,t:connectID=16,Txt=Srvr: DstUserName2: NT AUTHORITY\ANONYMOUS LOGON(NT AUTHORITY\ANONYMOUS LOGON )
56:39.659003-0,EXCP,2,process=rphost,p:processName=accounting,t:clientID=39,t:applicationName=WebServerExtension,t:computerName=webserver,t:connectID=16,Exception=a01f465c-ed70-442e-ada5-847668d7a41c,Descr=’src\VResourceInfoBaseServerImpl.cpp(991):
a01f465c-ed70-442e-ada5-847668d7a41c: Идентификация пользователя не выполнена
Неправильное имя или пароль пользователя’
При возникновении такой ситуации необходимо проверить следующие настройки:
1) Убедиться, что процессы сервера 1С запущены от имени доменной учетной записи, входящей в группу Domain Users.
2) Убедиться, что веб-сервер IIS настроен корректно.
В публикации информационной базы найти настройки аутентификации
В настройках аутентификации отключить анонимную аутентификацию и включить Windows-аутентификацию. В Windows-аутентификации упорядочить доступных провайдеров так, чтобы на первом месте был Negotiate.
Пул приложений публикации не нуждается в настройках, в нем можно оставить все по умолчанию.
После изменения настроек перезапустить веб-сервер с помощью команды iisreset в командной строке.
3) Убедиться, что в контроллере домена в свойствах компьютера, на котором запущен веб-сервер, на вкладке делегирование установлено «Доверять компьютеру делегирование любых служб (только Kerberos)»
Для этого откройте оснастку Active Directory Users and Computers (dsa.msc), в компьютерах найдите веб-сервер, перейдите в его свойства и на вкладке Делегирование установить значение «Доверять компьютеру делегирование любых служб (только Kerberos)» и нажать применить.
4) Убедиться, что на клиенте в свойствах обозревателя разрешена встроенная проверка подлинности Windows.
После выполнения всех действий необходимо перезагрузить клиентский компьютер (рабочие серверы перезагрузки не требуют) и убедиться, что аутентификация операционной системы успешно выполняется.
Важно: аутентификации Windows при расположении веб-сервера IIS и рабочих серверов на разных машинах в тонком клиенте работает, начиная с версии 8.3.10.2620 (для тестирования).
Применение двухфакторной аутентификации при подключении к 1С
Многие из клиентов нашей компании сильно озабочены вопросом безопасности доступа к 1С через интернет. Особенно обостряет эту проблему ситуация, когда бухгалтера хранят свой пароль на стикере, прилепленном на монитор. При таком раскладе введение дополнительных требований к сложности пароля и регулярному его изменению погоды не делает.
Чтобы максимально исключить влияние человеческого фактора мне поставили задачу организовать двухфакторную аутентификацию для веб-доступа к 1С. Ниже подробно о том, как это работает.
Первым фактором аутентификации является логин и пароль пользователя. В качестве второго фактора аутентификации мы будем использовать одноразовые пароли, передаваемые в виде SMS-сообщений на телефон зарегистрированного пользователя. Использование SMS в качестве транспорта — довольно удобное и распространенное решение.
Наряду с SMS мы протестировали вариант использования токенов и вариант получения пароля по электронной почте. Токены — не самое удобно решение, так как приходится покупать отдельный токен для каждого пользователя и ставить на компьютеры пользователей дополнительное ПО. Вариант получения паролей по электронной почте отпал из-за того, что не у всех наших пользователей есть доступ к электронной почте в тот момент времени, когда они хотят авторизоваться в 1С. В конечном счете для получения одноразовых паролей решили использовать SMS как наиболее простое и удобное решение.
В итоге получилось вот что. С точки зрения пользователя схема работы выглядит так:
Доступ к 1С предоставляется по прямой ссылке до базы данных. При переходе сразу открывается окно авторизации, оно требует имя пользователя и пароль. На данном шаге происходит проверка существования данного пользователя и наличия у него права для доступа к сайту.
После этого авторизованному пользователю отправляется код по SMS.
Далее пользователь должен ввести полученный в СМС цифровой шестизначный код. Время на ввод кода — 3 минуты.
После введения кода пользователь перенаправляется на сайт, где может авторизоваться в 1С.
Загрузочный экран… еще чуть-чуть:)
Готово! Можно приступать к работе!
Схематично решение двухфакторной аутентификации представляет собой следующее:
Рассмотрим алгоритм работы системы:
В процессе выбора продукта для двухшаговой аутентификации наряду со Swivel мне довелось рассмотреть варианты RSA и Aladdin. RSA — довольно дорогой продукт с широким спектром возможностей, что для нашей задачи как из пушки по воробьям палить. Aladdin и Swivel похожи по функционалу и находятся в одном ценовом диапазоне. Основное отличие Swivel состоит в том, что у Swivel лицензия постоянная, у Аладдина – годовая или двухгодичная. В итоге я остановился на сервере и программном продукте Swivel. Вот несколько скриншотов консоли управления сервером:
Надеюсь, я максимально полно раскрыл полученное решение, пишите свои вопросы.