Перейти к основному содержимому

Двухфакторная аутентификация в API

Информация

Скрипт для выполнения двухфакторной аутентификации через API вы можете скачать по этой ссылке.

Как работает скрипт

Скрипт выполняет аутентификацию через стандартное API Core Server. В качестве провайдеров аутентификации поддерживаются провайдеры с одноразовым паролем, Passcode, Windows Password.

Чтобы выполнить аутентификацию через API, выполните следующее:

  1. Вызовите метод /api/v5/templateSession/openVerifySession. При успешном выполнении метода вернется идентификатор сессии — переменная $SessionId в скрипте.

    Примечание

    В качестве примера в скрипте используется формат имени PrincipalName.

  2. Следующие шаги отличаются в зависимости от используемого провайдера аутентификации:

Если одноразовый код известен и его не нужно отправлять, то аутентификация выполняется по следующему алгоритму (функция SimpleLogon в скрипте):

  1. Запрашивается ввод одноразового кода.
  2. Подготовка шаблона аутентификации — вызывается метод /api/v5/templateSession/prepareTemplateData.

В качестве Data строкой передается одноразовый код (строка №12 в скрипте). Если подготовка прошла успешно, то создается шаблон, вызывается метод /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 выполните следующее:

  1. В параметре $ProviderGuid укажите GUID провайдера аутентификации, который будет использоваться в скрипте.

    В качестве примера в скрипте используется идентификатор провайдера Indeed AM SMS OTP Provider — {EBB6F3FA-A400-45F4-853A-D517D89AC2A3}.

  2. В параметре $UserName укажите имя пользователя в формате UPN.

Пример работы