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