Настройка 2FA/MFA/SSO 1С:Предприятие 8.3.13 и ниже

1С:Предприятие 8.3.13 и ниже (Тонкий клиент, Enterprise SSO): настройка MFA/SSO


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

В статье описывается настройка двухфакторной аутентификации (2FA), многофакторной аутентификации (MFA) и Single-Sign On для ERP-систем на базе платформы 1С:Предприятие посредством Enterprise SSO-механизма системы Avanpost FAM. Для версии 8.3.13 или ниже доступна аутентификация для Тонкого клиента 1С:Предприятие. Схема может быть адаптирована для подключения к Avanpost FAM Толстого клиента 1С:Предприятие с целью 2FA/MFA/SSO.

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

1С:Предприятие поддерживает функциональность SSO, обеспечиваемую компонентом Avanpost FAM Agent: если пользователь прошёл аутентификацию в соответствии с настроенным сценарием, то система не будет запрашивать повторное подтверждение аутентификации.

Системные требования для интеграции 1С:Предприятие с Avanpost FAM:

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

  1. Установить в сети сервер 1С:Предприятие.
  2. Установить в сети компонент Avanpost FAM Server.
  3. На стороне Avanpost FAM Server настроить Avanpost FAM Agent.
  4. Установить АРМ пользователя, на котором:
    1. Установлен Тонкий клиент 1С:Предприятие, который успешно подключается к серверу 1С:Предприятие.
    2. Установлен компонент Avanpost FAM Agent, который успешно подключается к компоненту Avanpost FAM Server.

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

  • мобильное приложение Avanpost Authenticator – установить компонент Avanpost FAM Mobile Services;
  • мобильное приложение SafeTech PayControl – установить сервер SafeTech PayControl;
  • SMS – настроить подключение к внешнему SMS-шлюзу, который предоставляет услугу доставки SMS-сообщений;
  • E-mail – настроить подключение к SMTP-шлюзу, который обеспечивает доставку почтовых сообщений;
  • Telegram – настроить подключение к Telegram Bot API.

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

  Настройка в административной консоли на стороне Avanpost FAM Server выполняется следующим образом:

  1. Открыть административную консоль Avanpost FAM Server и перейти в форму создания приложения, нажав кнопку "Добавить приложение" режима "Приложения".
  2. На этапе "Основные настройки" требуется задать следующие параметры (более подробно параметры Enterprise SSO-приложений описаны в статье Управление Enterprise SSO-приложениями): 

    Параметр

    Значение

    Наименование

    Ввести наименование

    Тип

    Enterprise SSO

    Показывать приложение пользователям

    Выключить чекбокс (рекомендуется)

  3. На этапе "Настройки интеграции" в поле Шаблон скопировать и ввести JSON-блок с шаблоном аутентификации, получив параметры для шаблона согласно инструкции из приложения А (более подробно о разработке шаблонов в статье Разработка шаблона Enterprise SSO).
  4. На этапе "Настройки аутентификации" выбрать факторы аутентификации приложения, установив переключатели напротив тех или иных факторов (более подробно параметры Enterprise SSO-приложений описано в статьях Управление приложениями и Управление Enterprise SSO-приложениями).
  5. На этапе "Завершение" следует сохранить приложение, делая его активным сразу после создания.
  6. Перейти в профиль приложения из режима "Приложения" административной консоли. Во вкладке "Учетные записи приложения" настроить следующие параметры:
    ПараметрЗначение
    УправлениеУстановить флаг "Разрешить пользователям управление учётными записями".
    Ограничить время действия пароляРекомендуется включить переключатель.
    Время действия пароля в дняхУказать время действия в соответствии с парольными политиками для паролей в 1С:Предприятие.
    Минимальная длина пароляУказать в соответствии с парольными политиками для паролей в 1С:Предприятие.
    Минимальное количество изменённых символов пароляУказать в соответствии с парольными политиками для паролей в 1С:Предприятие.
    Пароль долженУстановить флаги в соответствии с парольными политиками для паролей в 1С:Предприятие.
  7. Нажать кнопку "Сохранить".

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

  1. Запустить на АРМ Avanpost FAM Agent, выполнить аутентификацию через УЗ в Avanpost FAM.
  2. Запустить Тонкий клиент 1С:Предприятие, дождаться перехвата Avanpost FAM Agent окна аутентификации в Тонкий клиент 1С:Предприятие.
  3. Пройти аутентификацию в соответствии с настроенным сценарием. 
  4. Если запрашивается УЗ пользователя 1С:Предприятие, предоставить реквизиты УЗ.
  5. Убедиться, что аутентификация прошла успешно.

При закрытии Тонкого клиента 1С:Предприятие и повторном открытии аутентификации пользователь должен пройти прозрачную аутентификацию посредством механизма SSO, обеспечиваемого компонентами Avanpost FAM Server и Avanpost FAM Agent.

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

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

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

2FA-аутентификация в Тонкий клиент 1С:Предприятие с push-подтверждением через Avanpost Authenticator

Avanpost FAM позволяет выполнять аутентификацию в десктопный клиент 1С:Предприятие, подключенный с целью 2FA/MFA/SSO посредством 2FA push-запрос в мобильное приложение Avanpost Authenticator при использовании Avanpost FAM: 

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

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

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

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

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

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

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

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

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

  • Мобильное приложение Avanpost Authenticator;
  • Мобильное приложение SafeTech PayControl;
  • TOTP;
  • SMS;
  • E-mail;
  • Мессенджер Telegram.

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

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

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

Если у пользователя учётная запись не привязана и включен параметр «Управление» приложения «Разрешить пользователям управлять учётными записями», то Avanpost FAM Agent выполнит запрос учётной записи у пользователя. 

Приложение А. Шаблон аутентификации в Тонкий клиент 1С:Предприятие

Пример содержимого шаблона (более подробно о разработке шаблонов в статье Разработка шаблона Enterprise SSO):

{
  "authenticateTemplates": [
    {
      "commands": [
        {
          "commandType": "Sleep",
          "sleepTime": 100
        },
        {
     "commandType": "ModifiedKeyStroke2",
     "Code1": "SHIFT",
     "Code2": "TAB"
     },
        {
          "commandType": "TextEntry",
          "textMessage": "$user"
        },
        {
          "commandType": "KeyPress",
          "code1": "TAB"
        },
        {
          "commandType": "TextEntry",
  
          "textMessage": "$password"
        },
        {
          "commandType": "KeyPress",
          "code1": "RETURN"
        }
      ],
      "grab": [
        {
          "windowName": "1C:Enterprise",
          "processName": "1cv8",
          "windowClassName": "V8TopLevelFrameTaxiStarter"
        }
      ]
    }
  ],
  "changePasswordTemplates": [
    {
      "commands": [
        {
          "commandType": "Sleep",
          "sleepTime": 100
        },
        {
          "commandType": "TextEntry",
          "textMessage": "$user"
        },
        {
          "commandType": "KeyPress",
          "code1": "TAB"
        },
        {
          "commandType": "TextEntry",
          "textMessage": "$password"
        },
        {
          "commandType": "KeyPress",
          "code1": "TAB"
        },
        {
          "commandType": "TextEntry",
          "TextMessage": "$newpassword"
        },
        {
          "commandType": "KeyPress",
          "code1": "RETURN"
        }
      ],
      "grab": [
        {
          "windowName": "ChangePassword",
          "processName": "mockauth"
        }
      ]
    }
  ]
}

"commandType": "ModifiedKeyStroke2" используется для объединения строк при нажатии SHIFT+TAB, так как при запуске 1С курсор находится в строке пароля.

При создании шаблона требуется получить параметры для ввода в секцию "grab", определяющую признаки перехвата окон десктопного приложения:

"grab": [
        {
          "windowName": "1C:Enterprise",
          "processName": "1cv8",
          "windowClassName": "V8TopLevelFrameTaxiStarter"
        }
      ]

Для получения параметров секции следует:

  1. Открыть Avanpost Agent FAM и перейти в Настройки, раздел "Настройки приложения". 
  2. Установить чекбокс "Захватить окно".
  3. Открыть приложение 1С, дождаться загрузки окна на скриншоте, нажать на него и убрать чекбокс "Захватить окно".
  4. Выбрать "Открыть журнал захваченных окон", прокрутить до нужного окна и скопировать данные для вставки в шаблон. 

Приложение Б. Одновременная аутентификация в Тонкий и Толстый клиент 1С:Предприятие

Для одновременной реализации подключения к Толстому и Тонкому клиенту в шаблоне необходимо добавить обе настройки в секцию "grab" в шаблоне следующим образом.

  • Для Толстого клиента:
    {
              "windowName": "1C:Enterprise",
              "processName": "1cv8",
              "windowClassName": "V8TopLevelFrameTaxiStarter"
            },
  • Для Тонкого клиента:
    {
              "windowName": "",
              "processName": "1cv8c",
              "windowClassName": "V8TopLevelFrameTaxiStarter"
            }

Порядок расположения секций кода не имеет значения.

Приложение В. Шаблон перехвата администрирования серверов

