Настройка Active Directory Federation Services
Настройка аутентификации OpenID Connect с использованием функции Microsoft Active Directory Federation Services (AD FS) для «1С:Шины» выполняется в н есколько этапов.
1 Включение и настройка Active Directory
В данной статье этот шаг не рассматривается. Предполагается, что к моменту интеграции AD FS и технологии «1С:Шина» служба AD включена и настроена. В противном случае предлагается сделать это самостоятельно, например, воспользовавшись официальными источниками:
- для Microsoft Windows Server: https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/deploy/install-active-directory-domain-services--level-100-
2 Включение и настройка центра сертификации (AD CS)
В данной статье этот шаг не рассматривается. Подробнее про установку и настройку центра сертификации (AD CS) можно прочитать в следующих источниках:
3 Настройки перед включением AD FS
3.1 Создание шаблона сертификата сервера
Перед тем как выпустить сертификат сервера, настройте шаблон сертификата. Д ля этого откройте консоль центра сертификации.
Центр сертификации в качестве примера установлен на том же сервере, что и сервер Active Directory. Для того чтобы его открыть, в диспетчере сервера нажмите на кнопку «Средства», далее «Центр сертификации» (Tools → Certification Authority):

Откроется консоль «Центра сертификации» (Certification Authority).
В консоли центра сертификации разверните дерево сервера сертификации, выберите пункт «Шаблоны сертификатов» (Certificate Templates), щелкните по нему правой кнопкой мыши и выберите «Управление» (Manage) в контекстном меню:

Откроется новое окно консоли «Шаблоны сертификатов» (Certificate Templates). Найдите в списке шаблон сертификата «Веб-сервер» (Web server), нажмите на него правой кнопкой мыши и в контекстном меню выберите «Дублировать шаблон» (Duplicate Template):

В свойствах нового шаблона:
- на вкладке «Общие» (General) укажите название нового шаблона;
- флаг «Публиковать сертификат в Active Directory» (Publish certificate in Active Directory) указывать не нужно;
- на вкладке «Обработка запросов» (Request Handling) установите флаг «Разрешить экспорт закрытого ключа» (Allow private key to be exported).


Нажмите ОК. Новый шаблон отобразится в списке шаблонов. Теперь консоль «Шаблоны сертификатов» (Certificate Templates) можно закрыть.

Вернитесь в консоль центра сертификации. Выберите пункт «Шаблоны сертификатов» (Certificate Templates), щелкните по нему правой кнопкой мыши и в контекстном меню выберите «Создать» (New), далее «Шаблон сертификата для выпуска» (Certificate Template to Issue).
Откроется окно «Включить шаблоны сертификатов» (Enable Certificate Templates), в котором необходимо выбрать созданный шаблон сертификата.

Выбранный шаблон сертификата отобразится в списке:

После создания шаблона сертификата можно перейти к созданию сертификата сервера, который будет использоваться при установке AD FS.
3.2 Выпуск сертификата сервера
Откройте консоль управления (mmc.exe):

В консоли управления выберите пункт меню «Файл» → «Добавить или удалить оснастку» (File → Add/Remove Snap-in).
В левой части окна добавления оснастки выберите пункт «Сертификаты» и нажмите кнопку «Добавить» (Certificates → Add):

Далее выберите пункт «Учетная запись компьютера» (Computer account) и в следующем окне укажите «Локальный компьютер (компьютер, на котором работает эта консоль)» (Local computer: (the computer this console is running on)). Нажмите «Завершить» (Finish).

В окне оснастки сертификатов сервера выберите папку «Личное» (Personal), щелкните правой кнопкой мыши по папке «Сертификаты» (Certificates), в контекстном меню выберите «Все задачи» (All tasks), далее «Запросить новый сертификат» (Request New Certificate):

Откроется мастер регистрации сертификатов, нажмите «Далее» (Next), в окне выбора политики регистрации сертификатов (Select Certificate Enrollment Policy) также нажмите «Далее» (Next).
Откроется окно запроса сертификатов (Request Certificates). Выберите шаблон сертификата и нажмите на кнопку «Свойства» (Properties):

Отроется окно «Свойства сертификата» (Certificate Properties). Выполните следующие действия:
-
На вкладке «Субъект» (Subject) в разделе «Имя субъекта» (Subject name) в поле «Тип» (Type) выберите «Обычное имя» (Common name) и укажите имя службы федерации (AD FS). Например, adfs.mydomain.ru, где adfs — имя службы федерации, mydomain.ru — имя домена.
примечаниеДалее сертификат будет использоваться для настройки службы федерации AD FS, поэтому рекомендуется указать имя *.mydomain.ru, т. к. в этом случае создается Wildcard-сертификат. Он позволит указать произвольное имя службы при настройке AD FS.
важноИмя службы федерации (AD FS) не должно совпадать с именем сервера.
-
На вкладке «Субъект» (Subject) в разделе «Альтернативное имя» (Alternative name) в поле «Тип» (Type) выберите DNS и укажите альтернативное имя службы федерации. Например, adfs.mydomain.ru.
-
Аналогичным способом добавьте альтернативные DNS-имена: certauth.adfs.mydomain.ru и enterpriseregistration.mydomain.ru.
-
В разделе «Альтернативное имя» (Alternative name) в поле «Тип» (Type) выберите IP address (v4) и укажите IP-адрес сервера, на котором будет установлена служба AD FS.
примечаниеЕсли используется IPv6, то в разделе «Альтернативное имя» (Alternative name) в поле «Тип» (Type) выберите IP address (v6) и укажите IPv6-адрес сервера, на котором будет установлена служба AD FS.

