Технологические вопросы крупных внедрений
21.10.2021

Совместное использование провайдеров маркеров доступа учетных данных и платформы 1С:Предприятие

В данной статье приводятся пошаговые настройки подключения популярных провайдеров маркеров доступа к учетным данным пользователей: Google, Azure Active Directory, Active Directory Federation Services и ЕСИА.

Если вы точно следовали инструкциям в этой статье, но настройку выполнить не получилось, просим написать нам на CorpTechSupport@1c.ru с подробным описанием проблемы, которая у вас возникла.

Содержание:

1.Обработка редактирования настроек OpenID Connect

Для упрощения настройки OpenID Connect рекомендуем воспользоваться обработкой. Обработка работает с файлом публикации информационной базы (файл c расширением VRD). С помощью обработки можно настроить только секцию Providers.

Скачать обработку

Примеры настройки в обработке:

 

2. Google

Аутентификация с помощью провайдера Google используется в том случае, если в качестве идентификатора достаточно использовать email адрес как имя пользователя информационной базы.

Для использования провайдера маркера доступа учетных данных необходимо создать учетную запись Google (или использовать имеющуюся) и иметь зарегистрированный проект в оснастке https://console.developers.google.com.

Ниже представлена пошаговая инструкция по регистрации учетной записи, созданию проекта и выполнению настройки параметров Open ID Connect для использования в связке с программной системой 1С:Предприятие.

2.1. Регистрация нового пользователя

Для регистрации пользователя необходимо перейти по ссылке https://accounts.google.com/signup, заполнить все обязательные поля и нажать кнопку «Далее».


Обратите внимание, что при регистрации портал Google может запросить реальный номер контактного телефона, на который отправляется код подтверждения.


По факту заполнения всех полей необходимо согласиться с политикой конфиденциальности и перейти к следующему этапу настройки.


2.2. Создание проекта

Следующий шаг настройки – это создание проекта и регистрация службы идентификации, которая будет выдавать и обслуживать маркеры доступа пользователей.

В первую очередь необходимо перейти в консоль разработчика Google: откройте в браузере страницу https://console.developers.google.com, используя учетные данные пользователя (существующего, либо созданного на этапе 1.1)

В консоли разработчика необходимо нажать на кнопку «Создать», находясь в разделе «Панель управления».


В открывшемся мастере создания проектов укажите идентификатор проекта, выберите местоположение и завершите процесс создания элемента с помощью кнопки «Создать».


После создания проекта необходимо выбрать его в консоли разработчика Google и перейти к разделу «Учетные данные». В этом разделе нажмите кнопку «Создать учетные данные».


Мастер настройки учетных данных предложит вам способ настройки и регистрации приложения и целевых пользователей. Необходимо выбрать настройку User Type «Внешний» и нажать кнопку «Создать».


В открывшемся окне настройки запроса доступа OAuth необходимо указать авторизованный домен, нажать на кнопку «Сохранить» и перейти к настройке ключа API OAuth2 аутентификации.


Для создания учетных данных нажмите соответствующую кнопку в консоли разработчика Google.

  

В окне создания идентификатора укажите следующие обязательные параметры:


По факту заполнения всех полей нажмите кнопку «Создать». После создания будет отображено окно с информацией о идентификаторе OAuth клиента и его секретном коде. Скопируйте полученный идентификатор и приступите к настройке файла публикации информационной базы (default.vrd).


2.3. Пример настройки OpendID Connect с помощью провайдера маркеров доступа Google

<openidconnect>

    <providers>

        <![CDATA[

         [

            {

                "name": "google_oidc",

                "title": "Google",

                "discovery": "https://accounts.google.com/.well-known/openid-configuration",

                "clientconfig": {

                "authority": " https://accounts.google.com/",

                "client_id": "<client-id>",

                "redirect_uri": "http://<web-server-name>/<publication-name>/authform.html",

                    "scope": "openid email",

                    "response_type": "id_token token",

                    "filterProtocolClaims": false,

                    "loadUserInfo": false

                }

            }

        ]]]>

    </providers>

    <allowStandardAuthentication>true</allowStandardAuthentication>

