React / Py Flask - правильная архитектура входа Microsoft AD - PullRequest
0 голосов
/ 05 марта 2020

Сводка :
В настоящее время я работаю над потоком входа в систему для моего веб-приложения React / Flask. Интерфейс React работает на Docker контейнере, открывающем порт 80, в то время как Flask Backend API работает на отдельном контейнере на порту 5000.

В бэкэнде есть конечная точка GET /auth/login, которая возвращает Status:302 вместе с URL-адресом перенаправления на странице входа в систему Microsoft, который пользователь завершает получение токена. Затем токен сохраняется в интерфейсе API Session for Graph.

Всякий раз, когда веб-интерфейс запрашивает GET /auth/login, перенаправление блокируется политикой CORS.

Q:
Каков будет правильный подход и архитектура для потока входа в систему?
Должен ли я поместить получение токена во внешний интерфейс и сохранить токен в локальном хранилище?

1 Ответ

1 голос
/ 05 марта 2020

Типичный подход для такого приложения (JS front-end + API) состоит в том, чтобы использовать неявный поток грантов во внешнем интерфейсе с MSAL. js и использовать аутентификацию токенов JWT Bearer в API.

Итак:

  1. Ваше внешнее приложение React должно использовать MSAL. js для аутентификации пользователя и получения токена доступа для API
  2. Этот токен доступа затем следует добавить в качестве заголовка к каждому запросу к API (например, Authorization: Bearer token-goes-here
  3. API проверяет подпись токена и т. д. c. действительна (используйте для этого библиотеку) и аутентифицирует пользователя на основе токен
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...