技术开发 频道

安全应用程序块简介



【IT168 技术文档】

安全应用程序块简介
    Microsoft Enterprise Library Security Application Block 1.0 版有助于开发人员在其应用程序中实现与安全相关的常见功能。应用程序可以在多种情况下使用此应用程序块,例如,根据数据库对用户进行身份验证和授权、检索角色和配置文件信息以及缓存用户配置文件信息。安全应用程序块具有以下功能:
•它可以减少编写样本代码以执行标准任务的需要。
•它有助于在应用程序和整个企业中维护一致的安全做法。
•利用涵盖提供的各种功能区域且一致的体系结构模型,从而使开发人员在学习过程中少走一些弯路。
•它提供了用于解决常见的应用程序安全问题的实现。
•它是可扩展的,并且支持安全提供程序的自定义实现。
常见情况
开发人员经常编写需要安全功能的应用程序。这些应用程序通常需要执行一系列不同的安全操作,而且它们还经常与不同的基础安全提供程序(如 Microsoft Active Directory 目录服务、授权管理器、Active Directory 应用程序模式 (ADAM) 和自定义数据库等)进行交互。
安全应用程序块通过收集开发人员必须执行的许多最常见的安全任务,来简化开发人员的工作。每个任务都以一致的方式处理,从特定的安全提供程序中抽象出应用程序代码并使用非常好的做法。您甚至可以通过更改配置来更改基础提供程序,而无需更改基础应用程序代码。
安全应用程序块提供的代码可以在以下方案中帮助您:
•身份验证
•授权
•角色管理
•配置文件管理
•缓存主体
读者要求
该应用程序块专为软件架构师和软件开发人员而设计。要充分利用该指导,您应该了解以下技术:
•Microsoft Visual C# 开发工具或 Microsoft Visual Basic 开发系统
•NET Framework(包括 .NET 安全概念)
•诸如 Microsoft Windows 身份验证和授权等主题的基本知识
1.0 版的主要特点
安全应用程序块是一个早期应用程序块(名为授权与配置文件应用程序块)的增强版。此版本的安全应用程序块包含大量授权与配置文件应用程序块所没有的功能。这些功能包括:
•身份验证支持
•无需授权管理器即可授权
•缓存与安全相关的凭据
•附加的提供程序
从授权与配置文件应用程序块迁移
授权与配置文件应用程序块的用户应该了解企业程序库安全应用程序块针对的多种情况。当前版本是基于从早期版本获得的知识和反馈而构建的,但它在如何解决那些情况方面有了重大改变。
企业程序库版本的安全应用程序块和授权与配置文件应用程序块的主要区别如下:
•企业程序库安全应用程序块包含有助于进行身份验证的功能,而授权与配置文件应用程序块则不包含可实现身份验证的任何功能。
•现在,开发人员调用的是工厂类的方法而非提供程序管理器。这些类在应用程序块的不同功能区域中是一致的。
•方法由提供程序提供,而非使用具有附加方法的扩展主体提供。这允许您通过自定义的 IPrincipal 实现来使用它们。

系统要求
安全应用程序块的要求如下:
•Microsoft Windows 2000、Windows XP Professional 或 Windows Server 2003 操作系统
•Microsoft .NET Framework version 1.1
•Microsoft Visual Studio .NET 2003
•维护用于身份验证、授权、配置文件和角色信息的数据的存储(具体要求取决于您使用此应用程序块的方式)
•用于缓存安全信息的存储(只有当您使用应用程序块的缓存功能时才需要)
•一个或多个用于维护授权数据的授权存储(如果您准备使用此应用程序块来进行授权)
如果您使用授权管理器提供程序,则需要 Microsoft Windows 2000 Server with Service Pack 4 或 Microsoft Windows Server 2003。

安全应用程序块的依赖项
企业程序库应用程序块被设计为能够彼此配合使用。有时,应用程序块依赖于其他应用程序块和企业程序库中包含的代码。安全应用程序块具有以下依赖项:
配置应用程序块。安全应用程序块使用它来读取其配置信息。
通用程序库功能,例如规范。它提供了各种功能来公开用于系统管理的事件和数据。
根据您向安全应用程序块要求的特定功能,您可能还需要以下一个或两个应用程序块,它们都包含在企业程序库中:
数据访问应用程序块。安全应用程序块的数据库提供程序使用数据访问应用程序块来访问包含在数据库中的安全信息。
缓存应用程序块。安全应用程序块使用缓存应用程序块来缓存安全信息,并在需要时检索它。
默认情况下,该应用程序块使用 XML 文件来存储配置信息。您可以修改此配置信息以更改应用程序块的行为。修改该信息的推荐方法是使用企业程序库配置控制台。
真正的安全信息(授权数据、身份验证存储和配置文件信息)由应用程序块中各个区域的提供程序管理。

安全应用程序块的设计
安全应用程序块旨在实现以下目标:
•为通常需要的功能提供简单而直观的界面
•封装用于执行最常见的应用程序安全任务的逻辑
•为常见安全任务提供标准的提供程序模型
•确保应用程序块是可扩展的
•确保性能影响最小或可忽略不计(与人工编写的用于实现同一功能的安全代码相比)
•集成应用程序安全的非常好的做法

设计要点
图 1 展示了安全应用程序块的设计。


                     图 1. 安全应用程序块的设计

    安全应用程序块在其设计中集成了通常需要的应用程序安全功能的实现。这些任务包括授权、身份验证、配置文件管理和角色管理。

测试驱动
开发安全应用程序块的目的是,分析常见的企业开发难题以及提供针对这些难题的成功解决方案。然而,因为每个应用程序都是唯一的,所以您会发现该应用程序块并不适合每个应用程序。为了评估该应用程序块并确定它对您项目的适用性,Microsoft 建议您至少用半天的时间来研究该应用程序块。推荐的评估方法如下:
1.下载企业程序库。
2.安装企业程序库,并编译所有的应用程序块和工具。
3.阅读文档的“Introduction”部分。
4.编译并运行快速入门示例,然后通读文档中相关 “QuickStart Walkthroughs”和“Key Scenarios”的部分。
5.如果应用程序块看起来很适合您的应用程序,则尝试使用该应用程序块在您的应用程序或丢弃原型 (throw-away prototype) 应用程序中实现一个简单的用例。
0
相关文章