-
На вкладке «Закрытый ключ» (Private Key) в разделе «Параметры ключа» (Key options) должен быть установлен флажок «Сделать секретный ключ экспортируемым» (Make private key exportable).

-
На вкладке «Общие» (General) задайте имя (Friendly name) и описание сертификата (Description). Например, *.mydomain.ru. Нажмите ОК.
Вернитесь на страницу мастера запроса сертификатов, убедитесь, что установлен флажок для шаблона, затем нажмите на кнопку «Заявка» (Enroll).

Теперь вы можете увидеть запрошенный и зарегистрированный сертификат в личном хранилище в оснастке «Сертификаты (локальный компьютер)» (Certificates (Local Computer)).
4 Включение и настройка AD FS
Для активации компонентов AD FS выполните следующие шаги:
-
Откройте мастер добавления ролей и компонентов (Manage → Add Roles and Features Wizard).

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

-
Дойдите до страницы подтверждения установки и дождитесь окончания установки.
После установки компонентов в открывшемся окне предупреждения консоли сервера нажмите на ссылку Configure the federation service on this server.

5 Настройки после включения AD FS
5.1 Настройка службы AD FS
-
В окне мастера настройки конфигурации службы AD FS (Active Directory Federation Service Configuration Wizard) нажмите далее.

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

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

-
Далее необходимо настроить сервисного пользователя, от имени которого будет запущена служба AD FS. Выберите пункт «Создание групповой управляемой учетной записи службы» (Create a Group Managed Service Account) и укажите желаемое имя пользователя.
примечаниеЕсли на этом шаге возникнет ошибка, то во всплывающем сообщении отобразится подсказка с командой, которую необходимо выполнить в командном интерфейсе PowerShell.
-
На этапе настроек подключения базы данных (Specify Configuration Database) выберите вариант «Создать базу данных на этом сервере с помощью Windows Internal Database» (Create a database on this server using Windows Internal Database) и перейти к следующему шагу.
-
На следующем шаге отображаются для ознакомления все выбранные ранее установки.
-
На данном этапе проверяется возможность активации службы AD FS.
При возникновении ошибок мастер выведет их подробное описание и варианты их исправления.
Если ошибки не обнаружены, кнопка настройки службы (Configure) будет доступна.
Для завершения настройки службы нажмите ее и дождитесь окончания выполнения процесса мастера.

Результат успешной настройки службы федерации:

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

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

На первом шаге мастера добавления группы приложений в ыберите шаблон (Template) и имя (Name) группы приложений. Имя можно задать произвольное, а в качестве шаблона выбрать «Серверное приложение» (Server Application).

На следующем шаге скопируйте (сохраните в текстовом файле) сгенерированный идентификатор клиента (Client identifier). Он потребуется для настройки сервиса внешних учетных записей в списке пользователей приложения на «1С:Шине». На этом же этапе укажите адрес перенаправления (Redirect URI) и нажмите кнопку «Добавить» (Add).
Адрес строится по следующему принципу:
Callback URL = https://{ИмяХоста}/auth/v2/client/oauth2/code/<Идентификатор сервиса>
В нашем случае это https://element.mydomain.ru:9090/auth/v2/client/oauth2/code/019a7217-f306-73a9-b17c-6a3359a27114
Подробнее о получении идентификатора сервиса

На следующем шаге необходимо создать общий секрет и сохранить его в текстовом файле. Он потребуется для настройки сервиса внешних учетных записей в списке пользователей приложения на «1С:Шине».

На следующем этапе отображается сводка настроек. Нажмите Далее.

Для созданной группы приложений необходимо добавить веб-интерфейс. Откройте свойства группы приложений.

Нажмите кнопку «Добавить приложение».

Выберите веб-интерфейс API (Web API).

На следующем шаге заполните идентификатор, указав адрес публикации сервера «1С:Шины».

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

В разделе «Разрешенные области» выберите openid.

Технология «1С:Шина» получает данные о пользователе через конечную точку https://adfs.mydomain.ru/adfs/userinfo. Служба федерации Active Directory через конечную точку https://adfs.mydomain.ru/adfs/userinfo возвращает только обязательное утверждение sub. Поэтому достаточно разрешить только область openid.
На следующем шаге нажмите Далее и завершите создание веб-интерфейса.
Настройка AD FS практически завершена. Осталось разрешить кросс-доменные запросы клиента на сервере AD FS с помощью следующих команд, где server-name — это имя компьютера, на котором расположен веб-сервер:
-
для Microsoft Windows Server 2016
Set-AdfsResponseHeaders -SetHeaderName "Access-Control-Allow-Origin" -SetHeaderValue https://<server-name> -
для Microsoft Windows Server 2019
Set-AdfsResponseHeaders -EnableCORS $trueSet-AdfsResponseHeaders -CORSTrustedOrigins https:// <server-name>
6 Настройка сервиса внешних учетных записей OIDC
«1С:Шина» может использовать аутентификацию OIDC для входа пользователей в приложение.