</openidconnect>

Параметры, которые необходимо изменить выделены полужирным шрифтом:


Пример настройки в обработке:


По факту заполнения правильных данных необходимо сохранить файл и попробовать снова запустить один из клиентов 1С:Предприятия. Вместо окна авторизации откроется окно выбора провайдера с возможность входа с помощью логина и пароля, указанного для провайдера. 

3. Microsoft Azure

Провайдер Microsoft Azure Active Directory может быть использован в качестве сервиса аутентификации в том случае, если вы используете сервисно-ориентированный подход к построению ландшафта окружения офиса. В данном случае все сервисы администрирования и управления как доменной авторизации, так и управление пользователями, располагаются на площадке Microsoft Azure. Технология доступна только для корпоративной учетной записи Microsoft. Бесплатная версия не поддерживается.

Процесс регистрации учетной записи Microsoft Azure не рассматривается в рамках данной статьи.

3.1. Настройка Azure Active Directory (Azure AD)

Обязательным условием для провайдера маркеров доступа Microsoft Azure AD является настроенный Azure Active Directory. Если в вашей учетной записи уже настроен Azure AD, данный раздел можно пропустить. Для настройки необходимо перейти на страницу портала https://portal.azure.com и нажать ссылку «Create a resource».


В окне мастера добавления ресурсов необходимо найти или выбрать в списке Azure Active Directory.


  

На следующем шаге с описанием ресурса нажмите кнопку «Create».


  

На заключительном шаге регистрации Azure AD необходимо заполнить следующие поля:

По факту заполнения полей нажмите кнопку «Create».


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

Для быстрого перехода к настройке Azure AD нажмите на ссылку «Here» информационного сообщения.


 

3.2. Регистрация приложения провайдера маркеров доступа Azure AD

В окне обзора Azure AD выберите раздел «App registrations»


В открывшемся окне со списком зарегистрированных приложений необходимо создать новое с помощью управляющей ссылки «New registration»


 

В окне регистрации приложения, заполните следующие значения (на изображении поля выделены красной рамкой) и нажмите кнопку «Register»:


После регистрации приложения необходимо открыть форму настроек Authentication. В этой форме нужно включить использование следующих настроек:



Процесс настройки приложения провайдера маркеров доступа завершен. При переходе к обзору созданного приложения скопируйте следующие поля, которые потребуются для настроек Open ID Connect подключения системы 1С:Предприятие:


3.3. Пример настройки OpendID Connect с помощью провайдера маркеров доступа Azure AD

<openidconnect>

    <providers>

        <![CDATA[

         [

            {/p>

                "name": "adfs_oidc",

                "title": "OIDC 1C (ADFS)",

                "discovery": "https://login.microsoftonline.com/<tenant>/v2.0/.well-known/openid-configuration",

                "authenticationClaimName": "upn",

                "clientconfig": {

                "authority": "https://login.microsoftonline.com/<tenant>/oauth2",

                "client_id": "<client-id>",

                "redirect_uri": "http://<web-server-name>/<publication-name>/authform.html",

                    "scope": "openid",

                    "response_type": "id_token token",

                    "filterProtocolClaims": false,

                    "loadUserInfo": false,

                    “resource”: "<client-id>"

                }

            }

        ]]]>

    </providers>

    <allowStandardAuthentication>true</allowStandardAuthentication>

</openidconnect>

Параметры, которые необходимо изменить выделены полужирным шрифтом:

По факту заполнения правильных данных необходимо сохранить файл и попробовать снова запустить один из клиентов 1С:Предприятия. Вместо окна авторизации откроется окно выбора провайдера с возможность входа с помощью логина и пароля, указанного для провайдера.

Дополнительные параметры для авторизации клиента:

Пример настройки в обработке:

 


4. Microsoft Active Directory Federation Services (AD FS)

