By Ben
Authorization and Profile Application Block 1.0研究报告<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
利用WindowsPrincipal或GenericPrincipal可以实现验证授权. 但权限只能分到角色. 利用Authorization and Profile Application Block 1.0 不仅有效实现权限分配到角色, 更能分配到任务, 操作.
Authorization and Profile Application Block是一个.net验证授权开发工具. 基于windows passport管理和NTLM 等实现用户验证授权.
利用AzMan实现很方便灵活地实现Authorization、可以随意定制profile内容方便开发使用、可以有多种profile数据存储介质……
运行Authorization and Profile Application Block对系统需求环境l:
1) .NET Framework version 1.1
2) 数据存储(比如: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使用).
(过程略)
WinXP, SQL Server 2000 + SP<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><chmetcnv w:st="on" unitname="a" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">3A</chmetcnv>, .Net
附件:(点击下载Demo附件)
DemoApp项目: win应用项目
Microsoft.Interop.Security.AzRoles.dll: Authorization Manager
Common 项目: Auth Pro 提供
Security/Security项目: Auth Pro提供
Security/Providers项目: Auth Pro提供的Authorization 和Profile的处理器
1. 了解熟悉asp.net 一般验证授权的所有做法
2. 认识Authorization and Profile Application Block
3. 配置Authorization and Profile Application Block开发使用环境
4. 使用Block, 设计profile解决方案demo
5. 使用Block, 设计Authorization解决方案demo
6. 总结使用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.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.dll
2. 使用.net 1.1自带的tlbimp command line 工具将azroles.dll这个COM dll转换:tlbimp azroles.dll /out: Microsoft.Interop.Security.AzRoles.dll /namespace: Microsoft.Interop.Security.AzRoles
3. Providers项目再引用Microsoft.Interop.Security.AzRoles.dll
4. 在Authorization Manager的MMC上设置用户权限(略)
如附件中Providers项目下的Authorization/AzManProvider.cs. 实现IAuthorizationProvider 的三个方法都是调用AzMan的方法.
2.5.2.Configuration的设置
设置要引用的Provider
如附件的app.config:
<authorizationProviders>
<provider name="azmanProvider" type="Microsoft.ApplicationBlocks.Security.Authorization.AzManProvider, Microsoft.ApplicationBlocks.Security.Providers">
<storeLocation>msxml://c:/AzMan.xml</storeLocation>
<identitiesSupported>
<identityName>primaryIdentity</identityName>
</identitiesSupported>
</provider>
<provider name="AzXmlProvider" type="Microsoft.ApplicationBlocks.Security.Authorization.AzXmlProvider, Microsoft.ApplicationBlocks.Security.Providers">
<storeLocation>AzXmlProvider.xml</storeLocation>
<identitiesSupported>
<identityName>primaryIdentity</identityName>
</identitiesSupported>
</provider>
</authorizationProviders>
|
附件定义了两个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;
|
略, 不重点介绍, 具体的请见附件DemoApp项目下的Form1.cs
1) Authorization and Profile Application Block 1.0提供了接口, 可以让我们自定义Provider 来灵活实现用户的验证授权动作.
2) 权限分配可以细分到operation, 而且用户权限完全基于Authorization Manager(或XML等配置)来自由设置
3) 使用非常方便, 有效地提高验证授权的开发质量
序号
|
名称
|
来源
|
1
|
Help for Auth Pro AB 1.0
|
Block的安装目录
|
2
|
Designing Application-Managed Authorization.pdf
|
|
3
|
MS - Building Secure ASP.NET Applications.pdf
|
|
4
|
|
|
5
|
|
|
6
|
|
|
分享到:
相关推荐
总结来说,实现JMeter中的OAuth 1.0认证需要对OAuth协议有深入理解,并结合BeanShell的Java脚本能力来生成正确的签名。这虽然比直接使用支持OAuth的工具更复杂,但对于自定义测试场景或在没有其他选项的情况下,这是...
Doing authorization in a clean way is always tricky, You want a delicate balance between an extreme abstraction and something like embedding roles in-side your compiled code, I have always preferred ...
在这个特定的“ERP信息化系统:XX SAP -Authorization-v1.0-20071113.ppt”文档中,重点讨论了权限管理的详细计划,这是确保系统安全性和合规性的重要环节。 权限管理总体计划涵盖了多个阶段,包括SIT(系统集成测试...
Architect and design highly scalable, robust, clean and highly performant applications in .NET Core 1.0 About This Book Incorporate architectural soft-skills such as DevOps and Agile methodologies ...
### Windows XP Professional Resource Kit:Managing Authorization and Access Control 在当今高度数字化的工作环境中,确保系统安全性和资源访问控制是至关重要的。对于使用Windows XP Professional的操作系统而...
The authors provide in-depth implementation guidance and best practices for access control, cryptography, logging, secure coding, and authentication and authorization in web application development....
- **Authorization**:提供客户端身份验证信息。 - **Content-Encoding**:指定实体数据的编码方式。 - **Content-Length**:给出实体数据的长度。 - **Content-Type**:标识实体数据的媒体类型。 - **Date**:表示...
例如,Authorization和WWW-Authenticate头用于身份验证,Cookie和Set-Cookie头用于状态管理,以及If-Modified-Since和ETag头用于缓存控制,这些都极大地增强了HTTP的功能和灵活性。 另一个重要的改进是HTTP 1.1支持...
在安全性方面,.NET 2.0提供了角色和身份验证机制,如Forms Authentication和Authorization,这些在DotBBSV1.0中也得到了应用,确保了用户登录和权限控制的实现。同时,ASP.NET的ViewState加密和Validation控件也能...
This module is based on Spring Authorization Server and contains information on using Spring Security OAuth2
implement efficient data paging, reuse UI using master pages and partials, secure the application using authentication and authorization, use AJAX to deliver dynamic updates and interactive map ...
总结起来,MM Authorization是一个综合了多种验证方法和权限控制策略的先进安全框架,它在保障信息资产安全、防止非法访问方面发挥着关键作用。理解和掌握MM Authorization的原理和实践,对于任何涉及数据安全的IT...
在IT行业中,授权(Authorization)是网络安全和访问控制的核心概念之一。它涉及到系统确定一个用户或进程是否有权限访问特定资源的过程。"Authorization"这个标题暗示我们将会探讨的是关于权限管理和认证后的授权...
在IT行业中,授权(Authorization)是网络安全和访问控制的核心概念之一。它定义了系统或服务如何确定一个用户或进程是否被允许执行特定的操作。本文将深入探讨授权的概念、类型、流程以及在实际应用中的实现方式。 ...
AspNetMVC1(2009-03-19发布的...As the ASP.NET MVC framework is built on ASP.NET 3.5, developers can take advantage of many existing ASP.NET 3.5 features, such as localization, authorization, Profile etc.n
Building Secure ASP.NET Applications Authentication, Authorization, and Secure Communication The WhiteBook from microsoft
关于Basic Authorization 在HTTP中,Basic Authorization基本认证是一种用来允许Web浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。 在发送之前是以用户名追加一个冒号然后串接...
总的来说,AUAT授权系统v1.0是一个全面的授权解决方案,旨在为软件开发者提供一个易于集成和管理的授权平台,同时确保用户能够安全、合法地使用软件产品。通过合理的架构设计和安全策略,该系统能够有效防止非法复制...