Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Info
titleИнформация

Для выполнения 2Fa аутентификации через API можно воспользоваться скриптом на PS по ссылке: ссылка

Описание работы скрипта

Info
titleИнформация

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

Для работы скрипта необходимо наличие лицензии "Authentication API".

Процесс аутентификации через API: 

  1. Необходимо вызвать метод: /api/v5/templateSession/openVerifySession
    1. В качестве примера в скрипте используется формат имени "PrincipalName".
  2. При успешном выполнении метода вернется идентификатор сессии - переменная "$SessionId" в скрипте. 
  3. Следующие шаги отличаются в зависимости от используемого провайдера аутентификации. 
    1. Если OTP известен и его не нужно отправлять, то аутентификация выполняется по следующему алгоритму(функция "SimpleLogon" в скрипте):
      1. Запрос на ввод OTP.
      2. Подготовка шаблона аутентификации, вызывается метод: /api/v5/templateSession/prepareTemplateData
        1. В качестве "Data" передается OTP строкой. Срока 12 в скрипте.
      3. Если подготовка прошла успешно, то создается шаблон, вызывается метод: /api/v5/templateSession/createTemplate
      4. Завершающий шаг - это аутентификация пользователя, метод: /api/v5/logon/authenticate
      5. При успешной аутентификации будет возращен токен в JSON формате. 
    2. Если OTP не известен, то первоначально нужно инициировать его отправку(функция "LogonByOtp" в скрипте). 
      1. Вызывается метод: /api/v5/templateSession/prepareTemplateData
        1. Первоначально в качестве "Data" передается Null. Первый вызов необходим для того, чтобы сервер сделал отправку OTP, например, отправку смс. 
        2. Также при первоначальном запросе параметр "EnoughData" будет false
      2. Запрос на ввод OTP.
      3. Подготовка шаблона аутентификации, вызывается метод: /api/v5/templateSession/prepareTemplateData
        1. В качестве "Data" уже передается OTP строкой. Срока 12 в скрипте.
        2. Запрос вернет объект, где "EnoughData" будет true
      4. Если подготовка прошла успешно, то создается шаблон, вызывается метод: /api/v5/templateSession/createTemplate
      5. Завершающий шаг - это аутентификация пользователя, метод: /api/v5/logon/authenticate
      6. При успешной аутентификации будет возращен токен в JSON формате.


Предварительные требования

  1. Работоспособный сервер Indeed AM. 
  2. Наличие лицензии "Authentication API".

Настройка

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

  1. $serverUrl — URL адрес сервера Indeed AM. Обязательный параметр.
  2. $logsOnFile — включение\отключение логирования в файл. Обязательный параметр. По умолчанию включено.
  3. $logsOnConsole — включение\отключение логирования в консоль. Обязательный параметр. По умолчанию отключено.  
  4. $apiVersion — версия API, используемая в скрипте. Обязательный параметр. Значение по умолчанию: v5

В основном файле "main.ps1" задайте:

  1. $ProviderGuid - GUID провайдера аутентификации, который будет использоваться в скрипте. 
    1. В качестве примера в скрипте используется провайдер: Indeed AM SMS OTP Provider — {EBB6F3FA-A400-45F4-853A-D517D89AC2A3}
  2. $UserName - Имя пользователя в формате UPN. 

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

Image Added



Table of Contents
classrightFloat

...