2

我应该在哪里实现 n 层架构中的安全/授权?

我正在使用 N 层架构开发 ASP.Net MVC 应用程序。我应该将授权模块实现为不同的层还是服务?

一些业务规则也取决于用户角色,那么实现安全性的最佳方法是什么?

4

1 回答 1

2

在 n 层应用程序中,无论使用何种技术(C#、java...),您都可能希望将授权完全外部化到您提到自己的不同服务。有一个标准称为XACML(可扩展访问控制标记语言)。它给你

  • 架构
  • 政策语言
  • 请求/响应方案

使用 XACML,您可以将细粒度授权(即考虑用户、资源和其他上下文元数据的授权)应用到应用程序的所有层:表示层(显示/隐藏或启用/禁用小部件), Web 层(用于控制对 Web 应用程序、URL、Web 服务、API 的访问)、业务层,甚至数据库层本身。我称之为无处不在的架构。

XACML 的好处是它并不特定于您的 .NET 环境。这意味着您可以在其他环境中利用它。

实际上,我上周在 Java 开发者大会上提出了这个主题。您可以在SlideShare上查看我的演示文稿。

高温高压

于 2013-09-19T18:15:55.593 回答