J2EE的安全认证机制
J2EE的安全认证机制

J2EE的安全认证机制Web应用程序的安全机制有二种组件:认证与授权。
基于J2EE的Web容器提供三种类型的认证机制:基本认证、基于表单的认证、相互认证。
由于能够对认证用户界面进行定制,大多数的Web应用程序都使用基于表单的认证。
Web容器使用在Web应用程序的部署描述符中定义的安全角色对应用程序的Web资源的访问进行授权。
在使用基于表单的认证机制中,应用程序的设计人员与开发人员会遇到3类问题:·基于表单的认证如何与数据库与LDAP等其他领域的安全机制协同工作。
(这是非常必要的,由于许多组织已经在数据库与LDAP表单中实现了认证机制。
)·如何在Web应用程序的部署描述符(web.xml)中增加或者删除军政府的授权角色。
·Web容器在Web资源层次上进行授权;应用程序则需要在单一的Web资源中执行功能层次上的授权。
尽管有许多与基于表单的认证有关的文档与例子,但都没有能够阐明这一问题。
因此,大多数的应用程序都以自己的方式襀安全机制。
本篇文章说明了基于表单的认证如何与其他方面的安全机制,特别是数据库中的安全机制协作的问题。
它还解释了Web窗口如何使用安全角色执行授权与应用程序如何扩展这些安全角色,保护Web资源中的功能。
基于表单的认证基于表单的认证能够使开发人员定制认证的用户界面。
web.xml的login-config小节定义了认证机制的类型、登录的URI与错误页面。
<login-config><auth-method>FORM</auth-method><form-login-config><form-login-page>/login.jsp</form-login-page><form-error-page>/fail_login.html</form-error-page></form-login-config></login-config>登录表单务必包含输入用户姓名与口令的字段,它们务必被分别命名为j_username与j_password,表单将这二个值发送给j_security_check逻辑名字。
基于JAAS安全机制的J2EEWeb系统用户身份认证设计

基于JAAS安全机制的J2EEWeb系统用户身份认证设计刘景林【期刊名称】《五邑大学学报(自然科学版)》【年(卷),期】2011(000)003【摘要】在J2EEWeb系统中应用JAAS技术提供的动态、可插拔认证模型实现用户身份的安全认证.通过X.509数字证书和用户口令进行双重堆叠认证,在Tomcat服务器上配置实现服务器与客户端之间的SSL双向认证,并通过建立HTTPS连接以保护数据的安全传输,进一步提高系统用户认证的安全性.%In the J2EE Web application system, JAAS technology is used to provide a dynamic, pluggable authentication model to achieve the authentication of user security, i.e., through the double stack authentication of X.509 digital certification and user authenti【总页数】5页(P74-78)【作者】刘景林【作者单位】泉州经贸职业技术学院信息技术系,福建泉州362000【正文语种】中文【中图分类】TP309【相关文献】1.基于J2EEWeb服务的统一身份认证系统的设计与实现 [J], 王萍利2.RBAC扩展J2EE/JAAS安全机制的设计与实现 [J], 陈阳;佘堃;周明天3.基于JAAS安全机制的J2EE Web系统用户身份认证设计 [J], 刘景林4.基于JAAS的企业身份认证平台的研究与设计 [J], 沈桂兰;李玉霞;孙印杰5.基于JAAS的身份认证系统设计与实现 [J], 程俊波;卫红春;刘海峰;肖瑜因版权原因,仅展示原文概要,查看原文内容请购买。
系统架构中的安全认证和授权机制

