与 Windows Identity Foundation 集成基于声明的授权

问题描述 投票:0回答:1

我正在尝试评估是否使用经典的基于主体的授权与 IdentityModel 授权。最近微软似乎在推荐后者,但我还没有看到足够的成熟度或支持。具体来说,我真的很喜欢设置

PrincipalPermissionAttribute
并允许框架自动防止未经授权的类实例化和方法调用的功能。

我已经在使用

ServiceAuthorizationManager
并且可以在那里执行评估...但是非 WCF 场景呢?那么,如何防止某些类的实例化并防止在 WCF 操作中而不是执行之前调用方法? 我也已经在使用 IoC 机制,并考虑使用拦截器和自定义激活器,对类或方法上假设的

RequiresClaimAttribute

执行基于声明的评估……但我不太喜欢这种方法,因为它要求任何需要授权支持的对象使用IoC容器进行解析和构建...


所以我想我的问题是......微软的Windows Identity Foundation(又名IdentityModel框架)现在真的足够成熟可以使用吗?有没有办法用 IdentityModel 来完成我所描述的任务?

.net wcf authorization wif
1个回答
2
投票

IPrincipalIIdentity 接口插入 .NET 框架。针对这两者进行编码的应用程序可能会“正常工作”(就像大多数 ASP.NET 和 WCF 服务一样)。角色作为授权的工件也由 WIF 自动映射,因此任何调用 IPrincipal.IsInRole 的框架都应该可以工作。

此示例

显示了与“RIA服务”的集成,并解释了您建议的更通用的“RequiresClaimAttribute”的可能实现(和扩展)。 关于成熟度问题。我想这取决于你如何定义它。它是 .NET 框架的一个相对较新的补充,但它已发布并得到完全支持。我知道有几个使用 WIF 的(生产)应用程序。有些较大,有些较小,有些在私营部门,有些在政府解决方案中。您必须评估其对您自己的背景和限制的适用性和适合性。

© www.soinside.com 2019 - 2024. All rights reserved.