`
lovnet
  • 浏览: 7031187 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Authorization and Profile Application Block 1.0研究总结

阅读更多

By Ben


Authorization and Profile Application Block 1.0研究报告<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1.课题简介

利用WindowsPrincipalGenericPrincipal可以实现验证授权. 但权限只能分到角色. 利用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.1

2) 数据存储(比如:profile数据使用Sql保存, 则需要Sql Server)

3) Windows Server 2003 or Windows 2000 Server with Service Pack 4 (因为BlockAzManProvider需要Authorization Manager [AzMan])

三大组件:

1) Microsoft.ApplicationBlocks.Security.dll Block的一些对象概念定义层

2) Microsoft.ApplicationBlocks.Common.dll BlockProvider定义层

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 + 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的处理器

2.3.研究思路

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的使用和设计思想

2.4.Block设计架构


也由此可知
Authorization Profile是基本独立管理的, 管理结构也基本相同.

Configuration:

可以保存到config文件里或其他介质

数据存储:

可以是sql, xml等介质

由架构图可以看出Block主要实现或提供了什么

1. Extended Principal

普通的WindowsPrincipalGenericPrincipal实现不了复杂的业务, 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的逻辑之用. 引用CommonSecurity项目

è 创建自定义的Provider class, 必须:Based on IAuthorizationProvider并实现它的三个方法

这里介绍使用XMLAzMan管理用户权限两种开发应用方法

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 ManagerMMC上设置用户权限()

如附件中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.AzManProviderMicrosoft.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.参考资料

序号

名称

来源

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 实现oauth1.0授权认证

    总结来说,实现JMeter中的OAuth 1.0认证需要对OAuth协议有深入理解,并结合BeanShell的Java脚本能力来生成正确的签名。这虽然比直接使用支持OAuth的工具更复杂,但对于自定义测试场景或在没有其他选项的情况下,这是...

    Authorization in ASP.Net MVC using XML Configuration.

    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

    在这个特定的“ERP信息化系统:XX SAP -Authorization-v1.0-20071113.ppt”文档中,重点讨论了权限管理的详细计划,这是确保系统安全性和合规性的重要环节。 权限管理总体计划涵盖了多个阶段,包括SIT(系统集成测试...

    Enterprise Application Architecture with .NET Core

    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 Resource Kit:Managing Authorization and Access Control 在当今高度数字化的工作环境中,确保系统安全性和资源访问控制是至关重要的。对于使用Windows XP Professional的操作系统而...

    Secure Java: For Web Application Development

    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....

    http1.0协议中文版

    - **Authorization**:提供客户端身份验证信息。 - **Content-Encoding**:指定实体数据的编码方式。 - **Content-Length**:给出实体数据的长度。 - **Content-Type**:标识实体数据的媒体类型。 - **Date**:表示...

    HTTP 1.1与HTTP 1.0的比较

    例如,Authorization和WWW-Authenticate头用于身份验证,Cookie和Set-Cookie头用于状态管理,以及If-Modified-Since和ETag头用于缓存控制,这些都极大地增强了HTTP的功能和灵活性。 另一个重要的改进是HTTP 1.1支持...

    .net论坛 DotBBSV1.0_源码

    在安全性方面,.NET 2.0提供了角色和身份验证机制,如Forms Authentication和Authorization,这些在DotBBSV1.0中也得到了应用,确保了用户登录和权限控制的实现。同时,ASP.NET的ViewState加密和Validation控件也能...

    This module is based on Spring Authorization Server and contains

    This module is based on Spring Authorization Server and contains information on using Spring Security OAuth2

    Professional ASP.NET MVC 1.0原版第一部分

    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

    总结起来,MM Authorization是一个综合了多种验证方法和权限控制策略的先进安全框架,它在保障信息资产安全、防止非法访问方面发挥着关键作用。理解和掌握MM Authorization的原理和实践,对于任何涉及数据安全的IT...

    Authorization

    在IT行业中,授权(Authorization)是网络安全和访问控制的核心概念之一。它涉及到系统确定一个用户或进程是否有权限访问特定资源的过程。"Authorization"这个标题暗示我们将会探讨的是关于权限管理和认证后的授权...

    Authorization Authorization

    在IT行业中,授权(Authorization)是网络安全和访问控制的核心概念之一。它定义了系统或服务如何确定一个用户或进程是否被允许执行特定的操作。本文将深入探讨授权的概念、类型、流程以及在实际应用中的实现方式。 ...

    AspNetMVC1(2009-03-19发布的最新正式版含发布文档)

    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

    Building Secure ASP.NET Applications Authentication, Authorization, and Secure Communication The WhiteBook from microsoft

    Nginx上配置Basic Authorization登录认服务证的教程

    关于Basic Authorization 在HTTP中,Basic Authorization基本认证是一种用来允许Web浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。 在发送之前是以用户名追加一个冒号然后串接...

    AUAT授权系统v1.0.zip_AUAT_Authorization_fpr_yky_授权

    总的来说,AUAT授权系统v1.0是一个全面的授权解决方案,旨在为软件开发者提供一个易于集成和管理的授权平台,同时确保用户能够安全、合法地使用软件产品。通过合理的架构设计和安全策略,该系统能够有效防止非法复制...

Global site tag (gtag.js) - Google Analytics