RESTful перекрестная аутентификация
У меня есть 2 службы RESTful, реализованные в JAX-RS (Джерси): "A" и "B". Они развернуты на отдельных серверах приложений. "А" и "Б" оба мои.
- Клиент подключается и авторизуется на услуге "А";
- Клиент запрашивает "A" для ресурса, например: https://blabla1/services/myresources;
- Для получения ресурса "myresources" служба "A" должна запросить (не перенаправить) службу "B" для другого ресурса, например: https://blabla2/services/anotherresources.
Служба "Б" тоже должна пройти проверку подлинности, вот в чем проблема. Возможно ли, чтобы сервис "А" задавал "Б" с параметрами аутентификации клиента, и как он будет работать?
Я предполагаю, что это возможно с библиотекой oauth, но я не могу найти примеры (близкие к моей проблеме) и инструкции.
Спасибо
1 ответ
Просто суммируя решение, изложенное в комментариях:
Служба "B" (или прокси-сервер перед ней) должна принимать только HTTPS-запросы с сертификатом сервера "A". (Сервер "A" также может проверять сертификат сервера "B", чтобы избежать атак "посредник".)
Тогда имя пользователя может быть параметром запроса в виде простого текста.
Если вы работаете в сети лучше, чем люди на сервере, или обнаруживаете затруднение с SSL, пусть сетевые люди вместо этого установят безопасный туннель (формируя VPN) между вашими сайтами и сделают службу "B" недоступной из необработанного Интернета, помимо туннеля.