您的位置:首页 > 移动开发

Authorization and Profile Application Block 1.0研究总结

2007-12-23 07:24 489 查看
 [b]By Ben
Authorization and Profile Application Block 1.0研究报告[/b]

1.  课题简介

利用WindowsPrincipal或GenericPrincipal可以实现验证授权. 但权限只能分到角色. 利用Authorization and Profile Application Block 1.0 不仅有效实现权限分配到角色, 更能分配到任务, 操作. 

2. 研究过程

2.1. 概述

Authorization and Profile Application Block是一个.net验证授权开发工具. 基于windows passport管理和NTLM 等实现用户验证授权.利用AzMan实现很方便灵活地实现Authorization、可以随意定制profile内容方便开发使用、可以有多种profile数据存储介质……运行Authorization and Profile Application Block对系统需求环境l: 1)        .NET Framework version 1.12)        数据存储(比如:profile数据使用Sql保存, 则需要Sql Server)3)        Windows Server 2003 or Windows 2000 Server with Service Pack 4 (因为Block的AzManProvider需要Authorization Manager [AzMan])三大组件:1)                    Microsoft.ApplicationBlocks.Security.dll    此Block的一些对象概念定义层2)                    Microsoft.ApplicationBlocks.Common.dll   此Block的Provider定义层3)                   Microsoft.ApplicationBlocks.Security.Providers.dll  可以插入应用系统business层的Provider的逻辑层安装Block下载位置:http://www.microsoft.com/downloads/details.aspx?FamilyId=BA983AD5-E74F-4BE9-B146-9D2D2C6F8E81&displaylang=en安装后运行 [安装位置] /Security/Database/Profile.sql 安装profile存储数据库(demo使用).(过程略)

2.2.  研究环境

WinXP, SQL Server 2000 + SP3A, .Net 附件:   (点击下载Demo附件)      DemoApp项目:  win应用项目Microsoft.Interop.Security.AzRoles.dll: Authorization ManagerCommon 项目:  Auth Pro 提供Security/Security项目: Auth Pro提供Security/Providers项目:  Auth Pro提供的Authorization 和Profile的处理器

2.3. 研究思路

1. 了解熟悉asp.net 一般验证授权的所有做法2. 认识Authorization and Profile Application Block3. 配置Authorization and Profile Application Block开发使用环境4. 使用Block, 设计profile解决方案demo5. 使用Block, 设计Authorization解决方案demo6. 总结使用Block的使用和设计思想 

2.4.  Block设计架构



也由此可知Authorization与 Profile是基本独立管理的, 管理结构也基本相同. Configuration:可以保存到config文件里或其他介质数据存储: 可以是sql, xml等介质
由架构图可以看出Block主要实现或提供了什么 1.     Extended Principal普通的WindowsPrincipal或GenericPrincipal实现不了复杂的业务, ExtendedPrincipal继承IPrincipal基础上还自定义了:       Bool CheckAccess 根据是否有权限       StringCollection GetRoles 获所有角色       2.     Authorization Provider Interface提供IAuthorizationProvider:       Initialize        StringCollection GetRoles       Bool CheckAccess 3.     Profile Provider Interface提供 IProfileProvider:
Initialize
Object Create
IdentitiesSupported 可选:  è  IProfileReaderProvider
è  IProfileWriterProvider
 

2.5.Authorization 模块

2.5.1. 开发应用

è  在自定义的solution里加入Block提供的Common, Security两个Projectè  新建Providers项目, 用来处理Authorization的逻辑之用. 引用Common和Security项目è  创建自定义的Provider class, 必须:Based on IAuthorizationProvider并实现它的三个方法这里介绍使用XML和AzMan管理用户权限两种开发应用方法1)        使用XML如附件中Providers项目下的Authorization/AzXmlProvider.cs. 主要是CheckAccess 方法中根据当前用户的请求, 从AzXmlProvider.xml 对应配置位置检查用户是否有权限执行任务.2)        使用AzMan如果使用AzMan(windows 2003 administration tools/windows 2000 server sp4中自带的Authorization Manager), 则要引用Microsoft.Interop.Security.AzRoles.方法简介:1.       在c:/windows/system32下找到azRoles.dll2.       使用.net 1.1自带的tlbimp command line 工具将azroles.dll这个COM dll转换: tlbimp azroles.dll /out: Microsoft.Interop.Security.AzRoles.dll /namespace: Microsoft.Interop.Security.AzRoles3.       Providers项目再引用Microsoft.Interop.Security.AzRoles.dll4.       在Authorization Manager的MMC上设置用户权限(略)如附件中Providers项目下的Authorization/AzManProvider.cs. 实现IAuthorizationProvider 的三个方法都是调用AzMan的方法.

2.5.2. Configuration的设置

设置要引用的Provider如附件的app.config:      
                       msxml://c:/AzMan.xml                                 primaryIdentity                                              AzXmlProvider.xml                                 primaryIdentity                      
 附件定义了两个Authorization Provider: Microsoft.ApplicationBlocks.Security.Authorization.AzManProvider和Microsoft.ApplicationBlocks.Security.Authorization.AzXmlProvider标识名分别是azmanProvider, AzXmlProvider.应用Provider, 见代码:
ExtendedPrincipal principal =      ExtendedPrincipal.Create(Thread.CurrentPrincipal.Identity);     … …         principal.AuthorizationProvider =      "azmanProvider"; // or AzXmlProvider;
 

2.6.    Profile模块

略, 不重点介绍, 具体的请见附件DemoApp项目下的Form1.cs

3.总结

1)        Authorization and Profile Application Block 1.0提供了接口, 可以让我们自定义Provider 来灵活实现用户的验证授权动作.2)        权限分配可以细分到operation, 而且用户权限完全基于Authorization Manager(或XML等配置)来自由设置3)        使用非常方便, 有效地提高验证授权的开发质量 

4.  参考资料

序号名称来源
1Help for Auth Pro AB 1.0Block的安装目录
2Designing Application-Managed Authorization.pdf 
3MS - Building Secure ASP.NET Applications.pdf 
4  
5  
6  
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=210682
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: