Двухфакторная аутентификация в API
Скрипт для выполнения двухфакторной аутентификации через API вы можете скачать по этой ссылке.
Как работает скрипт
Скрипт выполняет аутентификацию через стандартное API Core Server. В качестве провайдеров аутентификации поддерживаются провайдеры с одноразовым паролем, Passcode, Windows Password.
Чтобы выполнить аутентификацию через API, выполните следующее:
Вызовите метод
/api/v5/templateSession/openVerifySession
. При успешном выполнении метода вернется идентификатор сессии — переменная$SessionId
в скрипте.ПримечаниеВ качестве примера в скрипте используется формат имени PrincipalName.
Следующие шаги отличаются в зависимости от используемого провайдера аутентификации:
- Если одноразовый код известен
- Если одноразовый код не известен
Если одноразовый код известен и его не нужно отправлять, то аутентификация выполняется по следующему алгоритму (функция SimpleLogon
в скрипте):
- Запрашивается ввод одноразового кода.
- Подготовка шаблона аутентификации — вызывается метод
/api/v5/templateSession/prepareTemplateData
.
В качестве Data
строкой передается одноразовый код (строка №12 в скрипте). Если подготовка прошла успешно, то создается шаблон, вызывается метод /api/v5/templateSession/createTemplate
.
Завершающий шаг — это аутентификация пользователя с помощью метода /api/v5/logon/authenticate
.
При успешной аутентификации возвращается токен в формате JSON.
Вызовите метод
/api/v5/templateSession/prepareTemplateData
. Первоначально в качествеData
передается значение Null.Первый вызов необходим для того, чтобы сервер выполнил отправку одноразового кода, например отправку СМС. Также при первоначальном запросе значение параметра
EnoughData
будет содержать false.Запрашивается ввод одноразового кода.
Подготовка шаблона аутентификации — вызывается метод
/api/v5/templateSession/prepareTemplateData
.
В качестве Data
строкой передается одноразовый код (строка №12 в скрипте). Запрос вернет объект, где значение параметра EnoughData
будет содержать true. Если подготовка прошла успешно, то создается шаблон, вызывается метод /api/v5/templateSession/createTemplate
.
Завершающий шаг — это аутентификация пользователя с помощью метода /api/v5/logon/authenticate
. При успешной аутентификации возвращается токен в формате JSON.
Предварительные требования
- работоспособный сервер Indeed AM,
- наличие лицензии Authentication API.
Настройка
Для работы скрипта необходимо сконфигурировать файл Config.ps1, который находится в корне папки со скриптом.
$serverUrl
— URL сервера Indeed AM. Обязательный параметр.
$logsOnFile
— включение\отключение логирования в файл. Обязательный параметр. По умолчанию включено.
$logsOnConsole
— включение\отключение логирования в консоль. Обязательный параметр. По умолчанию отключено.
$apiVersion
— версия API, используемая в скрипте. Обязательный параметр. Значение по умолчанию — v5.
В основном файле main.ps1 выполните следующее:
В параметре
$ProviderGuid
укажите GUID провайдера аутентификации, который будет использоваться в скрипте.В качестве примера в скрипте используется идентификатор провайдера Indeed AM SMS OTP Provider — {EBB6F3FA-A400-45F4-853A-D517D89AC2A3}.
В параметре
$UserName
укажите имя пользователя в формате UPN.