Перейти к содержанию

Механизм работы аутентификации пользователей в платформе Tessa

Note

Инструкция по настройке аутентификации находится в руководстве по установке в разделе Настройка Windows-аутентификации.

В платформе Tessa поддерживается использование встроенной аутентификации Windows с поддержкой SSO (Single Sign-On), используя протокол Kerberos. SSO позволяет вводить данные для входа только один раз при входе. В дальнейшем используется SPNEGO токен, передаваемый на сервер, в котором пользователь хочет аутентифицироваться.

Толстый клиент

Без явного указания логина и пароля

  1. Пользователь запускает клиент Tessa.

  2. Клиент отправляет запрос на аутентификацию сервису Tessa по адресу https://{base}/winlogin

  3. Сервис Tessa отвечает кодом 401 и заголовком WWW-Authenticate.

  4. Клиент запрашивает у KDC (Key Distribution Center) сервера сеансовый ключ.

  5. Сервер KDC отправляет клиенту сеансовый ключ.

  6. Клиент отправляет сеансовый ключ сервису Tessa.

  7. Сервис проверяет сеансовый ключ и извлекает из него учетные данные пользователя. Проверяется наличие в справочнике сотрудников. При успешной аутентификации отправляется токен на клиент, в противном случае будет предложено ввести логин и пароль.

С явным указанием логина и пароля

  1. Клиент отправляет логин и пароль сервису Tessa по адресу https://{base}/login

  2. Сервис Tessa проверяет наличие логина в справочнике сотрудников (таблица PersonalRoles, поле Login). Если пользователь не найден, то возвращается ошибка.

  3. Сервис Tessa получает тип учетной записи из карточки сотрудника.

    1. Если учетная запись Tessa, то аутентификация выполняется средствами Tessa:

      1. Логин и пароль передаются сервису Tessa.

      2. Сервис Tessa получает хеш HMACSHA256 полученного пароля и сравнивает с хешом пользователя из базы.

      3. Если хеши совпадают, то выполняется аутентификация, в противном случае выдается ошибка “Неверный логин или пароль.”.

    2. Если учетная запись LDAP, то аутентификация выполняется, используя настройки LDAP из файла app.json.

    3. Если учетная запись Windows, то производятся следующие действия:

      1. Если включена LDAP аутентификация (в файле app.json), то выполняется LDAP аутентификация, используя данные для входа из файла app.json.

      2. В случае ошибки LDAP аутентификации (или если она не включена) происходит попытка имперсонализации (только для Windows систем). В случае ошибки имперсонализации, или если используется Linux система, то пользователю возвращается ошибка и окно ввода логина и пароля

Легкий клиент

Без явного указания логина и пароля

  1. Пользователь открывает браузер и переходит по ссылке легкого клиента.

  2. Браузер отправляет cookies сервису, если был произведен вход в систему ранее.

  3. Если cookies не были переданы или истекли, то происходит перенаправление на страницу логина по адресу https://{base}/login с запоминанием исходной страницы.

  4. Если включен автоматический вход (в файле app.json настройка WinAutoLogin = true), то браузер отправляет запрос на аутентификацию сервису Tessa, иначе ждет реакции от пользователя.

  5. Сервис Tessa отвечает кодом 401 и заголовком WWW-Authenticate

  6. Браузер запрашивает у KDC сервера сеансовый ключ

  7. Сервер KDC отправляет клиенту сеансовый ключ

  8. Браузер отправляет сеансовый ключ сервису Tessa

  9. Сервис проверяет сеансовый ключ и извлекает из него учетные данные пользователя. Проверяется наличие в справочнике сотрудников. При успешной аутентификации отправляется токен на клиент. При неудачной - сообщение об ошибке.

С явным указанием логина и пароля

  1. Клиент отправляет логин и пароль сервису Tessa по адресу https://{base}/login

  2. Сервис Tessa проверяет наличие логина в справочнике сотрудников (таблица PersonalRoles, поле Login). Если пользователь не найден, то возвращается ошибка.

  3. Сервис Tessa получает тип учетной записи из карточки сотрудника.

    1. Если учетная запись Tessa, то аутентификация выполняется средствами Tessa:

      1. Логин и пароль передаются сервису Tessa.

      2. Сервис Tessa получает хеш HMACSHA256 полученного пароля и сравнивает с хешом пользователя из базы.

      3. Если хеши совпадают, то выполняется аутентификация, в противном случае выдается ошибка “Неверный логин или пароль.”.

    2. Если учетная запись LDAP, то аутентификация выполняется, используя настройки LDAP из файла app.json.

    3. Если учетная запись Windows, то производятся следующие действия:

      1. Если включена LDAP аутентификация (в файле app.json), то выполняется LDAP аутентификация, используя данные для входа из файла app.json.

      2. В случае ошибки LDAP аутентификации (или если она не включена) происходит попытка имперсонализации (только для Windows систем). В случае ошибки имперсонализации, или если используется Linux система, то пользователю возвращается ошибка и окно ввода логина и пароля

Back to top