Для автоматического ввода учетных данных в окно «Администрирование информационной базы» (запускается через консоль MMC), необходимо создать отдельный шаблон перехвата. Стандартные шаблоны для клиента 1С:Предприятие не обрабатывают данное окно, так как оно принадлежит процессу mmc.exe. При это следует убедиться, что правила перехвата (grab) в разных шаблонах не пересекаются. Рекомендуется использовать точное совпадение по имени окна (windowName) и имени процесса (processName).

Шаблон для окна «Администрирование информационной базы 1С» (предназначен для автоматического ввода учетных данных в консоль управления серверами)

{
  "authenticateTemplates": [
    {
      "commands": [
        {
          "commandType": "Sleep",
          "sleepTime": 400
        },
        {
          "commandType": "TextEntry",
          "textMessage": "$user"
        },
        {
          "commandType": "KeyPress",
          "code1": "TAB"
        },
        {
          "commandType": "TextEntry",
          "textMessage": "$password"
        },
        {
          "commandType": "KeyPress",
          "code1": "RETURN"
        }
      ],
      "grab": [
        {
          "windowName": "Администратор информационной базы test",
          "processName": "mmc",
          "windowClassName": "#32770"
        }
      ]
    }
  ]
}

Шаблон для клиента «1С:Предприятие» (предназначен для автоматического ввода учетных данных в основной клиент 1С и окно запуска):

{
  "authenticateTemplates": [
    {
      "commands": [
        {
          "commandType": "Sleep",
          "sleepTime": 100
        },
        {
          "commandType": "ModifiedKeyStroke2",
          "Code1": "SHIFT",
          "Code2": "TAB"
        },
        {
          "commandType": "TextEntry",
          "textMessage": "$user"
        },
        {
          "commandType": "KeyPress",
          "code1": "TAB"
        },
        {
          "commandType": "TextEntry",
          "textMessage": "$password"
        },
        {
          "commandType": "KeyPress",
          "code1": "RETURN"
        }
      ],
      "grab": [
        {
          "windowName": "1С:Предприятие",
          "processName": "1cv8",
          "windowClassName": "V8TopLevelFrameTaxiStarter"
        },
        {
          "windowName": "",
          "mainWindowTitle": "Доступ к информационной базе",
          "processName": "1cv8c",
          "windowClassName": "V8TopLevelFrameTaxiStarter"
        },
        {
          "windowName": "1С:Предприятие. Доступ к информационной базе",
          "processName": "1cv8",
          "windowClassName": "V8NewLocalFrameBaseWnd"
        }
      ]
    }
  ]
}

Следует убедиться, что в шаблоне для основного клиента 1С отсутствуют правила, захватывающие окна процесса mmc. Шаблон должен ориентироваться только на процессы 1cv8, 1cv8c и соответствующие классы окон (V8TopLevelFrameTaxiStarter, V8NewLocalFrameBaseWnd).

Приложение Г. Методы интеграции и аутентификации для различных версий 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+-++-+
SMS OTP+-++-+
FIDO WebAuthn/U2F/Passkeys------
ЭП на USB-токене/смарт-карте (Рутокен ЭЦП и т.д.)+-++-+
ЭП через КриптоПро Browser Plugin------
Push в мессенджер Telegram+-++-+
Kerberos+-++-+
OIDC----++-
Пароль---++-
Программный TOTP (Яндекс.Ключ и т.д.)---++-
Аппаратный TOTP (Рутокен ОТП и т.д.)---++-
Push в Avanpost Authenticator---++-
Усиленный TOTP в Avanpost Authenticator---++-
QR в Avanpost Authenticator---++-
E-mail OTP---++-
SMS OTP---++-
FIDO WebAuthn/U2F/Passkeys (Рутокен MFA, Yubikey и т.д.)---+-
ЭП на USB-токене/смарт-карте (Рутокен ЭПЦ и т.д.)----
ЭП через КриптоПро Browser Plugin----+-
Push в мессенджер Telegram---++-
Kerberos---+-
Linux (Astra Linux, Alt Linux)ESSO-------
OIDC----++-
Пароль---++-
Программный TOTP (Яндекс.Ключ и т.д.)---++-
Аппаратный TOTP (Рутокен ОТП и т.д.)---++-
Push в Avanpost Authenticator---++-
Усиленный TOTP в Avanpost Authenticator---++-
QR в Avanpost Authenticator---++-
E-mail OTP---++-
SMS OTP---++-
FIDO WebAuthn/U2F/Passkeys (Рутокен MFA, Yubikey и т.д.)---+-
ЭП на USB-токене/смарт-карте (Рутокен ЭЦП и т.д.)------
ЭП через КриптоПро Browser Plugin----+-
Push в мессенджер Telegram---++-
Kerberos---+

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

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

Обсуждение