Indeed AM Telegram Provider
Indeed AM Telegram Provider предназначен для аутентификации пользователей с применением следующих технологий:
- одноразовые пароли;
- push-уведомления с запросом подтвердить или отклонить вход.
Одноразовые пароли и push-уведомления пользователи получают через бота в мессенджере Telegram.
Telegram Provider может быть использован для аутентификации в следующих модулях:
- Identity Provider,
- ADFS Extension,
- NPS Radius Extension (только в режиме отправки одноразовых паролей),
- IIS Extension.
Для работы компонента требуется доступ к серверам Telegram для сервисной службы и для провайдера.
{CA4645CC-5896-485E-A6CA-011FCC20DF1D}
Файлы для установки
Файлы для Indeed Telegram OTP Provider расположены в папке indeed AM <Номер версии>\Indeed AM Providers\Indeed AM Telegram OTP Provider.
- <Номер версии>\IndeedAM.AuthProviders.TelegramOTP-<номер версии>.x64.ru-ru.msi — пакет для установки Indeed AM Telegram Provider x64 версии;
- <Номер версии>\IndeedAM.AuthProviders.TelegramOTP-<номер версии>.x86.ru-ru.msi — пакет для установки Indeed AM Telegram Provider x86 версии;
- IndeedId.Telegram.Service-<номер версии>.x86.ru-ru.msi — пакет для установки службы для работы с ботом;
- Misc\Reg — файл настройки сервиса отправки через реестр.
Файлы шаблонов политик расположены: indeed AM <номер версии>\Misc\ADMX Templates.
Установка
Установка сервисной службы
- Выполните установку службы AM Telegram Service через запуск соответствующего пакета.
- После завершения установки может потребоваться перезагрузка системы. Если программа установки предлагает выполнить перезагрузку, подтвердите данное действие.
- Удаление/Восстановление продукта осуществляется стандартным для поддерживаемых ОС способом, через меню Панель управления.
Установка провайдера
Выполните установку провайдера Telegram через запуск соответствующего пакета.
Если в инфраструктуре используется несколько серверов Indeed AM, то установку провайдера необходимо выполнить на всех серверах инфраструктуры.
После завершения установки может потребоваться перезагрузка системы. Если программа установки предлагает выполнить перезагрузку, подтвердите данное действие.
Удаление/Восстановление продукта осуществляется стандартным для поддерживаемых ОС способом, через меню Панель управления.
Настройка атрибута с номером телефона
Для использования провайдера у пользователя должен быть задан номер телефона в атрибуте по умолчанию telephoneNumber
или в другом настроенном атрибуте, иначе провайдер будет недоступен для использования.
Для смены атрибута по умолчанию добавьте следующие параметры в конфигурационный файл сервера C:\inetpub\wwwroot\am\core\Web.config:
- тег
userMapRules
в тегеadUserCatalogProvider
; - тег
adObjectMapRule
в тегеuserMapRules
с следующими параметрами:attribute="Phone"
— указывает на изменяемый параметр;adAttribute="mobile"
— указывает, из какого атрибута Active Directory брать значение;
- тег
objectTypeSettings
; - тег
objectSetting
с параметрамиcategory="person" class="user"
.
<adUserCatalogProvider id="userId" serverName="ind.loc" containerPath="DC=ind,DC=loc" userName="userAdmin" password="Q1q2E3e4">
<userMapRules>
<adObjectMapRule attribute="Phone" adAttribute="mobile"/>
<objectTypeSettings>
<objectSetting category="person" class="user"></objectSetting>
</objectTypeSettings>
</userMapRules>
</adUserCatalogProvider>
Создание бота
Откройте приложение Telegram, найдите специального бота @botfather и откройте диалог с ботом.
Нажмите Start и введите команду
/newbot
.Укажите имя создаваемого бота, данное название будет отображаться в окне диалога с ботом. Введите любое имя, например IndeedOTP.
Укажите имя пользователя для аккаунта с ботом с bot в конце, данное имя пользователя используется для ссылок на него. Введите любое имя, например IndeedOTP_bot.
В случае успешной регистрации отобразится токен для доступа к API. Данный токен потребуется для настройки службы AM Telegram Service и сервиса отправки сообщений.
Настройка службы
Откройте конфигурационный файл службы AM.Telegram.Service.exe.config, папка C:\Program Files (x86)\Indeed-Id\Indeed-Id Telegram Service.
СоветДля сохранения изменений в конфигурационном файле приложения запустите редактор с правами администратора.
В атрибутах
value
для соответствующих атрибутовkey
укажите необходимые значения:culture
— язык локализации, поддерживается русский и английский. Значение по умолчанию — ru-RU;EAWebAPIURL
— URL-адрес сервера Indeed AM;username
— имя сервисного пользователя, обладающего правами администратора Indeed, от имени которого будет осуществляться регистрация аутентификаторов;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 или значение, указанное в конфигурационном файле сервера;Phone
— значение атрибутаtelephoneNumber
из Active Directory или значение, указанное в конфигурационном файле сервера.Пример<add key="lognames" value="PrincipalName,Sid" />
botId
— токен, полученный при создании бота в Telegram.Пример<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>trustedId
— произвольный уникальный идентификатор. Значение идентификатора должно совпадать с тем, что указано в настройке Доверенный ID Telegram Service в Management Console.
Задайте URL для подключения к лог серверу. Измените тег
logServer
.URL
— url для подключения к log серверу в формате http(s)://полноеdnsимя_сервера/ls/api;CertificateThumbprint
— если закрытый ключ в реестре, а сертификат в хранилище компьютера;CertificateFilePath
— если ключевая пара в pfx;CertificateFilePassword
— пароль от pfx.Пример<logServer Url="https://logserver.indeed.local/ls/api/" CertificateThumbprint="" CertificateFilePath="" CertificateFilePassword="" />
Запустите службу AM Telegram Service.
Важно!Если вы используете несколько серверов Indeed AM, одновременно вы можете запустить только одну службу на одном из серверов.
Регистрация аутентификатора
При регистрации провайдера пользователь получить запрос номера телефона из аккаунта Telegram. Необходимо, чтобы номер телефона пользователя в AD полностью соответствовал и был одного формата. Поддерживаемые форматы: +7xxxxxxxxxx или 8xxxxxxxxxx.
Откройте чат с созданным ботом и нажмите Start.
Введите команду
/register
. После ввода команды предоставьте боту номер телефона аккаунта Telegram.При успешной регистрации аутентификатора отобразится сообщение Вы были успешно зарегистрированы.
Настройка сервиса отправки и шаблона сообщения
Чтобы настроить сервис отправки и шаблон сообщения, выполните следующее:
- В Management Console в разделе Конфигурация→Аутентификаторы из списка выберите аутентификатор Telegram.
- В секции Настройки бота выполните следующие настройки:
- В поле Идентификатор бота укажите токен, полученный при создании бота в Telegram;
- В поле Шаблон для сообщения настройте вид сообщения. Сообщение может содержать одноразовый код для входа в приложение, название приложения, имя пользователя, дата и время входа, IP-адрес компьютера, с которого выполняется вход.
Настройка прокси
Чтобы настроить работу Telegram Provider через прокси, выполните следующие действия:
- В Management Console в разделе Конфигурация→Аутентификаторы из списка выберите аутентификатор Telegram.
- В секции Настройки бота выполните следующие настройки:
- В настройке Использовать прокси выберите Да. По умолчанию выбрано Нет;
- В поле Адрес прокси укажите адрес прокси-сервера.
Настройка одноразового пароля
Настройки применяются к серверам Indeed AM и позволяет задать длину и вхождение групп символов при генерации одноразового пароля.
Чтобы настроить генерацию одноразового пароля, выполните следующее:
- В Management Console в разделе Конфигурация→Аутентификаторы из списка выберите аутентификатор Telegram.
- В секции Настройки генерации одноразового пароля выполните следующие настройки:
- В поле Длина одноразового пароля укажите, сколько символов будет содержать одноразовый пароль;
- В настройке Цифры укажите, будет ли одноразовый пароль содержать цифры;
- В настройке Строчные латинские буквы укажите, будет ли одноразовый пароль содержать строчные латинские буквы;
- В настройке Прописные латинские буквы укажите, будет ли одноразовый пароль содержать прописные латинские буквы;
- В настройке Специальные символы укажите, будет ли одноразовый пароль содержать специальные символы.
Защита от спама
Механизм защиты от спама основан на расчете процента успешных аутентификаций относительно всех отправленных сообщений за указанный интервал времени. При этом расчет запускается, только если количество отправленных сообщений превышает количество, заданное вами в настройке Окно оценки.
При обнаружении спам-атаки дальнейшая отправка сообщений блокируется на заданный период времени, а при попытке входа возникает ошибка Potential spam attack detected.
Отправка сообщений возобновляется либо по истечении заданного периода, либо по достижении определенного количества (в процентном отношении) успешных аутентификаций.
Чтобы настроить защиту от спама, выполните следующее:
- В Management Console в разделе Конфигурация→Аутентификаторы выберите аутентификатор.
- В секции Настройки защиты от спама выполните следующие настройки:
- включите или отключите защиту от спама;
- в поле Окно оценки попыток аутентификации укажите, в течение какого времени будет выполняться расчет процента успешных попыток входа;
- в поле Пороговое окно попыток аутентификации укажите, сколько попыток входа должно производиться за время, указанное в окне оценки попыток аутентификации;
- в поле Процент успешных попыток аутентификации укажите минимальный процент успешных входов относительно всех отправленных сообщений.
Пример
- Окно оценки попыток аутентификации — 600
- Пороговое окно попыток аутентификации — 20
- Процент успешных попыток аутентификации — 85
Защита от спама включится, если произойдет 21 попытка входа (отправлено 21 сообщение). Произойдет блокировка аутентификатора на 600 секунд.
Аутентификатор разблокируется в одном из случаев:
- процент успешных входов (пользователь успешно ввел одноразовый пароль из сообщения) достигнет значения 85;
- прошло 600 секунд с момента блокировки.
События лог-сервера:
2090: Обнаружена потенциальная спам-атака. Отправка сообщений приостановлена.
1118: Отправка сообщений пользователям возобновлена.
Настройка доверенного идентификатора для Telegram Service
В Management Console на странице конфигурации аутентификатора Telegram в разделе Настройки Telegram Service укажите произвольный уникальный идентификатор. Значение идентификатора должно совпадать с тем, что указано в конфигурационном файле AM.Telegram.Service.exe.config.