Уже 2 дня ломаю голову, как решить, казалось бы, простую задачу, но это начинает сводить меня с ума.
У меня есть приложение, в котором пользователи будут использовать SAML 2.0 для аутентификации. У меня есть приложение для реагирования, настроенное для внешнего интерфейса, и я думал, что собираюсь использовать JWT для защиты связи rest-api между интерфейсом и бэкэндом.
Когда пользователь входит в систему, процесс выглядит следующим образом:
- Пользователь получает доступ к www.server.com/ и получает статический HTML-код с помощью приложения-реакции.
- Пользователь нажимает «Войти» и получает доступ к www.server.com/login.
- паспорт-самл перенаправляет пользователя к провайдеру идентификации saml. Пользователь входит в систему.
- Пользователь перезванивает на www.server.com/callback с ответом SamlResponse в req.body, который декодируется с помощью паспорта-saml и помещается в req.user.
- Если пользователь еще не существует, я создаю пользователя в базе данных.
- Я создаю JWT.
Что я должен делать дальше? Проблема в том, что пользователь не находится в приложении реагирования при обратном вызове от поставщика удостоверений, поэтому я потерял все состояние в приложении, поэтому все, что я отвечаю, будет отправлено в браузер.
Есть ли способ заставить браузер дать мне SamlResponse, с которым перезванивает поставщик идентификации? Затем я мог бы отправить его на сервер в виде http-запроса из реагирующего приложения.