Как люди использовали подход abac при запуске отчетов или даже просто выбор нескольких записей из БД?С ABAC/XACML как защитить ресурсы в отчетах/больших наборах результатов?
Например, если у вас есть политика, которая гласит:
Врачи могут просматривать только пациент в их больнице
Очевидно, что эффективный способ реализовать это включить фильтр в запросе (where hospital = XXX
), но это, похоже, ломается с директором ABAC, поскольку оно испекает правило в самом SQL.
Я знаю, что Axiomatics предлагает механизм обратного запроса, который, по-видимому, генерирует фильтры для вас на основе правил, - но в моей системе много сложного sql-кода, который нужно будет реорганизовать совсем немного, чтобы работать с этим.
Как другие люди справляются с этой проблемой?
Спасибо, Дэвид. Я читал много ваших комментариев/сообщений за прошлую неделю и надеялся, что вы это увидите. – jbd
Я чувствую, что это неотъемлемая проблема с авторизацией в целом. Я рассматриваю подход, где точка перехвата происходит до фактического выполнения запроса. Например, определите, может ли Алиса просматривать документы в больнице X. Если это так, разрешите выполнение запроса. По сути, сам запрос становится ресурсом, который объект хочет запустить. Любая обратная связь по этому подходу? Я уверен, что другие сделали это. – jbd
Я добавил новый подход к ответу. Вы правы, что есть два уровня контроля доступа: функциональный (вы имеете право на получение медицинской документации в целом) и уровень данных один (вы можете просматривать только записи в своем отделе) –