Настройка MFA/SSO для 1С:Предприятие 8.3.14 и выше (OpenID Connect) - Avanpost FAM/MFA+

Настройка MFA/SSO для 1С:Предприятие 8.3.14 и выше (OpenID Connect)

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

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

Для 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 FAM по протоколу OpenID Connect:

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

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

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

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

  • через мобильное приложение Avanpost Authenticator – установить компоненты Avanpost FAM Mobile Services;
  • через мобильное приложение SafeTech PayControl – установить сервер SafeTech PayControl;
  • через SMS – настроить подключение к внешнему SMS-шлюзу, который предоставляет услугу доставки SMS-сообщений;
  • через E-mail – настроить подключение к SMTP-шлюзу, который обеспечивает доставку почтовых сообщений;
  • через Telegram – настроить подключение к Telegram Bot API;
  • посредством электронной подписи – настроить криптопровайдер и установить плагин в браузер;
  • посредством FIDO WebAuthn/U2F – настроить сертификат;
  • посредством Kerberos – настроить keytab-файл;
  • посредством Federation через ЕСИА настроить подключение к ЕСИА;
  • посредством Federation через OpenID Connect-провайдер – настроить подключение к OpenID Connect-провайдеру;
  • посредством Federation через SAML-провайдер – настроить подключение к SAML-провайдеру.

Настройка

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

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

Настройка на стороне Avanpost FAM

На стороне Avanpost FAM в административной консоли:

  1. Создать новое приложение с типом OpenID Connect, при создании приложения указав:
    1. Secret – придумать значение секрета.
    2. Redirect URIs – указать адрес, состоящий из конкатенации через символ «/» URL сервера 1С:Предприятие, имени информационной базы 1С:Предприятие и строки «authform.html»; например - «http://10.10.17.57/ZUP/authform.html».
    3. Base URL – указать значение, равное значению параметра Redirect URIs – например, «http://10.10.17.57/ZUP/authform.html».
    4. Logout URL – оставить пустым.
  2. В карточке приложения на вкладке «Настройки» и в режиме редактирования внести корректировки в следующие параметры:
    1. Публичный – включить флажок.
    2. Allowed grant types – включить флажки:
      1. «Authorization Code».
      2. «Implicit».
      3. «Refresh Token».

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

На стороне сервера 1C:Предприятие:

  1. Перейти в каталог опубликованной базы 1С на веб-сервере IIS, отредактировать файл default.vrd:
    1. Добавить секцию с настройками подключения к Avanpost FAM по OpenID Connect на основе примера из Приложения А текущей инструкции.
    2. Для параметров:
      • name – указать произвольное уникальное имя;
      • title – указать произвольную надпись, которая будет выводиться пользователям в процессе аутентификации.
    3. Для всех параметров в секции providerconfig необходимо скопировать из Discovery-документа Avanpost FAM, доступного по пути .well-known/openid-configuration, за исключением authorization_endpoint – к значению параметра из Discovery добавить «?response_mode=query».
    4. Для секции clientconfig
      • authority – URL системы аутентификации Avanpost FAM; 
      • client_id значение Client ID из секции «Настройки» приложения, созданного на предыдущем шаге;
      • redirect_uri – значение Redirect URIs из секции «Настройки» приложения, созданного на предыдущем шаге;
      • scope – значение «openid profile email»;
      • response_type – значение «id_token token»;
      • filterProtocolClaims – значение false;
      • loadUserInfo – значение false.
    5. Для параметра allowStandardAuthentication указать значение true или false, на усмотрение администратора 1С:Предприятие. При отключении этого параметра аутентификация через внутренние УЗ 1С будет недоступна.

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

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

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

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

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

  1. Перейти в браузере на 1С:Предприятие и инициировать аутентификацию через доверенный провайдер Avanpost FAM (выбрать «Войти через FAM»). Дождаться перенаправления на интерфейс аутентификации Avanpost FAM.
  2. Выполнить аутентификацию в соответствии с настроенным для 1С:Предприятие на стороне Avanpost FAM в соответствии со сценарием многофакторной аутентификации.

В результате пользователь должен успешно пройти аутентификацию в веб-клиент 1С:Предприятие.

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

  1. Запустить Тонкий клиент 1С:Предприятие и инициировать аутентификацию через доверенный провайдер Avanpost FAM (выбрать «Войти через FAM»). Дождаться перенаправления на интерфейс аутентификации Avanpost FAM.
  2. Выполнить аутентификацию в соответствии с настроенным для 1С:Предприятие на стороне Avanpost FAM в соответствии со сценарием многофакторной аутентификации.

В результате пользователь должен успешно пройти аутентификацию в Тонкий клиент 1С:Предприятие.

Настройка выполнена успешно.

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

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

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

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

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

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

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

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

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

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

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

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

  • Мобильное приложение Avanpost Authenticator;
  • Мобильное приложение SafeTech PayControl;
  • SMS;
  • TOTP;
  • E-mail;
  • Мессенджер Telegram;
  • Электронная подпись;
  • FIDO WebAuthn/U2F;
  • Kerberos;
  • Провайдер ЕСИА;
  • OpenID Connect-провайдер;
  • SAML-провайдер.

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

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

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

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

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

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

<openidconnect>
    <providers>
        <![CDATA[
         [
            {
                "name": "fam",
                "title": "Войти через FAM",
                "providerconfig": {
					"issuer": "avanpost-fam-issuer",
					"authorization_endpoint": "http://avanpost-fam-hostname/oauth2/authorize?response_mode=query",
					"token_endpoint": "http://avanpost-fam-hostname/oauth2/token",
					"response_types_supported": ["code","code token","code id_token","code token id_token","token","id_token","token id_token"],
					"scopes_supported": ["openid","profile","email","phone","groups","permissions","fullname","sub:username","name:username","uid"],
					"jwks_uri": "http://avanpost-fam-hostname/oauth2/public_keys"
				},
                "clientconfig": {
					"authority": "http://avanpost-fam-hostname/",
					"client_id": "b0dc2122-0f87-4bd4-9447-6c72573726e0",
					"redirect_uri": "http://10.10.17.57/ZUP/authform.html",
					"scope": "openid profile email",
					"response_type": "id_token token",					
					"filterProtocolClaims": false,
					"loadUserInfo": false
                }
            }
        ]]]>
    </providers>
    <allowStandardAuthentication>true</allowStandardAuthentication>
</openidconnect>

, где в качестве примера указаны:

  • http://avanpost-fam-hostname – базовый URL (Base URL) сервиса аутентификации Avanpost FAM;
  • http://10.10.17.57/ZUP/authform.html – базовый URL веб-сервиса аутентификации по OpenID Connect сервера 1С:Предприятие.

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

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

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

Пример предварительно настроенной УЗ в 1С:Предприятие:

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

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


Обсуждение