2014-09-02 7 views
1

Проблема: У меня есть набор сведений о том, что некоторым пользователям приходится обращаться к ним через мое веб-приложение. Предположим, что у меня есть ресурсы A, B, C того же типа T, а пользователи - X, Y, Z. В бизнесе указано, что пользователь может получить доступ к этим ресурсам, как в приведенной ниже таблице.Как предоставить доступ к определенным ресурсам?

пользователя -> Ресурсы
X -> A
Y -> AC
Z -> ABC

Реальный пример будет что-то вроде этого:

  • Пользователь X может просмотреть все Гипермаркеты из LA
  • Пользователь Y может видеть все гипермаркеты из LA и Chicago
  • Пользователь Z может видеть все гипермаркеты из Л.А., Чикаго и штат Нью-Йорк

Другое дело упомянуть о том, что в любое время, чтобы пользователь X может быть предоставлен доступ, чтобы увидеть Гипермаркеты из Н.Ю. тоже.

Вопрос: Как реализовать систему авторизации, что позволяет мне предоставить доступ пользователя к определенному набору ресурсов?

Мои первые идеи: Поскольку я собираюсь использовать ASP.NET MVC и Web API, мои первые мысли были использовать ролевого Авторизация. После этого я нашел this article о том, как расширить концепцию авторизации на основе ролей до так называемой авторизации «Активность». Но даже это решение не подходит для моего бизнеса, потому что в моем коде у меня должна быть одна функция с именем GetAllHypermarkets без параметров, которая вернет все гипермаркеты, которые разрешено видеть пользователю. Например, для пользователя X он вернет только гипермаркеты из L.A. Как я могу это достичь?

ответ

0

Есть много забавных терминов, которые могут вам помочь:

  • ДКС - атрибут управления доступом на основе
  • PBAC - управление на основе политик доступа
  • RAdAC - управление рисками адаптивный доступа
  • SitBAC - управление доступом на основе ситуации

Я думаю, что каждый хочет иметь именованное решение контроля доступа с помощью сек. профессионалов urity, поэтому огромное количество названий с трудными для понимания спецификациями ...

AFAIK из этих ABAC является наиболее разработанным решением. Например, есть даже markup language, который поддерживает ABAC ... Я предлагаю вам использовать Google или https://security.stackexchange.com/ для получения дополнительной информации, потому что я не эксперт по безопасности, поэтому у меня, вероятно, неверная информация об этих условиях. Я бы послал вопрос типа «какая разница» на ваше имя, но они будут пинать мою задницу с 1000 downvotes, я думаю ...

Смежные вопросы