Итак, я работаю над следующим проектом, который требует более подробной функциональности контроля доступа (например, Салли может просматривать продукты только в своем отделе).
Я понимаю, как либо модель управления доступом на основе ролей, либо модель управления доступом к атрибутам могут «обернуть» вызов API, чтобы определить, может ли данный пользователь выполнять указанное действие с данным объектом.
Где я постоянно застреваю, так это когда вы имеете дело с вызовом GET, который возвращает набор записей. Если я запрашиваю у API страницу с 20 записями из этой конечной точки, я не могу получить 20 записей, а затем запускаю проверку авторизации на основе кода для этих записей, прежде чем возвращать их, поскольку я, скорее всего, не буду возвращать 20 записей.
Похоже, что проверка авторизации либо должна быть отключена в базе данных, либо выполняться до запроса к базе данных путем добавления дополнительных фильтров к вызову запроса (т. е. также фильтровать, где отдел продукта = одежда).
У кого-нибудь есть более конкретные примеры реализации или идеи, как это можно реализовать эффективно?