2013-09-18 14 views
1

Где я должен реализовать безопасность/авторизацию в n-уровневой архитектуре?Где я должен реализовать безопасность/авторизацию в n-уровневой архитектуре?

Я разрабатывал приложение ASP.Net MVC с использованием архитектуры N-уровня. Должен ли я использовать модуль авторизации как другой уровень или как Сервис?

Некоторые бизнес-правила также зависят от роли пользователя. Итак, что является лучшим способом реализации безопасности?

ответ

2

В приложении n-уровня, независимо от технологии (C#, java ...), вы, вероятно, захотите полностью отключить авторизацию к другой службе, как вы сами указываете. Существует стандарт, который называется XACML (eXtensible Access Markup Language). Это дает

  • архитектуры
  • языковая политика
  • схема запроса/ответа

С XACML, можно применить мелкозернистую разрешение (т.е. разрешение, которая принимает во внимание пользователя , ресурс и дополнительные метаданные контекста) всем слоям вашего приложения: уровень представления (показать/скрыть или включить/отключить виджеты), веб-уровень (для контроля доступа к веб-приложениям, URL-адресам, веб-службам, API-интерфейсам), бизнес-уровня и даже самого уровня базы данных. Я называю это любой архитектурой.

Преимущество XACML в том, что оно не относится к вашей среде .NET. Это означает, что вы можете использовать его в других средах.

Я фактически представил эту тему на прошлой неделе на конференции разработчиков Java. Вы можете проверить мою презентацию на SlideShare.

HTH