Настройка аутентификации OpenID connect с использованием функции AD FS для платформы 1С:Предприятия выполняется в три этапа:

  1. Включение и настройка Active Directory. В данной статье этот шаг не рассматривается. Предполагается, что к моменту интеграции AD FS и платформы 1С:Предприятие, служба AD включена и настроена. В противном случае предлагается сделать это самостоятельно, например, воспользовавшись официальными источниками:

https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/deploy/install-active-directory-domain-services--level-100

https://social.technet.microsoft.com/wiki/contents/articles/52765.windows-server-2019-step-by-step-setup-active-directory-environment-using-powershell.aspx

  1. Включение и настройка Active Directory Federation Services
  2. Публикация информационной базы и настройка провайдера в качестве сервиса маркера доступа.

4.1.  Включение и настройка Active Directory Federation Services

Для активации компонентов AD FS необходимо выполнить следующие шаги:

  1. Открыть мастер добавления ролей и компонентов (Add Roles and Features Wizard).

  1. В открывшемся мастере переключиться на шаг выбора ролей сервера (Server Roles).
  2. Выбрать роль Active Directory Federation Services для установки.

  1. Дойти до страницы подтверждения установки и дождаться окончания установки.

После установки компонентов в открывшемся окне предупреждения консоли сервера необходимо нажать на «Configure the federation service on this server».


4.2. Настройка службы AD FS

  1. В окне мастера настройки конфигурации службы AD FS (Active Directory Federation Service Configuration Wizard) нажать далее.

  1. На странице подключения к службе домена Active Directory (Connect to Active Directory Domain Services) указать пользователя с правами доменного администратора AD, от имени которого будет запущена служба.

  1. На вкладке указания параметров сервера (Specify Service Properties) необходимо импортировать сертификат сервера, задать имя домена и его представление.

  1. Следующий шаг – настройка сервисного пользователя, от имени которого будет запущена служба AD FS. Необходимо выбрать пункт «Создание групповой управляемой учетной записи службы» («Create a Group Managed Service Account») и указать желаемое имя пользователя.

Если на этом шаге возникает ошибка, то во всплывающем сообщении будет отображена подсказка с командой, которую необходимо выполнить в командном интерфейсе PowerShell. Например, на скриншоте предупреждающее сообщение о том, что не задан корневой ключ КDS, который препятствует использованию службы групповой обработки учетных записей служб.


  1. На этапе настроек подключения базы данных (Specify Configuration Database) нужно выбрать вариант «Создать базу данных на этом сервере с помощью Windows Internal Database» («Create a database on this server using Windows Internal Database») и перейти к следующему шагу.
  2. На следующем шаге для ознакомления отображаются все выбранные ранее установки.
  3. На данном этапе проверяется возможность активации службы AD FS

При возникновении ошибок мастер выведет их подробное описание и варианты их исправления.

Если ошибки не были обнаружены, кнопка настройки службы (Configure) будет доступна.

Для завершения настройки службы необходимо нажать ее и дождаться окончания выполнения процесса мастера.


4.2.1. Публикация группы приложений в качестве провайдера аутентификации

Для использования аутентификации провайдера публикацией информационной базы 1С:Предприятие используются группы приложений (Application groups) AD FS. Непосредственное добавление группы выполняется в консоли управления AD FS


После открытия консоли управления AD FS для добавления новой группы необходимо перейти к разделу «Группы приложений» («Application groups») и выбрать пункт в меню действий (Actions) значение «Добавить группу приложений…» («Add Application Group…») или аналогичный вариант контекстного меню.


На первом шаге мастера добавления группы приложений необходимо выбрать шаблон (Template) и имя (Name) группы приложений. Имя можно задать произвольное, в качестве шаблона выбрать «Приложение с доступом с помощью web API» («Native application accessing a web API»).


На следующем шаге необходимо скопировать (и желательно сохранить в текстовом файле) сгенерированный идентификатор клиента (Client identifier). На этом же этапе необходимо указать адрес перенаправления (Redirect URI) и нажать кнопку Добавить (Add). Адрес строится по следующему принципу:

https://server-name/publication-name/authform.html,

