Технологические вопросы крупных внедрений
21.10.2021
В данной статье приводятся пошаговые настройки подключения популярных провайдеров маркеров доступа к учетным данным пользователей: Google, Azure Active Directory, Active Directory Federation Services и ЕСИА.
Если вы точно следовали инструкциям в этой статье, но настройку выполнить не получилось, просим написать нам на CorpTechSupport@1c.ru с подробным описанием проблемы, которая у вас возникла.
Для упрощения настройки OpenID Connect рекомендуем воспользоваться обработкой. Обработка работает с файлом публикации информационной базы (файл c расширением VRD). С помощью обработки можно настроить только секцию Providers.
Примеры настройки в обработке:
Аутентификация с помощью провайдера Google используется в том случае, если в качестве идентификатора достаточно использовать email адрес как имя пользователя информационной базы.
Для использования провайдера маркера доступа учетных данных необходимо создать учетную запись Google (или использовать имеющуюся) и иметь зарегистрированный проект в оснастке https://console.developers.google.com.
Ниже представлена пошаговая инструкция по регистрации учетной записи, созданию проекта и выполнению настройки параметров Open ID Connect для использования в связке с программной системой 1С:Предприятие.
Для регистрации пользователя необходимо перейти по ссылке https://accounts.google.com/signup, заполнить все обязательные поля и нажать кнопку «Далее».
Обратите внимание, что при регистрации портал Google может запросить реальный номер контактного телефона, на который отправляется код подтверждения.
По факту заполнения всех полей необходимо согласиться с политикой конфиденциальности и перейти к следующему этапу настройки.
Следующий шаг настройки – это создание проекта и регистрация службы идентификации, которая будет выдавать и обслуживать маркеры доступа пользователей.
В первую очередь необходимо перейти в консоль разработчика Google: откройте в браузере страницу https://console.developers.google.com, используя учетные данные пользователя (существующего, либо созданного на этапе 1.1)
В консоли разработчика необходимо нажать на кнопку «Создать», находясь в разделе «Панель управления».
В открывшемся мастере создания проектов укажите идентификатор проекта, выберите местоположение и завершите процесс создания элемента с помощью кнопки «Создать».
После создания проекта необходимо выбрать его в консоли разработчика Google и перейти к разделу «Учетные данные». В этом разделе нажмите кнопку «Создать учетные данные».
Мастер настройки учетных данных предложит вам способ настройки и регистрации приложения и целевых пользователей. Необходимо выбрать настройку User Type «Внешний» и нажать кнопку «Создать».
В открывшемся окне настройки запроса доступа OAuth необходимо указать авторизованный домен, нажать на кнопку «Сохранить» и перейти к настройке ключа API OAuth2 аутентификации.
Для создания учетных данных нажмите соответствующую кнопку в консоли разработчика Google.
В окне создания идентификатора укажите следующие обязательные параметры:
По факту заполнения всех полей нажмите кнопку «Создать». После создания будет отображено окно с информацией о идентификаторе OAuth клиента и его секретном коде. Скопируйте полученный идентификатор и приступите к настройке файла публикации информационной базы (default.vrd).
<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С:Предприятия. Вместо окна авторизации откроется окно выбора провайдера с возможность входа с помощью логина и пароля, указанного для провайдера.
Провайдер Microsoft Azure Active Directory может быть использован в качестве сервиса аутентификации в том случае, если вы используете сервисно-ориентированный подход к построению ландшафта окружения офиса. В данном случае все сервисы администрирования и управления как доменной авторизации, так и управление пользователями, располагаются на площадке Microsoft Azure. Технология доступна только для корпоративной учетной записи Microsoft. Бесплатная версия не поддерживается.
Процесс регистрации учетной записи Microsoft Azure не рассматривается в рамках данной статьи.
Обязательным условием для провайдера маркеров доступа 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» информационного сообщения.
В окне обзора Azure AD выберите раздел «App registrations»
В открывшемся окне со списком зарегистрированных приложений необходимо создать новое с помощью управляющей ссылки «New registration»
В окне регистрации приложения, заполните следующие значения (на изображении поля выделены красной рамкой) и нажмите кнопку «Register»:
После регистрации приложения необходимо открыть форму настроек Authentication. В этой форме нужно включить использование следующих настроек:
Процесс настройки приложения провайдера маркеров доступа завершен. При переходе к обзору созданного приложения скопируйте следующие поля, которые потребуются для настроек Open ID Connect подключения системы 1С:Предприятие:
<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С:Предприятия. Вместо окна авторизации откроется окно выбора провайдера с возможность входа с помощью логина и пароля, указанного для провайдера.
Дополнительные параметры для авторизации клиента:
Настройка аутентификации OpenID connect с использованием функции AD FS для платформы 1С:Предприятия выполняется в три этапа:
Для активации компонентов AD FS необходимо выполнить следующие шаги:
После установки компонентов в открывшемся окне предупреждения консоли сервера необходимо нажать на «Configure the federation service on this server».
Если на этом шаге возникает ошибка, то во всплывающем сообщении будет отображена подсказка с командой, которую необходимо выполнить в командном интерфейсе PowerShell. Например, на скриншоте предупреждающее сообщение о том, что не задан корневой ключ КDS, который препятствует использованию службы групповой обработки учетных записей служб.
При возникновении ошибок мастер выведет их подробное описание и варианты их исправления.
Если ошибки не были обнаружены, кнопка настройки службы (Configure) будет доступна.
Для завершения настройки службы необходимо нажать ее и дождаться окончания выполнения процесса мастера.
Для использования аутентификации провайдера публикацией информационной базы 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 это имя компьютера, на котором расположен веб сервер.
Публикация информационной базы производится в соответствии с инструкцией 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 систем, данный параметр необходимо уточнять у авторов модуля криптографии.
Для демонстрации публикации информационной системой в ЕСИА будет использован только тестовый контур. Для использования в продуктивном контуре поставщик провайдера маркеров доступа ЕСИА предоставит отдельную инструкцию в соответствии с регламентом размещения в публичной зоне.
Публикация информационной системы производится в консоли технологического портала по адресу https://esia-portal1.test.gosuslugi.ru/console/tech. В качестве учетной записи для входа используйте данные из предоставленной инструкции по работе с тестовой средой.
В списке организаций, выберите ту, которая используется в инструкции.
В окне управления информационными системами нажмите кнопку «Добавить систему».
В открывшемся окне заполните значения для следующих полей:
Остальные поля можно не заполнять/изменять. После заполнения списка обязательных полей, нажмите кнопку «Сохранить».
По факту добавления информационной системы, необходимо загрузить SSL сертификат владельца информационной системы. Для этого в списке информационных систем нажмите на кнопку рядом с публикацией информационной системы.
Откроется окно управления сертификатами информационной системы. Необходимо нажать кнопку «Загрузить сертификат» и в диалоговом окне нажать кнопку «Загрузить». После выбора сертификата нажмите «Сохранить сертификат». Убедитесь, что загруженный сертификат появился в списке.
На этом шаге настройка провайдера в тестовом контуре технологического портала завершена.
{
"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> это имя сервера ЕСИА, который предоставляет провайдер
Расшифровка настроек: