很抱歉问了这么长的问题,我想把我所有的观点都说清楚!
我花了大量时间研究如何将我们现有的身份和访问管理方案更新为一个更现代化的平台,以解决我们的许多业务和合规要求,尤其是从ISO27001的角度来看。
我有两个主要目标要实现:1) 能够报告用户可以执行哪些业务操作/任务?2) 能够实时或通过历史报告监控用户正在做什么/已经做了什么?
我们目前混合使用自定义身份验证和授权(同时使用SQL后端)以及AD域服务进行身份验证和AD组成员资格/角色授权需求。
我建议我们在所有软件中使用AD域服务进行身份验证,但从基于声明的角度来看,ADFS 2.0是我们的STS服务器。然后,我们可以开始在我们的应用程序中利用索赔,对于那些使用角色需求的人来说,它们仍然可以继续工作。
我对以上所有内容都很满意,但我们希望使用更精细的权利管理/授权计划,因此我希望使用ClaimsAuthorizationManager作为决策和执行点。
问题是WIF并没有实现一个具体的版本,开发者完全由自己选择,没有任何指导。我找不到任何一个适合商业的例子。
因此,我正在寻求任何关于如何构建一个与AzMan或NetSqlAzMan类似的企业级授权方案的建议。我建议每个应用程序都可以使用一个通用的简单ClaimsAuthorizationManager类。此类调用共享WCF服务,该服务又使用SQL后端来存储业务操作/任务以及用户对这些操作/任务的权限。用户对象将与AD同步,以便AD提供身份验证、声明和我的自定义系统提供授权规则。这种集中而独特的服务有助于实现我的第一个目标。
这个系统会记录每个请求,这将有助于实现我最初的第二个目标。
非常感谢任何建议、例子或帮助。
你是对的-由于AuthZ是特定于应用程序的-微软没有提供任何具体的实现。
你似乎已经对该如何运作有了非常具体的想法。为什么不构建这样一个样本并开源呢?这样你就可以收集反馈,并在此基础上进行改进?
一些想法。
角色是一种众所周知的模式,例如通用数据模型。
ADFS可以将组作为角色传递-ADFS:将组作为声明发送。然后可以使用IsInRole或location标记。这对你来说可能太简单了?
ADFS可以记录成功或失败审核-"联合身份验证服务属性"-事件。