Identity Cloud : 1С:Предприятие: настройка MFA/SSO

Identity Cloud : 1С:Предприятие: настройка MFA/SSO

Общие сведения

В статье описывается настройка двухфакторной аутентификации (2FA), многофакторной аутентификации (MFA) и Single-Sign On (SSO) для 1С:Предприятие посредством OpenID Connect-механизма системы Avanpost Identity Cloud. Функциональность доступна для веб-интерфейса и тонкого клиента 1С:Предприятие версии 8.3.14 и выше (за исключением 1С:Предприятие версий 8.3.26 - 8.3.27, в которых присутствуют неисправности с протоколом OIDC). 

Для 1С:Предприятия, подключенного по OpenID Connect, с целью 2FA/MFA/SSO могут использоваться следующие факторы аутентификации: 

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

1С:Предприятие версии 8.3.14 и выше поддерживает функциональность SSO (Signle Sign-On), обеспечиваемую протоколом OpenID Connect: если пользователь прошёл аутентификацию в веб-приложение в соответствии с настроенным сценарием, то система не будет запрашивать повторного подтверждения аутентификации при аутентификации в другое веб-приложение. Обеспечивается реализация функций SLO (Single Logout)/Backchannel Logout в рамках протокола OpenID Connect.

Системные требования для интеграции 1С:Предприятие с Avanpost Identity Cloud по протоколу OpenID Connect:

  • корректно настроенный тенант в облачном сервисе Identity Cloud;
  • сервер 1С:Предприятие версии 8.3.14 или выше; настройка MFA/SSO для версии 1С:Предприятие 8.3.13 или ниже описана в статье по настройке MFA/SSO для 1С:Предприятие 8.3.13 и ниже через механизм Enterprise SSO;
  • веб-клиент 1С:Предприятие или тонкий клиент 1С:Предприятие совместимой с сервером 1С:Предприятие версии.

Для выполнения настройки 2FA/MFA/SSO для 1С:Предприятие в соответствии с текущей инструкцией необходимо выполнить следующие предварительные условия:

  1. Установить и развернуть в сети сервер 1С:Предприятие.
  2. Установить и развернуть в сети тенант Avanpost Identity Cloud.
  3. Обеспечить на стороне АРМ пользователя сетевую доступность сервера 1С:Предприятие.
  4. Обеспечить на стороне АРМ пользователя сетевую доступность сервера Avanpost Identity Cloud.
  5. Обеспечить на стороне сервера 1С:Предприятие сетевую доступность сервера Avanpost Identity Cloud.

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

При необходимости аутентификации:

  • через E-mail – настроить подключение к SMTP-шлюзу, который обеспечивает доставку почтовых сообщений;
  • посредством электронной подписи – настроить криптопровайдер и установить плагин в браузер;
  • посредством FIDO WebAuthn/U2F – настроить сертификат;
  • посредством Federation через OpenID Connect-провайдер – настроить подключение к OpenID Connect-провайдеру;
  • посредством Federation через SAML-провайдер – настроить подключение к SAML-провайдеру.