系统架构中的安全认证和授权机制在当今数字化时代,信息系统的安全性成为了企业和个人必须关注的重要问题。
系统架构中的安全认证和授权机制是保护信息系统免受未经授权用户访问和数据泄露的关键措施。
本文将探讨系统架构中的安全认证和授权机制的重要性以及常见的实施方法。
一、安全认证机制安全认证机制是确保用户身份的合法性和真实性。
它通过验证用户的身份信息,比如用户名和密码,并确保只有通过认证的用户才能访问系统。
以下是几种常见的安全认证机制:1.1 用户名和密码认证用户名和密码认证是最基本和常见的安全认证机制。
用户输入正确的用户名和密码后,系统会对其进行验证,如果验证成功,则允许用户访问系统。
然而,用户名和密码认证存在一些安全风险,比如用户容易忘记密码或者密码容易被猜测,因此,许多系统采用了其他更安全的认证机制。
1.2 双因素认证双因素认证是提高安全性的有效方法,它结合了两种或多种不同的认证因素,比如密码、指纹、声纹、智能卡等。
用户需要同时提供两个认证因素进行验证,这大大增加了系统的安全性,因为即使一个因素被攻破,仍然需要另一个因素才能成功认证。
1.3 生物特征认证生物特征认证利用个体的生物特征,比如指纹、虹膜、面部识别等来验证用户的身份。
由于每个人的生物特征是唯一的,因此生物特征认证提供了更高的安全性和准确性。
然而,由于生物特征的获取和处理技术相对复杂,因此实施和维护成本较高。
二、授权机制授权机制确定用户在系统内可以执行的操作和访问权限。
它基于用户角色或权限级别,确保用户只能访问其合法授权的资源。
以下是几种常见的授权机制:2.1 基于角色的访问控制基于角色的访问控制是一种广泛应用的授权机制,它将用户分配到不同的角色,并为每个角色分配特定的权限。
当用户登录系统时,系统会根据用户所属的角色来确定其可访问的资源和操作。
这种授权机制简化了权限管理和用户管理,并提高了系统的安全性。
2.2 访问控制列表访问控制列表(ACL)是一种以每个用户或组为基础的授权机制,它明确列出了每个用户或组可以访问的资源和操作。
Web应用开发中的安全认证与授权技术

Web应用开发中的安全认证与授权技术一、概述Web应用开发中的安全认证与授权技术,是指基于Web应用程序的用户身份验证和授权系统。
这一技术主要是为了确保Web系统中的安全性和数据保密性。
它既是Web应用程序安全的重要组成部分,也是Web应用程序必须遵循的法规和标准。
二、安全认证技术1. 基本认证技术基本认证技术是一种最基本的Web安全认证方式。
其基本原理是用户在访问一个基于Web的应用程序时,需要通过输入用户名和密码信息进行身份验证。
如果身份验证成功,用户就可以访问系统,并执行所授权的操作。
这种技术相对简单,但安全性较差。
2. 数字证书技术数字证书技术是一种通过数字证书颁发机构认证用户身份的技术。
其基本原理是用户向数字证书颁发机构申请数字证书,证明其身份的真实性。
当用户向Web系统发起请求时,系统会向证书颁发机构验证用户的数字证书。
只有验证通过,用户才能访问系统。
3. 单点登录技术单点登录技术是一种可以使用户只需输入一次用户名和密码即可访问多个应用程序的技术。
其基本原理是在一个组织内部部署单点登录服务器,用户只需通过该服务器验证身份后,即可访问所有已注册的应用程序。
这种技术可以降低用户的管理成本,同时提高应用程序的安全性。
三、授权技术1. 基于角色的访问控制基于角色的访问控制是一种基于用户角色、权限和访问策略的访问控制模型。
其基本原理是管理员通过一个角色管理系统,对不同的用户分配不同的角色和权限信息。
应用程序依据该角色信息,对用户是访问控制和授权。
2. 基于策略的访问控制基于策略的访问控制是一种基于特定的策略信息对用户访问进行限制的访问控制模型。
基于策略的访问控制通过对访问策略信息的精细控制,确保了仅有特定用户可以访问指定的操作功能。
这种技术能够更好的保护Web应用程序的数据安全,但需要更精细的配置和管理。
四、总结Web应用开发中的安全认证与授权技术是保证Web应用系统安全性、数据保密性和合规性的必要手段。
J2EE系统项目中的安全性技术及应用实例——相关的安全术语

1.1J2EE系统项目中的安全性技术及应用实例——相关的安全术语1、权限系统的基本模式管理信息系统是一个复杂的人机交互系统,其中每个具体环节都可能受到安全威胁。
构建强健的权限管理系统,保证管理信息系统的安全性是十分重要的。
所谓权限管理就是对某个主体(Subject)在某个资源(Resource)上执行了某个操作(Operation)的信息传递路径中加上一些限制性控制。
(1)基本模式一最粗粒度的控制策略,控制点加在Subject处,即无论从事何种操作,针对何种资源,我们首先需要确认Subject是受控的。
只有通过认证的用户才能使用系统功能,这就是授权(Authorization)。
(2)基本模式二而稍微复杂一些的,则是控制可以施加在Subject和Operation的边界处(此时并不知道具体进行何种操作),称为模块访问控制,即只有某些用户才能访问特定模块。
(3)基本模式三第三级控制则是直接施加在Operation上,即操作访问控制。
Operation知道Resource 和Subject(但它尚没有关于Subject的细节知识)。
2、验证(Authenticate)与授权(Authorization)、安全传输对应用系统的保护可以分为三个层面,一个是验证(Authenticate,处理user-role关系),另一个是授权(Authorization,处理role-resource关系)和安全传输。
(1)验证是判断当前用户是否是系统中的合法用户(是否就是他或者她所宣称的那个人),这可以通过验证口令、数字证书来完成(在Java平台中可以采用JAAS 进行认证)。
(2)授权指的是判断用户是否拥有访问某一资源的权限(保证允许他或者她访问所要求的资源),例如判断某一用户是否有权利调用一个EJB组件中的方法(用JAAS 进行授权)。
(3)安全传输因为我们需要保证数据在传输过程中不会被未授权的人访问,因此我们还需要保证数据在到达之前,没有在传输过程中被修改过,不管这种修改是有意的还是无意的。
基于JAAS安全机制的J2EEWeb系统用户身份认证设计

文 章 编 号 : 1 0 ・ 3 2 ( 0 )0 -0 40 067 0 2 1 1 30 7 ・5
基 于 J AS安全 机 制 的 J E b系统 A 2 We E
用户 身份 认证 设 计
刘 景 林
( 州经 贸职业技 术 学院 泉 信 息技 术 系,福 建 泉 州 3 2 0 ) 60 0
o AAS Se u iy M e h n s nJ c rt c a im
L U Jn -i I ig l n
( eat n fnom t n eh o g, u nh u o a o a a dT c ncl o ee f D pr met fr ai cn l y Q a zo ct nl n eh ia C l g oI oT o V i l o E oo yadTa e Q a zo 6 0 0 C ia cn m n rd , u nh u3 2 0 , hn )
sa k a t n i a in o 5 9 d gt lc ri c to n s ra t e tc to a s r Th S mu u l t c u he tc to fX. 0 iia e tf ai n a d u e u h n i ai n p s wo d. e S L t a i a t e tc t0 s s tu n t e To a o a h e e a t e tc to e we n t e s r e n le ta d u h n ia i n i e p i h mc tt c i v u h n i ai n b t e h e v r a d ci n n HT TPS c n e to S a e e t b ihe o p o e tt e s c rt fd t r ns s i n a u t ri o n ci n r s a ls d t r tc h e u iy o a a ta miso nd f rhe mpr v oe
J2EE安全机制的分析与研究

2 WE . B应用 :利 用 WE 浏览 器 、JS B 2 E客户 端及 A P E访 P L 3EB组件:即 S R L T 2 E与 EB组件 的访 问部署 问题 ; .J E V E 、JS J
2声 明安 全性 。e - r ml . j j . 作为 JE b ax 2 E的描述 性 部署 文件 一方
JE 安全应用程序通过支持认证机制保护 了同未知实体进 行一 些操 作 时需 要 以必要 形式 向 系统证 明 自己的 身份 ,系统 后 台 2E
身 操 作权 限 ;中 间核心 部分 是 EB,开发 人 员依据 需 要完 成特 殊 J
功 能 的访 问与 系统 安全 策 略;后 台资 料库 与 L A D P服 务器 保障 访
权。
1R 的远程 调试 :利用 A P E与 Js . MI PL 2 E进 行服 务器 的远程
调试 ; 问 S R L T EV E ; ・
1 编程 式 安 全性 。由于 绝大 多数 的安全 策 略都 已以声 明的 . 可
形 式进 行 陈述 ,EB 结构 体 系则 依靠 必要 的方 式保 证调 用者 对上 J 下 文可 编程 访 问 的合法 性及 安全 性 。
Jv 语 言 要求 严格 ,构 架 安全 ,与操 作 系统 语言 无关 联性 , aa 运 用其 开 发 的程序 可在 网络 中安全 的运 行 。 原始 的 Jv 平 台 的 最 aa
身份 的形式 进行 验证 ,这是 应用 系统 与远 程 E B系统 实现 连 接 的 J 安全模 型 是沙 箱式 的 ,其 安全 核心 由三 个方 面组 成 : 先 决条件 。 以应 用服 务器 为 主 的应 用 服务 系统 利用 J S完 成对 AS 1 节代码 验 证 :当只 有正 确 的代码 出现时 才被 执行 ; . 字 用户 身份 的验证 。当用户 身份 不被 识 别时 ,用 户将 无法 调用 E B J 2类 加载 器 :运行 时 ,本地 名称 范 围被 其定 义 ,保证 了 Jv 方法 。 . aa
基于JAAS安全机制的J2EE Web系统用户身份认证设计

