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