@h0x0d9

Как проще реализовать аутентификация пользователя на авторизованном клиенте?

Добрый день сообщество!

Есть следующая задача: реализовать аутентификацию пользователей на авторизованном клиенте (native desktop и браузеры).
Back в проекте состоит из трех частей:
- SPA_Node (для пользователей, пользующихся браузером, отдает "фронт", Node.js),
- API_Node (вся бизнес-логика на REST, Node.js),
- Ory Hydra OpenID Provider (для OAuth2).

Исходная задача бьётся на следующие подзадачи:
необходимо реализовать
1. аутентификацию по tls-сертификатам двух видов клиентов: Win Desktop app (C++/Qt) и браузер. В случае нативного приложения, аутентификация производится при запуске по известной каждому клиенту паре [cert, key] и сертификату ca, в случае браузера при обращении SPA к API. Каждая физическая точка подключения имеет свою пару [cert, key].
2. авторизацию обоих видов клиентов на доступ к API сервиса.
3. аутентификацию пользователя посредством OAuth2 на авторизованном клиенте. Эта часть реализована через Passport.js (стратегия passport-oauth2). В продакшене пользователи должны аутентифицироваться через ЕСИА. Для аутентификации на API_NODE реализована функция (GET /auth/{provider}), за которой спрятан passport.js и сессионые куки.
4. авторизацию пользователя к ресурсам на API Node.

Собственно, вопрос, как правильно/проще/быстрее организовать и реализовать данную задачу — одновременную "двойную" авторизацию пользователя и используемого им клиента для доступа к ресурсам API_NODE?
  • Вопрос задан
  • 493 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы