您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 规章制度 > Acegi+(version1.0.4)中文参考手册
Acegi(version1.0.4)中文参考手册acegi参考手册(v1.0.4)[译]-序言序言AcegiSecurity为基于J2EE的企业应用软件提供全面的安全解决方案。正如你在本手册中看到的那样,我们尝试为您提供有用的,高可配置的安全系统。安全是一个永无止境的目标,获取一个全面的,系统级的实现方式是至关重要的。在安全界,我们鼓励你采用“分层安全”,这样每个层都确保自身尽可能的安全,另外的层提供另外的安全。每个层自身越“紧密”,你的系统就越鲁棒和安全。在底层,你要处理传输入安全和系统认证,减少“中间人攻击”(man-in-the-middleattacks)。接下来你要使用防火墙,结合VPN或者IP安全来确保只有认证过的系统能够尝试连接。在企业环境中,你可能部署DMZ(demilitarizedzone,隔离区)来把面向公众的服务器和后端的数据和应用服务器分隔开。在以非授权用户运行进程和文件系统安全最大化上,你的操作系统也将扮演一个关键的角色。接下来你要防止针对系统的拒绝服务和暴力攻击。入侵检测系统在检测和应对攻击方面尤其有用,这些系统可以实时屏蔽恶意TCP/IP地址。在更高层上,你的Java虚拟机需要进行配置,将授予不同Java类型的权限最小化,然后,你的应用程序要对添加针对自身特定问题域的安全配置。AcegiSecurity使后者-应用程序安全变得容易。当然,你要正确对待上述提到的每个安全层,以及包含于每个层的管理因素。这样的管理因素具体包括:安全公告监测,补丁,人工诊断,审计,变更管理,工程管理系统,数据备份,灾难恢复,性能评测,负载监测,集中日志,应急反应程序等等。AcegiSecurity专注于在企业应用安全层为您提供帮助,你将会发现和各式各样的需求和商业问题领域一样多。银行系统的需求和电子商务应用的需求不同。电子商务应用和售卖军用自动工具的公司的需求不同。这些客户化的需求使得应用安全显得有趣,富有挑战性而且物有所值。本手册为AcegiSecurity1.0.0的发布而大规模重新组织。请先阅读PartI架构概览。手册的其余部分按照传统的手册方式编排,需要一定的基础才能阅读。我们希望您会觉得手册有用,并且欢迎您提供反馈意见和建议。最后,欢迎加入AcegiSecurity社区。acegi参考手册(v1.0.4)[译]-第一章简介PartI.架构概览象其他的软件一样,AcegiSecurity也有在整个框架中都会使用的特定核心接口,类,和概念抽象。在手册的这一部分,在检视这些规划和执行AcegiSecurity集成所必须的核心要素之前,我们先介绍AcegiSecurity。第一章.简介1.1.AcegiSecurity是什么?AcegiSecurity为基于J2EE的企业软件应用提供全面的安全服务。特别是使用领先的J2EE解决方案-Srping框架开发的项目。如果您不是使用Spring开发企业应用,我们温馨提醒您仔细研究一下。熟悉Spring,尤其是依赖注射原理,会极大的帮助你快速掌握AcegiSecurity。人们使用AcegiSecurity有很多种原因,不过通常吸引他们到这个项目的原因是他们在J2EE的ServletSpecification或者EJBSpecification中找不到迫切需要的典型企业应用场景。提到这些规范,特别要提出的是他们不是在WAR或者EAR级别可移植的。这样,如果你切换服务器环境,一般来说你要在目标环境中花费很多工夫来重新配置你的应用安全。使用AcegiSecurity解决了这些问题,并且为你提供了很多其他有用的,完全可定制的安全特性。如你所知,安全包含两个主要操作。第一个被称为“认证”,是为用户建立一个它所声明的principal。Principal通常代表用户,设备,或者其他能在你的应用中执行操作的其他系统。“授权”指判定一个principal能否在你的系统中执行某个操作。在到达授权判断之前,principal的的身份认证已经由认证过程执行过了。这些概念是通用的,不是AcegiSecurity特有的。在认证层面,AcegiSecurity广泛支持各种认证模块。这些认证模块绝大多数是第三方提供,或者相关的标准组织开发的,例如InternetEngineeringTaskForce。作为补充,AcegiSecurity自己也提供了一些认证功能。AcegiSecurity当前支持如下的认证技术。•HTTPBASICauthenticationheaders(anIEFTRFC-basedstandard)•HTTPDigestauthenticationheaders(anIEFTRFC-basedstandard)•HTTPX.509clientcertificateexchange(anIEFTRFC-basedstandard)•LDAP(averycommonapproachtocross-platformauthenticationneeds,especiallyinlargeenvironments)•Form-basedauthentication(forsimpleuserinterfaceneeds)•ComputerAssociatesSiteminder•JA-SIGCentralAuthenticationService(otherwiseknownasCAS,whichisapopularopensourcesinglesignonsystem)•TransparentauthenticationcontextpropagationforRemoteMethodInvocation(RMI)andHttpInvoker(aSpringremotingprotocol)•Automaticremember-meauthentication(soyoucantickaboxtoavoidre-authenticationforapredeterminedperiodoftime)•Anonymousauthentication(allowingeverycalltoautomaticallyassumeaparticularsecurityidentity)•Run-asauthentication(whichisusefulifonecallshouldproceedwithadifferentsecurityidentity)•JavaAuthenticationandAuthorizationService(JAAS)•ContainerintegrationwithJBoss,Jetty,ResinandTomcat(soyoucanstilluseContainerManagerAuthenticationifdesired)•你自己的认证系统(如下所示)很多独立软件供应商(ISVs)选择AcegiSecurity是因为它具有丰富的认证模块。这样无论他们的终端客户需要什么,他们都可以快速集成到他们的系统中,不用花很多工夫或者让终端客户改变环境。如果AcegiSecuritySystemforSpring的7个认证模块还没有满足你的需求的话,AcegiSecurity是一个开放的系统,很容易写你自己的认证机制。许多AcegiSecurity的企业用户需要和“遗留”系统集成,这些遗留系统不遵循任何安全标准,AcegiSecurity能够和这样的系统“合作愉快”。有时候基本的认证是不够的。有时候你需要根据principal和应用交互的方式来应用不同的安全措施。例如,你可能为了防止密码被窃取,或者防止终端用户受到“中间人”攻击,需要保证到达的是请求通过HTTPS的。或者,你要确保是一个真正的人而不是某种机器人或者自动进程在发送请求。这对于保护密码恢复不受暴力破解攻击,或者防止他人很容易的复制你应用的关键内容。为了帮助你实现这些目标,AcegiSecurity完全支持自动“通道安全”(channelsecurity),以及集成Jcaptcha来检测是否是真正人类用户。AcegiSecurity不仅提供了认证功能,而且提供了完备的授权功能。在授权方面主要有三个领域,授权web请求,授权方法调用,授权存取单个领域对象实例。为了帮助你理解这些区别,对照考虑一下Servlet规范中的web模式安全的授权功能,EJB容器管理安全以及文件系统安全。AcegiSecurity提供了所有这些重要领域的完备功能,我们将在本手册的后面介绍。1.2.历史AcegiSecurity始于2003年晚期,当时在SpringDevelopers邮件列表中有人提问是否有人考虑提供一个基于Spring的安全实现。当时,Srping的社区是相对比较小的(尤其是和今天相比!),实际上Spring本身也是2003年早期才作为一个SourceForge项目出现的。对此问题的回应是它确实是一个值得研究的领域,虽然限于时间无法进行深入。有鉴于此,这个简单的安全实现虽然构建了但是并没有发布。几周以后,Spring社区的其他成员询问了安全框架,代码就被提供给了他们。随后又有人请求,到了2004年一月,大约有20人左右在使用这些代码。另外一些人加入到这些先行的用户中来,并建议建立一个SourceForge项目,这个项目在2004年3月建立起来。在早期,该项目自身并布具备任何认证模块。认证过程依赖容器管理安全(ContainerManagedSecurity)而AcegiSecurity注重授权。在一开始这样是合适的,但是随着越来越多的用户要求额外的容器支持,基于容器的认证的限制就显示出来了。另外一个相关的问题是添加新的JAR文件到容器的classpath,通常会让最终用户感到困惑并且配置错误。随后,AcegiSecurity加入了认证服务。大约一年后,AcegiSecurity成为了一个SpringFramework官方子项目。在2年半多的在多个软件项目中的活跃使用以及数以百计的改进和社区贡献,1.0.0最终版在2006年5月发布。今天,AcegiSecurity成为一个强大而活跃的社区。在支持论坛上有数以千计的帖子。14位开发人员专职开发,一个活跃的社区也定期共享补丁并支持他们的同侪。1.3.发行版本号理解AcegiSecurity的版本号是非常好处的,它可以帮助你判定升级的到新的版本是否需要花费很大精力。我们的正式发行版本使用ApachePortableRuntimeProject版本指引,可以在下述网站查看。为了您查看方便,我们引用该页的说明部分如下:“版本号由三个部分的整数组成:主版本号(MAJOR)、副版本号(MINOR)、补丁版本号(PATCH)。主要的含义是主版本号(MAJOR)是不兼容的,API大规模升级。副版本号(MINOR)在源文件和可执行版和老版本保持兼容,补丁版本号(PATCH)则意味着向前和向后的完全兼容”。acegi参考手册(v1.0.4)[译]-第二章技术概览[上]第二章.技术概览2.1.运行时环境AcegiSecurity可以在JRE1.3中运行。这个发行版本中支持也Java5.0,尽管对应的Java类型被分开打包到一个后缀是“tiger”的包中。因为AcegiSecurity致力于以一种自包含的方式运行,因此不需要在JRE中放置任何特殊的配置文件。特别无需配置JavaAuthenticationandAuthorizationService(JAAS)策略文件或者将AcegiSecurity放置到通用的classpath路径中。同样的,如果你使用EJB容器或者Servlet容器,同样无需放置任何特别的配置文件或者将AcegiSecurity包含在服务器的类加载器(classloader)中。上述的设计提供了最大的部署灵活性,你可以直接把目标工件(JAR,WAR或者EAR))直接从一个系统co
本文标题:Acegi+(version1.0.4)中文参考手册
链接地址:https://www.777doc.com/doc-4339048 .html