Защитить от повышения привилегий в микросервисах - PullRequest
0 голосов
/ 21 октября 2018

Пожалуйста, рассмотрите следующий сценарий.

  • В системе есть набор владельцев бизнеса (то есть пользователей системы)
  • Каждый владелец бизнеса сопоставлен с набором клиентов
  • Владельцы бизнеса входят в систему для управления своими клиентами.

Владельцы бизнеса сначала выберут одного клиента, и с этого момента его сеанс будет связан с тем, чтовыбранный клиент .

У меня есть набор микросервисов, для каждого из которых требуется Customer-ID для обработки.то есть

  • Микросервис А выставляет GET /resource-a/{customer-id}
  • Микросервис Б подвергает POST /resource-b/{customer-id}
  • и т. д.

Customer-Id являетсясчитается конфиденциальной информацией, поэтому она находится в зашифрованном виде.

Однако она по-прежнему уязвима для повышения привилегий .т. е. один владелец бизнеса может по ошибке поделиться зашифрованным идентификатором клиента с помощью закладок и т. д.

  • Я хочу избежать серверной авторизации идентификатора клиента для владельца бизнеса, поскольку известно, что это медленная операция ии 90% API придется повторить этот процесс авторизации
  • Все микросервисы не имеют состояния, поэтому невозможно зашифровать Customer-Id с идентификатором сеанса в качестве ключа (так как микросервисов без сохранения состояния /сеанс)
  • Кроме того, я не думаю, что это хорошая идея сделать эту авторизацию на шлюзе, так как она не предназначена для выполнения такой бизнес-логики.

Как я могу предотвратить повышение привилегийв этой ситуации?

...