的 , 以集 成 多种 认 证技 术 , 可 使 J E 可 这 2 E应 用 系统 独 立 于底 层 的认 证 技术 , 方便 其灵 活 地 选择 与 修改 所
使 用 的认证 技术 , 可 以实现 多种认 证机 制 的堆叠 认 证 , 认证 技术 提供 了一 种实 现 J E b系统 安全 也 该 2 E we 认证 的解决 方案 .
1 JA A S安 认 证 机 制
11 J . AAS概 述
J AAS J v t e t aina dAuh r ain S rie 是 J E (a aAu h ni t n to i t evc ) 2 E架构 的 验证 与 授权 框 架 , 提供 了灵 c o z o 它 活、 可伸 缩 的实 体 认证 与 访 问控 制 的安 全 机制 , 决 了安 全 管 理 系统 中 的认 证 与授 权 问题 . A 解 J AS侧 重 于
关 键 词 : AAS安全机 制 ; 2 E应 用 系统 ;身份认 证 J JE 中 图法分 类号 : 3 3 0 TP 9 . 8 文 献标 识码 : A
0 引 言
随着 J v 技 术应 用 的不 断普 及 ,2 E 已 日渐 成 为 企 业 级 软 件 开 发 的首 选 平 台 , 于 J E aa JE 基 2 E架 构 的 We b系统 广泛 应用 于 电子政 务 、 电子商 务 及 网上银 行 等 其 他 安 全 性 要求 较 高 的领 域 , 由于 I tr e 中 但 n en t 存 在诸 多 不安全 因素 , 于在 实现 网上 业 务 的 同 时 , 何 提 高 系 统用 户 认 证 和 数 据传 输 等 方 面 的 安 全 问 对 如 题, 已成 为系统 开发 人员 关注 的 重 点 , 于 J E 关 2 E架 构 安 全方 面 的研 究 也 在 不 断 地深 入 . AAS技 术 作 为 J
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
J2EE的安全认证机制J2EE的安全认证机制Web应用程序的安全机制有二种组件:认证和授权。
基于J2EE的Web容器提供三种类型的认证机制:基本认证、基于表单的认证、相互认证。
由于能够对认证用户界面进行定制,大多数的Web应用程序都使用基于表单的认证。
Web容器使用在Web应用程序的部署描述符中定义的安全角色对应用程序的Web资源的访问进行授权。
在使用基于表单的认证机制中,应用程序的设计人员和开发人员会遇到3类问题:基于表单的认证如何与数据库和LDAP等其他领域的安全机制协同工作。
(这是非常必要的,因为许多组织已经在数据库和LDAP表单中实现了认证机制。
)如何在Web应用程序的部署描述符(web.xml)中增加或删除授权角色。
Web容器在Web资源层次上进行授权;应用程序则需要在单一的Web资源中执行功能层次上的授权。
尽管有许多与基于表单的认证有关的文档和例子,但都没有能够阐明这一问题。
因此,大多数的应用程序都以自己的方式襀安全机制。
本篇文章说明了基于表单的认证如何与其他方面的安全机制,尤其是数据库中的安全机制协作的问题。
它还解释了Web窗口如何使用安全角色执行授权以及应用程序如何扩展这些安全角色,保护Web资源中的功能。
基于表单的认证基于表单的认证能够使开发人员定制认证的用户界面。
web.xml 的login-config小节定义了认证机制的类型、登录的URI和错误页面。
FORM/login.jsp/fail_login.html登录表单必须包含输入用户姓名和口令的字段,它们必须被分别命名为j_username和j_password,表单将这二个值发送给j_security_check逻辑名字。
下面是一个该表单如何在HTML网页中实现的例子:除非所有的连接都是在SSL上实现的,该表单能够透露用户名和口令。
当受保护的Web资源被访问时,Web容器就会激活为该资源配置的认证机制。
为了实现Web应用程序的安全,Web容器执行下面的步骤:在受保护的Web资源被访问时,判断用户是否被认证。
如果用户没有得到认证,则通过重定向到部署描述符中定义的注册页面,要求用户提供安全信任状。
根据为该容器配置的安全领域,确认用户的信任状有效。
判断得到认证的用户是否被授权访问部署描述符(web.xml)中定义的Web资源。
象基本的安全认证机制那样,在Web应用程序的部署描述符中,基于表单的认证不指定安全区域。
也就是说,它不明确地定义用来认证用户的安全区域类型,这就会在它使用什么样的安全区域认证用户方面引起混淆。
要对用户进行验证,Web窗口需要完成下面的步骤:判断该容器配置的安全区域。
使用该安全区域进行认证。
由于数据库和LDAP在维护信息方面提供了更大的灵活性,因此大多数组织都会希望继续使用它们维护安全认证和授权信息。
许多Web窗口都支持不同类型的安全区域:数据库、LDAP和定制区域。
例如,在TomcatWeb容器中,server.xml将数据库配置为其安全区域。
debug="99"driverName="oracle.jdbc.driver.OracleDriver"connectionURL="jdbc:oracle:thin:@{IPAddress}:{Port}:{Ser vicename}"connectionName="{DBUsername}"connectionPassword="{Password}"userTable="users"userNameCol="username"userCredCol="password"userRoleTable="user_roles"roleNameCol="rolename"/>Tomcat的server.xml的标志定义了窗口用来识别一个用户的安全区域的类型。
注意,容器对Web应用程序使用该区域,应用程序的认证机制是基于表单的。
授权一旦用户被识别后,容器就会得到认证用户的安全角色,看用户是否属于在部署描述符中的标志中定义的安全角色之一。
如果用户不属于任何一个安全角色,则容器会返回一个错误。
部署描述符(web.xml)的标志定义了被保护的.Web资源和能够访问这些资源的安全角色清单。
AdminPagesaccessiblebyauthorisedusers/admin/*GETThesearetheroleswhohaveaccessmanagerWeb窗口在网页层次上执行认证。
然而,商业性应用程序可能还希望对一个网页内的功能进行认证,这会要求在应用程序中定义一些新的附加的与应用程序有关的安全角色。
为了控制对功能的访问,应用程序需要理解角色的权限概念。
Web容器标准没有解决权限的问题。
由于授权角色是动态的,开发人员常常会感到迷惑,即这些安全角色是否需要添加到部署描述符中。
为了使应用程序充分利用安全支持,Web容器只需要在部署描述符中定义的一个角色。
因此,应用程序可以定义一个高层次的角色,然后将所有的用户都指派给该角色。
这将使该角色中的所有用户都拥有能够访问Web资源的权限。
另外,应用程序还可以定义额外的角色,执行对一种Web资源中较低层次的功能的授权。
由于应用程序已经配置有一个包含应用程序中所有用户的高层次安全角色,这些低层次的安全角色也就不需要在部署描述符中进行定义。
这使得Web应用程序能够利用容器的授权支持,实现与指定应用程序有关的授权。
我们可以在部署描述符中为所有用户定义一个高层次的管理员角色,保护管理类Web资源,这使得管理员角色中的所有用户都能够访问管理网页。
为了控制管理网页中的其他功能,我们可以在应用程序中创建sysadmin或appadmin等新的角色。
应用程序可以对这些安全角色进行扩展,使它们拥有一定的权限。
然后,应用程序可以使用这些权限来控制对其功能的访问。
尽管与特定应用程序相关的安全角色不是定义在部署描述符中的,这些角色仍然可以在isUserInRole方法中使用,判断用户是否在这些安全角色中。
优点Web应用程序无需实现认证机制,简化Web应用程序的配置。
Web应用程序能够使用getRemoteUser、IsUserInRole和getUserPrincipal方法实现有规划的安全。
Web应用程序能够将认证信息传播给EJB容器。
在Tomcat中配置数据库安全区域1.创建用户表。
该数据库表需要有username和password二个字段。
createtableusers(usernamevarchar(20)notnull,password(20) notnull)2.创建角色表该表维护着应用程序中角色的清单,它仅仅有rolename一个字段。
createtableroles(rolenamevarchar(20)notnull)3.创建用户-角色关联表该表维护着一个用户和各个角色之间的关联,一个用户可以属于一个或多个角色。
createtableuser_roles(usernamevarchar(20)notnull,rolenam evarchar(20)notnull)4.在表中插入数据insertintousersvalues('user1','password')insertintorolevalues('manager')insertintouser_rolesvalues('user1','manager')5.通过将下面的信息拷贝到{tomcat}\conf\文件夹的server.xml文件中,配置Tomcat。
(本例使用了薄客户端驱动程序,Tomcat使用内存区域作为缺省的安全区域,我们使用基于数据库的安全区域)debug="99"driverName="oracle.jdbc.driver.OracleDriver"connectionURL="jdbc:oracle:thin:@{IPaddress}:{Port}:{Ser vicename}"connectionName="{DBUsername}"connectionPassword="{Password}"userTable="users"userNameCol="username"userCredCol="password"userRoleTable="user_roles"roleNameCol="rolename"/>用环境变量替换下面的值:{IPAddress}━━数据库服务器的IP地址{Port}━━端口号{Servicename}━━服务名字{DBUsername}━━数据库登录{Password}━━数据库登录的口令6.将Oracle的薄客户机驱动程序JAR文件或数据库的JDBC驱动程序拷贝到{tomcat_home}/server/lib目录中。
7.用下面的安全约束配置Web应用程序的部署描述符ProtectedArea/*DELETEGETPOSTPUTmanagerNONEFORMExampleForm-BasedAuthenticationArea/jsp/login.jsp/jsp/error.jsp需要注意的是,中的值应当是用户-角色关联表中中角色之一。
在Tomcat中配置例子文件使用上面介绍的命令配置Tomcat。
打包你的工程,并将它拷贝到Tomcat的webapps目录。
启动Tomcat服务器打开一个浏览器,输入下面的地址:http://localhost:8080/useProjectName/index.jsp输入用户名和口令。
在WebLogic中配置数据库安全区域配置Web应用程序的部署描述符,这一过程与在Tomcat中配置非常相似。
Tomcat和WebLogic的配置描述符之间的一个差别是,WebLogic配置描述符要求下面的小节,而Tomcat不需要下面的小节:Managersecurityrolemanager结论通过本篇文章,读者应该会对基于表单的认证、以及它如何与数据库安全区域配合进行认证有个比较深刻的认识。
Web应用程序能够利用基于表单的认证机制,保护它的资源,同时允许使用以前的安全认证机制。