Пожалуйста, рассмотрите следующий сценарий.
- В системе есть набор владельцев бизнеса (то есть пользователей системы)
- Каждый владелец бизнеса сопоставлен с набором клиентов
- Владельцы бизнеса входят в систему для управления своими клиентами.
Владельцы бизнеса сначала выберут одного клиента, и с этого момента его сеанс будет связан с тем, чтовыбранный клиент .
У меня есть набор микросервисов, для каждого из которых требуется Customer-ID
для обработки.то есть
- Микросервис А выставляет
GET /resource-a/{customer-id}
- Микросервис Б подвергает
POST /resource-b/{customer-id}
- и т. д.
Customer-Id
являетсясчитается конфиденциальной информацией, поэтому она находится в зашифрованном виде.
Однако она по-прежнему уязвима для повышения привилегий .т. е. один владелец бизнеса может по ошибке поделиться зашифрованным идентификатором клиента с помощью закладок и т. д.
- Я хочу избежать серверной авторизации идентификатора клиента для владельца бизнеса, поскольку известно, что это медленная операция ии 90% API придется повторить этот процесс авторизации
- Все микросервисы не имеют состояния, поэтому невозможно зашифровать
Customer-Id
с идентификатором сеанса в качестве ключа (так как микросервисов без сохранения состояния /сеанс) - Кроме того, я не думаю, что это хорошая идея сделать эту авторизацию на шлюзе, так как она не предназначена для выполнения такой бизнес-логики.
Как я могу предотвратить повышение привилегийв этой ситуации?