Для выполнения настройки подключения подготовить следующие сведения:

  • URL сервера 1С:Предприятие со схемой протокола (http:// или https://); например – «http://10.10.17.57»;
  • имя информационной базы (dbname) на стороне сервера 1С:Предприятие (например, «ZUP»).

Настройка на стороне Identity Cloud

В административной консоли Avanpost Identity Cloud требуется выполнить следующую настройку:

  1. Открыть административную консоль и перейти в форму создания приложения, нажав кнопку "Добавить приложение" режима "Приложения".
  2. На этапе "Основные настройки" требуется задать следующие параметры (более подробно параметры OIDC-приложений описаны в статье Управление OpenID Connect-приложениями):  
    ПараметрЗначение
    НаименованиеВвести наименование.
    ТипOAuth/OpenID Connect
    Показывать приложение пользователямВыключить чекбокс (рекомендуется)
  3. На этапе "Настройки интеграции" заполнить указанные поля в соответствии с таблицей:
    ПараметрЗначение
    SecretЗадать секрет (конфиденциальный ключ, который используется для аутентификации клиентского приложения), установленный на стороне целевого приложения.
    Base URL

    Базовый URL. Указать значение, равное значению параметра Redirect URIs – например, «http://10.10.17.57/ZUP/authform.html».

    Redirect URIs

    Указать адрес, состоящий из конкатенации через символ «/» URL сервера 1С:Предприятие, имени информационной базы 1С:Предприятие и строки «authform.html»; например - «http://10.10.17.57/ZUP/authform.html».

    LogoutДопускается не заполнять. Используется для реализации выхода пользователя без перенаправления в браузере (серверный выход).
  4. На этапе "Настройки аутентификации" выбрать факторы аутентификации приложения, установив переключатели напротив тех или иных факторов (особенности настройки шага описаны в разделе Управление приложениями и Управление OIDC-приложениями).
  5. На этапе "Завершение" следует сохранить приложение, делая его активным сразу после создания.
  6. Перейти в профиль приложения из режима "Приложения" административной консоли. Во вкладке "Настройки интеграции" в разделе настроить следующие параметры:


    ПубличныйУстановить флаг 
    Allowed grant types

    Установить следующие флаги:

    • «Authorization Code».
    • «Implicit».
    • «Refresh Token».
  7. Убедиться, что прочие настройки указаны верно и нажать "Сохранить".

Настройка на стороне 1С:Предприятие

На стороне сервера 1C:Предприятие выполнить следующую настройку:

  1. Перейти в каталог опубликованной базы 1С на веб-сервере IIS и начать редактировать файл default.vrd.
  2. Добавить секцию с настройками подключения к Identity Cloud по OpenID Connect на основе примера из Приложения А текущей инструкции.
  3. Указать нижеперечисленные параметры:
    ПараметрЗначение
    name

    Указать произвольное уникальное имя.

    titleУказать произвольную надпись, которая будет выводиться пользователям в процессе аутентификации.
    authenticationUserPropertyName

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

      • name – имя пользователя из информационной базы 1С;
      • OSUser – имя доменного пользователя;
      • email – адрес электронной почты пользователя;
      • matchingKey – идентификатор пользователя в системе 1С.
  4. Для всех параметров в секции providerconfig необходимо скопировать из Discovery-документа, доступного по пути .well-known/openid-configuration, за исключением authorization_endpoint – к значению параметра из Discovery добавить «?response_mode=query».
  5. Для секции clientconfig задать значения:
    ПараметрЗначение
    authorityURL системы аутентификации
    client_idЗначение Client ID из секции «Настройки» приложения, созданного в административной консоли Identity Cloud.
    redirect_uriЗначение Redirect URIs из секции «Настройки» приложения, созданного на предыдущем шаге.
    scope

    Ввести значение: «openid profile email».

    response_type

    Указать значение «id_token token».

    filterProtocolClaims

    Указать значение false.

    loadUserInfo

    Указать значение false.

  6. Для параметра allowStandardAuthentication указать значение true или false, на усмотрение администратора 1С:Предприятие. При отключении этого параметра аутентификация через внутренние УЗ 1С будет недоступна.

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

Для выполнения аутентификации в 1С:Предприятие через Identity Cloud должны быть выполнены следующие условия:

  1. УЗ пользователя существует на стороне сервера 1С:Предприятие, где:
    • Имя содержит значение E-mail пользователя;
    • Полное имя – содержит значение имени, используемое для отображения.
  2. Логин пользователя на стороне 1С:Предприятие содержит значение E-mail, соответствующее УЗ в профиле пользователя Identity Cloud.
  3. Пользователь состоит в группе на стороне Identity Cloud, которая предоставляет доступ к настроенному приложению.

Предварительное создание УЗ на стороне 1С:Предприятия осуществляется или вручную администратором системы, или сторонними средствами. 1С:Предприятие не выполняет автоматическое создание УЗ в информационной базе 1С:Предприятия на основе JWT-токена, выпущенного в рамках протокола OpenID Connect.

Для проверки в веб-интерфейсе системы 1С:Предприятие необходимо:

  1. Перейти в браузере на 1С:Предприятие и инициировать аутентификацию через доверенный провайдер Avanpost Identity Cloud. Дождаться перенаправления на интерфейс аутентификации.
  2. Выполнить аутентификацию в соответствии с настроенным для 1С:Предприятие на стороне Identity Cloud в соответствии с настроенным сценарием многофакторной аутентификации.
  3. Убедиться, что пользователь успешно аутентифицировался в веб-клиент 1С:Предприятие.

Для проверки в Тонком клиенте системы 1С:Предприятие необходимо:

  1. Запустить Тонкий клиент 1С:Предприятие и инициировать аутентификацию через доверенный провайдер Identity Cloud. Дождаться перенаправления на интерфейс аутентификации.
  2. Выполнить аутентификацию в соответствии с настроенным для 1С:Предприятие на стороне Identity Cloud в соответствии со сценарием многофакторной аутентификации.
  3. Убедиться, что пользователь успешно аутентифицировался в Тонкий клиент 1С:Предприятие.

Сценарии использования

Загрузка пользователей 1С:Предприятие из домена (LDAP)

Чтобы пользователи из домена проходили 2FA/MFA или пользовались SSO при аутентификации в 1С:Предприятие, необходимо использовать встроенную в Identity Cloud функцию интеграции с LDAP-каталогами (Microsoft Active Directory, FreeIPA, OpenLDAP и т.д.). В рамках этой функции можно настроить LDAP-фильтры, которые обеспечат загрузку в Identity Cloud только тех пользователей, которые будут использовать 2FA/MFA/SSO в 1С:Предприятие. Таким образом можно подключить несколько доменов.

Контроль попыток аутентификации пользователей к 1С:Предприятие через Avanpost Identity Cloud

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

Управление доступом пользователей к 1С:Предприятие через Avanpost Identity Cloud

Для предоставления доступа пользователю его необходимо включить в группу, которая имеет доступ к созданному приложению. Доступна реализация автоматического включения и исключения пользователя из группы в рамках синхронизации с LDAP-каталогом.

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

Управление доступом пользователей к 1С:Предприятие через домен (LDAP)

Avanpost Identity Cloud в рамках интеграции с LDAP-каталогом (Microsoft Active Directory, FreeIPA, OpenLDAP и т.д.) обеспечивает автоматизацию управления членством пользователей в группах Avanpost Identity Cloud, предоставляющих доступ к 1С:Предприятию, путём синхронизации членства пользователей в группах Identity Cloud на основе членства пользователей домена в доменных группах.

Управление сценарием аутентификации (2FA/MFA) для 1С:Предприятие через Avanpost Identity Cloud

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

  • Мобильное приложение Avanpost Authenticator;
  • TOTP;
  • E-mail;
  • Электронная подпись;
  • FIDO WebAuthn/U2F;
  • OpenID Connect-провайдер;
  • SAML-провайдер.

Управление сценарием аутентификации (2FA/MFA) для отдельных групп сотрудников, подключающихся к 1С:Предприятие, через Avanpost Identity Cloud

Для управления сценарием аутентификации (2FA/MFA) для отдельных групп сотрудников необходимо в административной консоли Avanpost Identity Cloud в карточке группы на вкладке «MFA» настроить дополнительный сценарий аутентификации. В этом случае пользователи, входящие в указанную группу, будут проходить аутентификацию с использованием второго фактора, заданного на вкладке. Таким образом можно определить специфический сценарий 2FA для администраторов и других привилегированных пользователей, подключающихся к 1С:Предприятие.

Для авторизации нужно также установить вычисляемое значение, состоящее из ‘DOMAIN\\’+user.userName, во вкладку Scopes.

Значение user.userName при этом должно также быть скопировано из атрибутов соответствующей вкладки Attributes.

Приложение А. Пример файла default.vrd на стороне IIS-сервера 1С:Предприятие

Пример настроенного конфигурационного файла default.vrd на стороне 1С:Предприятие для подключения к Identity Cloud после выполнения настройки параметров подключения к Identity Cloud:

<openidconnect>
    <providers>
        <![CDATA[
         [
            {
                "name": "fam_oidc",
                "title": "log in via FAM",
        "authenticationClaimName": "email",
                "authenticationUserPropertyName": "email",
                "discovery": "https://fam1c.avanpost.ru/.well-known/openid-configuration",
                "clientconfig": {
                    "authority": "https://avanpost-fam-hostname",
                    "client_id": "162327be-49c1-4d9d-b24a-baf372f85e4e",
                    "redirect_uri": "https://1c.avanpost.ru/OIDCtest/authform.html",
                    "scope": "openid email",
                    "response_type": "code",
            "response_mode": "query",
                    "filterProtocolClaims": false,
                    "loadUserInfo": false
                }
            },
        ]]]>
    </providers>
    <allowStandardAuthentication>true</allowStandardAuthentication>
</openidconnect> 

При настройке конфигурационного файла следует обратить внимание на следующие параметры:

ПараметрЗначение

name

Наименование OIDC-провайдера.

title

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

authenticationClaimName

Сlaim (утверждение) из ID-токена, используемый в качестве идентификатора пользователя. Если поле не заполнено, используется email.

authenticationUserPropertyName

Поле в настройках пользователя на стороне 1С, сравниваемое с идентификатором пользователя от OIDC-провайдера (параметр authenticationClaimName). Допускается указание следующих значений:

  • name – поле "Имя"(логин) пользователя в 1С;
  • OSUser – поле "Пользователь ОС" (имя локального пользователя) в карточке пользователя 1С;
  • email – поле "Адрес электронной почты" пользователя в 1С;
  • matchingKey – поле "Ключ соответствия" (поле в карточке пользователя 1С, предназначенное для интеграций).

discovery

URL-адрес Discovery Document, который содержит метаданные OIDC-провайдера (во избежание ошибки указывать в формате "https://aic.path.ru", а не "fam.path.ru").

authority

Базовый URL OIDC-сервера. Следует использовать базовый URL (Base URL) сервиса аутентификации Avanpost Identity Cloud (в данном примере: http://avanpost-aic-hostname)

client_id

Уникальный идентификатор клиентского приложения, зарегистрированного в Avanpost Identity Cloud

redirect_uri

Использовать базовый URL веб-сервиса аутентификации по OpenID Connect сервера 1С:Предприятие (в данном примере: http://1c.avanpost.ru/OIDCtest/authform.html)

scope

Запрашиваемые области (scopes).

response_type 

Тип ответа при авторизации. Допускаются следующие значения:

  • code ‑ используется для grant type Authorization Code Flow (рекомендуемое значение);
  • "id_token" и "id_token token" ‑ используется для grant type Implicit Flow (данный grant type не рекомендуется использовать по соображениям безопасности).

response_mode

Способ передачи параметры в redirect_uri.

Используется во избежание проблемы, когда 1С не может добавить "authorization_endpoint": "/oauth2/authorize?

filterProtocolClaims

Использование фильтрации для служебных (протокольных) claims:

  • false — все claims из ID-токена будут переданы в систему (в том числе служебные);
  • true — только пользовательские claims передаются в систему (например, email, name).

loadUserInfo

Использование загрузки дополнительных данных о пользователе через endpoint:

  • false —  не запрашивается /userinfo, использует только ID-токен;
  • true — после получения ID-токена делается запрос к /userinfo для получения дополнительных данных.

allowStandardAuthentication

Использование стандартной формы входа (логин и пароль), помимо OIDC:

  • true — пользователи могут входить как посредством механизма OIDC (через Avanpost Identity Cloud), так и через обычные учетные записи 1С;
  • false — разрешается вход только через Avanpost Identity Cloud.

Приложение Б. Пример настройки интеграции 1С:Предприятие на стороне административной консоли Avanpost Identity Cloud

Пример карточки OpenID Connect-приложения 1С:Предприятие в Avanpost Identity Cloud:

Приложение В. Пример корректно настроенной карточки пользователя в 1С:Предприятие

Пример предварительно настроенной УЗ в 1С:Предприятие (необходимо включить флаг "Аутентификация OpenID Connect"):


Приложение Г. Процесс аутентификации в 1С:Предприятие через Avanpost Identity Cloud

Выбор метода аутентификации на стороне 1С:Предприятие:

 Приложение Д. Методы интеграции и аутентификации для различных версий 1С

Платформа рабочей станцииМетод интеграции, платформаМетоды аутентификации1С:Предприятие 8.3.13 и младше1С:Предприятие 8.3.14 и старше
Тонкий клиентВеб-клиентТолстый клиентТонкий клиентВеб-клиентТолстый клиент
Microsoft WindowsESSO -+-++-+
Пароль+-++-+
Программный TOTP (Яндекс.Ключ и т.д.)+-++-+
Аппаратный TOTP (Рутокен ОТП и т.д.)+-++-+
Push в Avanpost Authenticator+-++-+
Усиленный TOTP в Avanpost Authenticator+-++-+
QR в Avanpost Authenticator+-++-+
E-mail OTP+-++-+
FIDO WebAuthn/U2F/Passkeys------
ЭП на USB-токене/смарт-карте (Рутокен ЭЦП и т.д.)+-++-+
ЭП через КриптоПро Browser Plugin------
Push в мессенджер Telegram+-++-+
OIDC----++-
Пароль---++-
Программный TOTP (Яндекс.Ключ и т.д.)---++-
Аппаратный TOTP (Рутокен ОТП и т.д.)---++-
Push в Avanpost Authenticator---++-
Усиленный TOTP в Avanpost Authenticator---++-
QR в Avanpost Authenticator---++-
E-mail OTP---++-
FIDO WebAuthn/U2F/Passkeys (Рутокен MFA, Yubikey и т.д.)---+-
ЭП на USB-токене/смарт-карте (Рутокен ЭПЦ и т.д.)----
ЭП через КриптоПро Browser Plugin----+-
Push в мессенджер Telegram---++-
Linux (Astra Linux, Alt Linux)ESSO-------
OIDC----++-
Пароль---++-
Программный TOTP (Яндекс.Ключ и т.д.)---++-
Аппаратный TOTP (Рутокен ОТП и т.д.)---++-
Push в Avanpost Authenticator---++-
Усиленный TOTP в Avanpost Authenticator---++-
QR в Avanpost Authenticator---++-
E-mail OTP---++-
FIDO WebAuthn/U2F/Passkeys (Рутокен MFA, Yubikey и т.д.)---+-
ЭП на USB-токене/смарт-карте (Рутокен ЭЦП и т.д.)------
ЭП через КриптоПро Browser Plugin----+-
Push в мессенджер Telegram---++-

¹ - возможна несовместимость с определёнными версиями Тонкого клиента 1С;

² - работа только через компонент Avanpost Authenticator Desktop для Windows.

Обсуждение