где server-name – это имя сервера, на котором расположен веб сервер, а publication-name – это имя публикации информационной базы. Если информационная база еще не опубликована, то необходимо сначала выполнить публикацию (см. Публикация информационной базы). Последняя часть публикации authform.html является автоматически генерируемой страницей аутентификации и добавляется всегда в адрес перенаправления, если используется OpenID connect аутентификация.


Как только будет указан адрес перенаправления, можно переходить на следующий шаг, на котором нужно вставить скопированный ранее идентификатор (Identifier) в поле с соответствующим заголовком и нажать кнопку Добавить (Add).


После этого необходимо перейти к следующему шагу «Выбор политики контроля доступа» («Choose Access Control Policy»). На данном этапе необходимо нажать кнопку далее и перейти к заключительному шагу настройки группы приложений, на котором необходимо отметить «Разрешенные области» («Permitted scopes»): openid и profile.



Настройка AD FS практически завершена. Осталось разрешить кросс доменные запросы клиента на сервере AD FS с помощью команд:

Set-AdfsResponseHeaders -SetHeaderName "Access-Control-Allow-Origin" -SetHeaderValue https://<server-name>

Set-AdfsResponseHeaders -EnableCORS $true

Set-AdfsResponseHeaders -CORSTrustedOrigins https:// <server-name>

где server-name это имя компьютера, на котором расположен веб сервер.

4.2.2. Публикация информационной базы

Публикация информационной базы производится в соответствии с инструкцией https://its.1c.ru/db/v8316doc#bookmark:adm:TI000000199.

Перед настройкой необходимо убедиться, что публикация доступна в любом из вариантов работы: тонкий клиент, веб клиент или мобильный клиент.

Если база открывается и предлагает выбрать пользователя, то можно перейти к настройке аутентификации. В противном случае, если публикация недоступна, нужно вернуться к статье и убедиться, что публикация выполнена в соответствии с инструкцией.

Настройка аутентификации OpenID Connect уже производится в файле публикации default.vrd. Необходимо открыть его в любом доступном текстовом редакторе и добавить следующий блок:

<openidconnect>

    <providers>

        <![CDATA[

         [

            {

                "name": "adfs_oidc",

                "title": "OIDC 1C (ADFS)",

                "discovery": "https://<adfs-server-name>/adfs/.well-known/openid-configuration",

                "authenticationClaimName": "unique_name",

                "authenticationUserPropertyName": "OSUser",

                "clientconfig": {

                "authority": "https://<adfs-server-name>/adfs/",

                "client_id": "<client-id>",

                "redirect_uri": "http://<web-server-name>/<publication-name>/authform.html",

                    "scope": "openid",

                    "response_type": "id_token token",

                    "filterProtocolClaims": false,

                    "loadUserInfo": false

                }

            }

        ]]]>

    </providers>

    <allowStandardAuthentication>true</allowStandardAuthentication>

</openidconnect>

Параметры, которые необходимо изменить выделены полужирным шрифтом:

По факту заполнения правильных данных необходимо сохранить файл и попробовать снова запустить один из клиентов 1С:Предприятия. Вместо окна авторизации откроется окно выбора провайдера с возможность входа с помощью логина и пароля, указанного для провайдера.

Дополнительные параметры для авторизации клиента:

authenticationClaimName – имя поля, которое можно использовать в качестве идентификатора пользователя в ответе запроса к провайдеру. Доступные поля можно посмотреть в браузере по адресу https://<adfs-server-name>/adfs/.well-known/openid-configuration, в разделе «claims_supported».

authenticationUserPropertyName – тип сопоставления идентификатора с внутренним идентификатором пользователя информационной базы. Существует два варианта:

Пример настройки в обработке:

 


5. Единая система идентификации и аутентификации (ЕСИА)

Единая система идентификации и аутентификации (ЕСИА) - это удостоверяющий центр, обрабатывающий учетные записи пользователей, которые условно считаются «электронными паспортами» гражданина РФ. С помощью ЕСИА происходит авторизация на таких сайтах как порталы «Госуслуг» и «Российская общественная инициатива».

