我想到的是:
>为我的.net应用程序实现自己的授权机制和sql表
>使用/实现标准机制,如已实施XACML的软件(例如Axiomatics)
第一种方法的问题在于它不是集中式的,也不是标准的,因此其他系统不能将其用于授权.
第二种方法的问题是它可能更慢(由于每个资源需要额外的调用).此外,我不确定市场上的应用程序如何支持像XACML这样的标准授权,以便于将来的集成.
那么,一般来说,对于应该为内部用户和外部客户提供服务的Web应用程序进行细粒度授权的良好实践是什么?
解决方法
概观
XACML是一个很好的方法. TC非常活跃,波音,EMC,退伍军人管理局,甲骨文和Axiomatics等公司都是活跃的成员.
XACML架构可确保您获得所需的性能.由于执行(PEP)和决策引擎(PDP)松散耦合,您可以选择他们如何沟通,他们使用什么协议,是否使用多个决策等…这意味着您可以选择进行集成满足您的性能需求.
XACML的SAML配置文件中还定义了标准PDP接口.这可以保证您在未遇到任何特定供应商解决方案的情况下实现“面向未来”的访问控制.
Web应用程序的访问控制
您可以使用ISAPI和ASP.NET中的HTTP过滤器简单地为.Net webapps插入PEP. Axiomatics有一个现成的.
目前的实施
如果您查看Axiomatics的客户页面,您会看到他们有Paypal,贝尔直升机等.因此XACML确实是现实,它可以解决非常大的部署(数亿用户).
此外,领先的金融服务提供商Datev eG正在为其服务/应用程序使用Axiomatics的.Net PDP实施.由于.Net PDP是嵌入在这种情况下,性能是最佳的.
否则,您始终可以选择与任何PDP集成的.Net的现成PEP – 例如基于SOAP的XACML授权服务.
XACML具有高水平的性能
去年7月,在Gartner“Catalyst”会议上,Axiomatics宣布发布他们的最新产品Axiomatics Reverse Query,帮助您应对“十亿记录挑战”.它针对数据源和RIA的访问控制.它使用纯XACML解决方案,以便与其他解决方案保持互操作.
事实上,Kuppinger Cole将很快主持关于该主题的网络研讨会:http://www.kuppingercole.com/events/n10058
在这里查看Axiomatics ARQ新闻稿:http://www.axiomatics.com/latest-news/216-axiomatics-releases-new-reverse-query-authorization-product-a-breakthrough-innovation-for-authorization-services.html