@NFly

Как обеспечить/установить «доверие» между двумя сервисами?

Попробую сформулировать вопрос.

Есть два сервиса. У каждого своя база пользователей. Некоторые из этих пользователей совпадают - то есть они логинятся и в первом и во втором сервисе, но по отдельности.

Данные, созданные пользователем во втором сервисе должны перейти в первый сервис (тому же пользователю).

По хорошему нужно объединять, но по хорошему не получается.

Вопрос:
Как минимальными усилиями обеспечить "доверие" между двумя сервисами?
Синхронизация логинов? Токены? Что то еще?

А) задача минимум: второму сервису нужно убедиться, что запрос идет из первого сервиса железно. Как?
Б) задача максимум: хорошо бы убедиться, что запрос делает конкретный пользователь, который залогинился на первом сервисе и имеет логин во втором сервисе и точно запрашивает только свои данные. Как в этом убедиться?
  • Вопрос задан
  • 47 просмотров
Пригласить эксперта
Ответы на вопрос 2
hint000
@hint000
у админа три руки
А) задача минимум: второму сервису нужно убедиться, что запрос идет из первого сервиса железно.
Шифровать передаваемые данные. Либо использовать шифрованый канал связи.
Б) задача максимум
SSO https://ru.wikipedia.org/wiki/Технология_единого_входа
Ответ написан
Комментировать
Вариантов довольно много, например JWS - каждый сервис выдает пользователю подписанный токен в который "зашита" информация о пользователе в сервисе. Схема может быть, например, такой
Сервис 1 выдает JWS1 авторизованному пользователю
Пользователь приходит с JWS1 в сервис 2, сервис 2 видит что пользователь авторизован в Сервис 1 и те данные которые сервис 1 подписал, дополнительного межсервисного взаимодействия при этом не требуется.
При необходимости межсервисного взаимодействия между сервисами дополнительно делается разделяемый секрет
Сервис 2 делает межсерверный запрос в Сервис 1 с секретом сервиса и JWS1. Таким образом сервис 2 может делать запросы только по тем пользователям, которые в него пришли
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы