Skip to main content
Version: Indeed Access Manager 8.2

Indeed AM Telegram Provider

Indeed AM Telegram Provider предназначен для аутентификации пользователей с помощью следующих технологий:

  • одноразовые пароли;
  • push-уведомления с запросом подтвердить или отклонить вход.

Одноразовые пароли и push-уведомления пользователи получают через бота в мессенджере Telegram.

Telegram Provider может быть использован для аутентификации в следующих модулях:

Примечание

Для работы компонента требуется доступ к серверам Telegram для сервисной службы и для провайдера.

Идентификатор провайдера
{CA4645CC-5896-485E-A6CA-011FCC20DF1D}

Предварительная настройка

Чтобы настроить Telegram Provider:

  1. Установите провайдер.
  2. Установите сервисную службу.
  3. Настройте атрибут с номером телефона.
  4. Создайте бот в приложении Telegram.
  5. Настройте сервисную службу.
  6. Задайте настройки в Management Console.
  7. Зарегистрируйте аутентификатор.

Установить провайдер

  1. Запустите файл для установки, расположенный по пути Indeed AM <номер версии>/Indeed AM Providers/Indeed AM Telegram OTP Provider/<номер версии>.
Важно

Если в инфраструктуре используется несколько Core Server, установите провайдер на всех серверах инфраструктуры. 

  1. После завершения установки компонента нужно перезагрузить систему. В окне мастера установки нажмите Да, чтобы выполнить перезагрузку сразу, или Нет, чтобы сделать это позднее вручную.

Установить сервисную службу

  1. Запустите файл IndeedId.Telegram.Service-<номер версии>.x86.ru-ru.msi, расположенный по пути Indeed AM <номер версии>/Indeed AM Providers/Indeed AM Telegram OTP Provider/.

  2. После завершения установки компонента нужно перезагрузить систему. В окне мастера установки нажмите Да, чтобы выполнить перезагрузку сразу, или Нет, чтобы сделать это позднее вручную.

Настроить атрибут с номером телефона

Чтобы использовать провайдер, задайте номер телефона в атрибуте пользователя Active Directory. По умолчанию это атрибут telephoneNumber. Также можно настроить любой другой атрибут. Если номер не задан, использовать провайдер будет невозможно.

Важно

Прежде чем приступить к настройке атрибута, обязательно расшифруйте и создайте резервную копию конфигурационного файла Core Server inetpub/wwwroot/am/core/Web.config.

Чтобы настроить атрибут с номером телефона:

  1. Запустите мастер конфигурации на компьютере с установленным Core Server: Пуск → Indeed Identity → Мастер конфигурации Indeed AM.
  2. Перейдите на вкладку Каталоги пользователей.
  3. Выберите каталог.
  4. Нажмите Изменить.
  5. Появится предупреждение, что если уменьшить область действия каталога или изменить домен, данные пользователей станут недоступны. Если вы уже расшифровали и сделали резервную копию файла inetpub/wwwroot/am/core/Web.config, нажмите ОК.
  6. В мастере конфигурации нажмите Настроить соответствие атрибутов.
  7. В поле Phone введите название атрибута пользователя в Active Directory, в котором указан номер телефона, например атрибут mobile.
  8. Дважды нажмите Сохранить.
  9. Перейдите на вкладку Подтверждение и нажмите Применить.
  10. После завершения настройки конфигурационного файла и проверки работоспособности закройте мастер.

Создать бот

  1. Откройте приложение Telegram, найдите специального бота @botfather и откройте диалог с ботом.

  2. Нажмите Start и отправьте команду /newbot.

  3. Укажите имя создаваемого бота. Данное название будет отображаться в окне диалога с ботом. Введите любое имя, например IndeedOTP.

  4. Укажите имя пользователя для аккаунта с ботом с bot в конце, например IndeedOTP_bot. Данное имя пользователя используется для ссылок на бота.

  5. При успешной регистрации отобразится токен для доступа к API. Данный токен потребуется для настройки службы AM Telegram Service и бота в Management Console.

Настроить сервисную службу

Для настройки службы нужен сервисный пользователь c правами глобального администратора Indeed AM. От имени этого пользователя будут регистрироваться аутентификаторы. В целях безопасности рекомендуется создать в Active Directory отдельного пользователя для регистрации Telegram Provider.

Чтобы настроить службу Telegram Service:

  1. Откройте конфигурационный файл службы AM.Telegram.Service.exe.config, расположенный по пути C:\Program Files(x86)\Indeed-Id\Indeed-Id Telegram Service.

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

  2. В разделе appSettings задайте значения в параметрах value для соответствующих параметров key:

cultureЯзык локализации, поддерживается русский и английский. Значение по умолчанию — ru-RU.
EAWebAPIURLURL-адрес Core Server
usernameИмя сервисного пользователя с правами глобального администратора, от имени которого будут регистрироваться аутентификаторы.
passwordПароль сервисного пользователя.
lognamesФормат логирования имен пользователей. Значение по умолчанию — Name.
Поддерживаемые форматы
  • Id — идентификатор пользователя в системе Indeed AM в формате rootUserCatalogProviderId_Guid;
  • Name — значение атрибута name из Active Directory;
  • CanonicalName — имя пользователя в формате Canonical-Name(myserver.demo.local/users/UserName);
  • PrincipalName — значение атрибута userPrincipalName из Active Directory;
  • SamCompatibleName — имя пользователя в формате domainName\UserName;
  • DistinguishedName — значение атрибута distinguishedName из Active Directory;
  • Sid — значение атрибута objectSid из Active Directory;
  • Email — значение атрибута mail из Active Directory или значение, указанное в конфигурационном файле Core Server;
  • Phone — значение атрибута telephoneNumber из Active Directory или значение, указанное в конфигурационном файле сервера.