Перед тем, как использовать учетную запись ЕСИА в информационных системах 1С:Предприятие, пользователь должен быть зарегистрированным на портале Госуслуг.

Организация, которая готова предоставить вход в свои информационные системы с помощью учетных данных ЕСИА, в свою очередь должна быть зарегистрирована в качестве юридической организации на портале Госуслуг. Подробнее об этом можно ознакомиться на следующих ресурсах:

Разделы:

4.1 Как обеспечить вход пользователей через ЕСИА

4.1.2 Аутентификация с использованием OpenID Connect 1.0

После регистрации на электронный адрес ответственного лица от юридической организации будет отправлена инструкция по работе с тестовой средой с указанием тестовых учетных данных, а также доступных ресурсов тестового окружения ЕСИА.

Взаимодействие информационных систем с ЕСИА осуществляется с помощью электронных сообщений, основанных на стандарте SAML 2.0 или с использованием стандарта OpenID Connect 1.0. Информационные системы 1С:Предприятие, в рамках ЕСИА, поддерживают работу только для стандарта OpenID Connect. В отличие от таких провайдеров маркеров доступа, как Google или Microsoft, ЕСИА требует использование сертификата SSL владельца информационных систем при выполнении http запросов к провайдеру ЕСИА. В связи с этим для провайдера маркеров доступа в файле default.vrd должны быть указаны дополнительные секции:


В случае, если веб сервер работает в окружении Linux систем, данный параметр должен принимать значение пустой строки:

"module_name": ""

/opt/<crypto-provider>/<module_name>.so

В случае, если веб сервер работает в окружении Windows систем, данный параметр должен принимать значение пустой строки:

"module_path": ""

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider


В случае, если веб сервер работает в окружении Linux систем, данный параметр необходимо уточнять у авторов модуля криптографии.

Для демонстрации публикации информационной системой в ЕСИА будет использован только тестовый контур. Для использования в продуктивном контуре поставщик провайдера маркеров доступа ЕСИА предоставит отдельную инструкцию в соответствии с регламентом размещения в публичной зоне.

5.1. Публикация тестовой информационной системы

Публикация информационной системы производится в консоли технологического портала по адресу https://esia-portal1.test.gosuslugi.ru/console/tech. В качестве учетной записи для входа используйте данные из предоставленной инструкции по работе с тестовой средой.


В списке организаций, выберите ту, которая используется в инструкции.


В окне управления информационными системами нажмите кнопку «Добавить систему».


В открывшемся окне заполните значения для следующих полей:


Остальные поля можно не заполнять/изменять. После заполнения списка обязательных полей, нажмите кнопку «Сохранить».

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


Откроется окно управления сертификатами информационной системы. Необходимо нажать кнопку «Загрузить сертификат» и в диалоговом окне нажать кнопку «Загрузить». После выбора сертификата нажмите «Сохранить сертификат». Убедитесь, что загруженный сертификат появился в списке.


На этом шаге настройка провайдера в тестовом контуре технологического портала завершена.

5.2. Пример настройки OpendID Connect с помощью провайдера маркеров доступа ЕСИА

{

"name": "<Произвольное наименование провайдера>",

"title": "<Произвольный заголовок>",

"dialect": "ru-esia",

"crypto": {

"module_path": "<Путь к модулю криптографии>",

"module_name": "<Имя модуля криптографии>",

"module_type": "<Тип модуля криптографии>",

"cert_thumbprint": "<Отпечаток сертификата>"

},

"providerconfig": {

"authorization_endpoint": "https://<hostname>/aas/oauth2/ac",

"token_endpoint": "https://<hostname>/aas/oauth2/te",

"userinfo_endpoint": "https://<hostname>/rs/prns/"

},

"clientconfig": {

"authority": "https://<hostname>/aas/oauth2/ac",

"client_id": "<Мнемоника>",

"redirect_uri": "https://<hostname>/openidc/authform.html",

"scope": "openid email",

"response_type": "code",

"access_type": "offline"

}

}

Где <hostname> это имя сервера ЕСИА, который предоставляет провайдер

Расшифровка настроек: