RESTful перекрестная аутентификация

У меня есть 2 службы RESTful, реализованные в JAX-RS (Джерси): "A" и "B". Они развернуты на отдельных серверах приложений. "А" и "Б" оба мои.

  1. Клиент подключается и авторизуется на услуге "А";
  2. Клиент запрашивает "A" для ресурса, например: https://blabla1/services/myresources;
  3. Для получения ресурса "myresources" служба "A" должна запросить (не перенаправить) службу "B" для другого ресурса, например: https://blabla2/services/anotherresources.

Служба "Б" тоже должна пройти проверку подлинности, вот в чем проблема. Возможно ли, чтобы сервис "А" задавал "Б" с параметрами аутентификации клиента, и как он будет работать?

Я предполагаю, что это возможно с библиотекой oauth, но я не могу найти примеры (близкие к моей проблеме) и инструкции.

Спасибо

1 ответ

Решение

Просто суммируя решение, изложенное в комментариях:

Служба "B" (или прокси-сервер перед ней) должна принимать только HTTPS-запросы с сертификатом сервера "A". (Сервер "A" также может проверять сертификат сервера "B", чтобы избежать атак "посредник".)

Тогда имя пользователя может быть параметром запроса в виде простого текста.

Если вы работаете в сети лучше, чем люди на сервере, или обнаруживаете затруднение с SSL, пусть сетевые люди вместо этого установят безопасный туннель (формируя VPN) между вашими сайтами и сделают службу "B" недоступной из необработанного Интернета, помимо туннеля.

Другие вопросы по тегам