У меня есть опыт реализации различных сценариев OAuth 2.0 с участием как клиентов, так и серверов ресурсов, включая вызовы незащищенных служб моему клиенту и наоборот. Однако я столкнулся с ситуацией, которая немного озадачила меня в отношении процесса авторизации OAuth 2.0, особенно в отношении того, когда и где должно появляться приглашение на авторизацию.
Сценарий: У меня есть приложение Spring Boot, которое я буду называть Service1, настроенное с учетом клиентских зависимостей OAuth 2.0. Эта услуга включает форму входа, которая использует Google в качестве поставщика удостоверений. Моя цель — заставить Service1 отправить запрос другой службе, которую мы назовем Service2, которая не защищена с помощью OAuth 2.0. Я не уверен, как в этом случае должен проходить процесс авторизации и где должна происходить авторизация.
Ранее я успешно реализовал сценарий с участием двух служб Spring Boot: один действует как сервер ресурсов, а другой — как клиент OAuth 2.0. В этой настройке при попытке доступа к конечной точке, которая получает данные с сервера ресурсов, появляется окно авторизации. После входа данные успешно возвращаются.
Чего я хочу достичь: Я хочу повторить тот же процесс, что описан выше, но с некоторыми изменениями. Вот концептуальная диаграмма того, что я себе представляю:
Вместо использования конкретных «SnapStore» и «Службы печати», упомянутых на диаграмме, я намерен заменить их фиктивными службами в целях эксперимента. Мой основной вопрос вращается вокруг необходимости токенов доступа для связи между службами. В частности, когда я отправляю запрос от фиктивной службы, не поддерживающей OAuth 2.0, к защищенной службе OAuth 2.0, я получаю ответ 302 вместе со ссылкой для авторизации, которую затем перенаправляю.
Вопросы:
Мы будем очень признательны за любые идеи или рекомендации о том, как правильно настроить и обрабатывать этот поток авторизации.




В вашем сценарии Service1 действует как клиент OAuth 2.0, а Service2 — незащищенная служба. Когда Службе 1 требуется доступ к Службе 2, поток авторизации обычно зависит от требований Службы 2 и характера взаимодействия между службами.
Вот как можно обработать поток авторизации OAuth 2.0 в этом сценарии:
Взаимодействие с Сервисом2:
Порядок авторизации:
Обработка запроса на авторизацию:
Обработка перенаправлений:
Связь между службами:
Таким образом, в сценариях, где Службе1 требуется доступ к незащищенной службе (Сервис2), вы можете обойти поток авторизации OAuth 2.0 и выполнить прямые HTTP-запросы. Однако если Service2 требует аутентификацию или авторизацию, вам необходимо обработать ее в соответствии с ее требованиями, что может включать в себя перенаправления и запросы на авторизацию пользователя.