Пример:
add key="lognames" value="PrincipalName,Sid"
botIdТокен, полученный при создании бота в Telegram.
trustedIdПроизвольный уникальный идентификатор. Значение идентификатора должно совпадать с тем, что указано в настройке Доверенный ID Telegram Service в Management Console.
Пример отредактированного раздела appSettings
      <appSettings>
<add key="culture" value="ru-RU" />
<add key="EAWebAPIURL" value="https://server.indeed.local/am/core/" />
<add key="username" value="telegram@indeed.local" />
<add key="password" value="Q1q2E3e4" />
<add key="lognames" value="Name" />
<add key="botId" value="1156320278:AAG24_EODMotm_feYYQOfbPddK_2Z_JDiKQ" />
<add key="trustedId" value="уникальный идентификатор, заданный при конфигурировании Telegram Service" />
</appSettings>
  1. В разделе logServer укажите значения следующих параметров:

    • в параметре URL укажите URL для подключения к Log Server в формате http(s)://полноеdnsимя_сервера/ls/api;

    • если закрытый ключ в реестре, а сертификат в хранилище компьютера, укажите отпечаток сертификата в параметре CertificateThumbprint;

    • если ключевая пара в pfx, укажите путь в параметре CertificateFilePath и пароль от pfx в параметре CertificateFilePassword.

      Пример
      <logServer Url="https://logserver.indeed.local/ls/api/" CertificateThumbprint="ВАШ_ОТПЕЧАТОК_СЕРТИФИКАТА" CertificateFilePath="ПУТЬ_К_PFX" CertificateFilePassword="ПАРОЛЬ_ОТ_PFX" />
  2. Сохраните изменения.

  3. Запустите службу AM Telegram Service.

    Как запустить службу
    1. Запустите диспетчер задач.
    2. В открывшемся окне нажмите Подробнее и перейдите на вкладку Службы.
    3. Найдите в списке AM Telegram Service, нажмите правой кнопкой мыши и выберите Запустить.
    Примечание

    Если вы используете несколько Core Server, одновременно можно запустить службу только на одном из серверов.

Задать настройки в Management Console

Для корректной работы провайдера задайте остальные настройки в Management Console. Для этого:

  1. На боковой панели Management Console откройте раздел Конфигурация

  2. Перейдите на вкладку Аутентификаторы.

  3. Выберите аутентификатор Telegram.

  4. При необходимости задайте общие настройки.

  5. В секции Настройки Telegram Service укажите произвольный уникальный идентификатор. Значение идентификатора должно совпадать с тем, что указано в конфигурационном файле службы AM.Telegram.Service.exe.config.

  6. В секции Режим работы выберите режим работы провайдера — Push или OTP.

  7. В секции Настройки бота:

    • В поле Идентификатор бота укажите токен, полученный при создании бота в Telegram.
    • В поле Шаблон для сообщения настройте вид сообщения. Сообщение может содержать одноразовый код для входа в приложение, название приложения, имя пользователя, дата и время входа, IP-адрес компьютера, с которого выполняется вход.
  8. Если планируется использовать Telegram Provider в режиме отправки одноразовых паролей, в секции Настройки генерации одноразового пароля:

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

    Настройте работу Telegram Provider через прокси

    В секции Настройки бота:

    • В настройке Использовать прокси выберите Да. По умолчанию выбрано Нет.
    • В поле Адрес прокси укажите адрес прокси-сервера.
    Настройте защиту от спама

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

    При обнаружении спам-атаки дальнейшая отправка сообщений блокируется на заданный период времени, а при попытке входа возникает ошибка Potential spam attack detected.

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

    Чтобы настроить защиту от спама, выполните следующее:

    1. В Management Console в разделе Конфигурация→Аутентификаторы выберите аутентификатор.
    2. В секции Настройки защиты от спама выполните следующие настройки:
      • включите или отключите защиту от спама;
      • в поле Окно оценки попыток аутентификации укажите, в течение какого времени будет выполняться расчет процента успешных попыток входа;
      • в поле Пороговое окно попыток аутентификации укажите, сколько попыток входа должно производиться за время, указанное в окне оценки попыток аутентификации;
      • в поле Процент успешных попыток аутентификации укажите минимальный процент успешных входов относительно всех отправленных сообщений.
    Пример
    Настройка включена со следующими значениями:
    • Окно оценки попыток аутентификации — 600
    • Пороговое окно попыток аутентификации — 20
    • Процент успешных попыток аутентификации — 85

    Защита от спама включится, если произойдет 21 попытка входа (отправлено 21 сообщение). Произойдет блокировка аутентификатора на 600 секунд.

    Аутентификатор разблокируется в одном из случаев:

    • процент успешных входов (пользователь успешно ввел одноразовый пароль из сообщения) достигнет значения 85;
    • прошло 600 секунд с момента блокировки.
    Информация

    События лог-сервера:

    • 2090: Обнаружена потенциальная спам-атака. Отправка сообщений приостановлена.

    • 1118: Отправка сообщений пользователям возобновлена.

Зарегистрировать аутентификатор

Примечание

При регистрации провайдера пользователь получит запрос номера телефона из аккаунта Telegram. Необходимо, чтобы номер телефона пользователя в Active Directory полностью совпадал и был одного формата. Поддерживаемые форматы: +7xxxxxxxxxx или 8xxxxxxxxxx.

  1. Откройте чат с созданным ботом. Для этого введите в поисковой строке мессенджера имя вашего бота либо перейдите по ссылке из сообщения BotFather.
  2. Нажмите Start.
  3. Введите команду /register.
  4. Введите номер телефона аккаунта Telegram.
  5. При успешной регистрации аутентификатора отобразится сообщение Вы были успешно зарегистрированы.