You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Описание: Выполнить вход по логину и паролю (либо иному способу, заданному полем loginType) и получить сессию пользователя с токеном авторизации. Полученный token передаётся в заголовке Authorization при всех последующих запросах к API. Если для пользователя включена двухфакторная аутентификация, ответ будет содержать сессию в промежуточном статусе, требующем дополнительного вызова метода TwoFactorLogin.


🌐 HTTP-информация

  • Метод: POST
  • URL: /api/security/Login
  • Headers:
    • Content-Type: application/json
    • Authorization — не требуется (это стартовый метод получения токена)

📦 Тело запроса (Request Body)

ПолеТипОбяз.Описание
loginstringДа*Логин или e-mail пользователя
passwordstringДа*Пароль пользователя
login_typeGuidНетИдентификатор способа входа (см. таблицу ниже). Если не указан, сервер сам определяет провайдера: пытается опознать логин/пароль как стандартную пару, либо (если в системе включён NTLM/LDAP) проверяет их через LDAP

*Тело запроса — обобщённая структура IFieldValueList (плоский список пар поле/значение, без вложенности). Для обратной совместимости со старыми клиентами также поддерживаются алиасы полей Username и Password (с заглавной буквы) вместо login/password.

Значения login_type:

Способ входаGUID
Логин/пароль (стандартный)17a6ceda-cc38-416c-9f72-379d978a142f
NTLM / LDAP05ef8c8e-f104-4dc0-8887-b97c1475dd7a
OpenID Connect2506b34c-b5ca-4420-ad02-50858ed0a40b
Системный (служебный, для входа не через этот метод)62d2fd67-a521-4433-b363-d23adb533ec2

Пример JSON-тела:

{
  "login": "admin",
  "password": "P@ssw0rd"
}

Если у пользователя включена LDAP-проверка и передан login/password, но login_type не указан явно как 17a6ceda-... (пароль), сервер сначала попытается провалидировать эти же логин/пароль через LDAP.


📤 Тело ответа (Response Body)

ПолеТипОписание
idGuidИдентификатор сессии
tokenstringТокен авторизации — передаётся в заголовке Authorization во всех последующих запросах (значение подставляется как есть, без префикса Bearer)
expiresstring (дата/время)Время истечения сессии
statusintСтатус сессии: 0 — Invalid, 1 — Active (успешный вход), 2 — TwoFactorAuthenticationRequired (нужно вызвать TwoFactorLogin), 3 — PasswordInitRequired (нужно задать пароль через SetPassword), 4 — PasswordChangeRequired (пароль просрочен, нужна смена)
userobjectДанные пользователя: id, name, email, isActive, isAdmin, license, groupList, item
loginTypeListarrayСписок доступных на портале способов входа (каждый — { id: Guid, hidden: bool, ... }, id соответствует таблице login_type выше)
requireLoginInactivityTimeoutMinuteCountintТаймаут неактивности сессии, мин
isTwoFactorAuthenticationEnabledboolПризнак включённой двухфакторной аутентификации
isTotpApplicationConnectedboolПризнак подключённого TOTP-приложения (иначе код для TwoFactorLogin присылается иным способом, например на e-mail)

Если status = 2 (TwoFactorAuthenticationRequired), необходимо вызвать метод TwoFactorLogin, передав код из TOTP-приложения (или полученный иным способом). Токен token из этого ответа уже нужно использовать в заголовке Authorization при вызове TwoFactorLogin.

  • No labels