Назначение пользователей определенным ресурсным объектам в архитектуре микросервиса - PullRequest
0 голосов
/ 06 июля 2018

Описание

Назначение пользователей частичному списку объектов ресурсов для ограничения доступа (или видимости) довольно распространено (например, назначение устройств пользователю).

В настоящее время мы реализовали авторизацию на уровне REST API на основе ресурса (/devices) вместе с глаголами http (GET, POST и т. Д.) Для управления доступом для чтения и записи. Но это позволяет пользователям управлять либо всеми устройствами, либо ничего.

Решение № 1

device-service сам поддерживает связи между пользовательским устройством и выполняет фильтрацию на основе userId, извлеченного из токена аутентификации на лету.

Минусы: Это создаст зависимость между device и account сервисами. Также нам придется повторить эту реализацию для других типов объектов в их собственных сервисах.

Решение № 2

Реализация связей между пользовательскими устройствами на уровне шлюза API. Таким образом, сервисам просто необходимо обеспечить фильтрацию по userId, которая становится для них необязательной. Также нет необходимости извлекать userId из токена авторизации.

Минусы: это решение обременяет шлюз API проверкой ассоциаций.

Существует ли лучший или стандартный подход к управлению такого рода доступом к элементам на уровне ресурсов в микросервисах?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...