Механизм работы аутентификации пользователей в платформе Tessa¶
Note
Инструкция по настройке аутентификации находится в руководстве по установке в разделе Настройка Windows-аутентификации
.
В платформе Tessa поддерживается использование встроенной аутентификации Windows с поддержкой SSO (Single Sign-On), используя протокол Kerberos. SSO позволяет вводить данные для входа только один раз при входе. В дальнейшем используется SPNEGO токен, передаваемый на сервер, в котором пользователь хочет аутентифицироваться.
Толстый клиент¶
Без явного указания логина и пароля¶
-
Пользователь запускает клиент Tessa.
-
Клиент отправляет запрос на аутентификацию сервису Tessa по адресу https://{base}/winlogin
-
Сервис Tessa отвечает кодом 401 и заголовком
WWW-Authenticate
. -
Клиент запрашивает у KDC (Key Distribution Center) сервера сеансовый ключ.
-
Сервер KDC отправляет клиенту сеансовый ключ.
-
Клиент отправляет сеансовый ключ сервису Tessa.
-
Сервис проверяет сеансовый ключ и извлекает из него учетные данные пользователя. Проверяется наличие в справочнике сотрудников. При успешной аутентификации отправляется токен на клиент, в противном случае будет предложено ввести логин и пароль.
С явным указанием логина и пароля¶
-
Клиент отправляет логин и пароль сервису Tessa по адресу https://{base}/login
-
Сервис Tessa проверяет наличие логина в справочнике сотрудников (таблица PersonalRoles, поле Login). Если пользователь не найден, то возвращается ошибка.
-
Сервис Tessa получает тип учетной записи из карточки сотрудника.
-
Если учетная запись Tessa, то аутентификация выполняется средствами Tessa:
-
Логин и пароль передаются сервису Tessa.
-
Сервис Tessa получает хеш HMACSHA256 полученного пароля и сравнивает с хешом пользователя из базы.
-
Если хеши совпадают, то выполняется аутентификация, в противном случае выдается ошибка “Неверный логин или пароль.”.
-
-
Если учетная запись LDAP, то аутентификация выполняется, используя настройки LDAP из файла app.json.
-
Если учетная запись Windows, то производятся следующие действия:
-
Если включена LDAP аутентификация (в файле app.json), то выполняется LDAP аутентификация, используя данные для входа из файла app.json.
-
В случае ошибки LDAP аутентификации (или если она не включена) происходит попытка имперсонализации (только для Windows систем). В случае ошибки имперсонализации, или если используется Linux система, то пользователю возвращается ошибка и окно ввода логина и пароля
-
-
Легкий клиент¶
Без явного указания логина и пароля¶
-
Пользователь открывает браузер и переходит по ссылке легкого клиента.
-
Браузер отправляет cookies сервису, если был произведен вход в систему ранее.
-
Если cookies не были переданы или истекли, то происходит перенаправление на страницу логина по адресу https://{base}/login с запоминанием исходной страницы.
-
Если включен автоматический вход (в файле app.json настройка WinAutoLogin = true), то браузер отправляет запрос на аутентификацию сервису Tessa, иначе ждет реакции от пользователя.
-
Сервис Tessa отвечает кодом 401 и заголовком
WWW-Authenticate
-
Браузер запрашивает у KDC сервера сеансовый ключ
-
Сервер KDC отправляет клиенту сеансовый ключ
-
Браузер отправляет сеансовый ключ сервису Tessa
-
Сервис проверяет сеансовый ключ и извлекает из него учетные данные пользователя. Проверяется наличие в справочнике сотрудников. При успешной аутентификации отправляется токен на клиент. При неудачной - сообщение об ошибке.
С явным указанием логина и пароля¶
-
Клиент отправляет логин и пароль сервису Tessa по адресу https://{base}/login
-
Сервис Tessa проверяет наличие логина в справочнике сотрудников (таблица PersonalRoles, поле Login). Если пользователь не найден, то возвращается ошибка.
-
Сервис Tessa получает тип учетной записи из карточки сотрудника.
-
Если учетная запись Tessa, то аутентификация выполняется средствами Tessa:
-
Логин и пароль передаются сервису Tessa.
-
Сервис Tessa получает хеш HMACSHA256 полученного пароля и сравнивает с хешом пользователя из базы.
-
Если хеши совпадают, то выполняется аутентификация, в противном случае выдается ошибка “Неверный логин или пароль.”.
-
-
Если учетная запись LDAP, то аутентификация выполняется, используя настройки LDAP из файла app.json.
-
Если учетная запись Windows, то производятся следующие действия:
-
Если включена LDAP аутентификация (в файле app.json), то выполняется LDAP аутентификация, используя данные для входа из файла app.json.
-
В случае ошибки LDAP аутентификации (или если она не включена) происходит попытка имперсонализации (только для Windows систем). В случае ошибки имперсонализации, или если используется Linux система, то пользователю возвращается ошибка и окно ввода логина и пароля
-
-