`
dengtl
  • 浏览: 6779 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多

JAAS

Resource:http://hintcnuie.iteye.com/blog/245239

 
Authentication, Authorization and Access Control
The primary goal of JAAS is to manage the granting of permissions and performing security checks for those permissions.
 
1.Authentication
1.1 Concept
Principal is one of identifers of a subject.
Subject is a collection of principals.
Credential is a prove of principal, it could be any type of object.  
Authentication:The process to identify subject and attach credentials and principals to a subject.
LoginModule: provide a pluggable way to have system support JAAS.
                    used for authentication(login, and principals, credentials binding)
                    (authentication technology providers interface)
LoginContext:describes the basic methods used to authenticate Subjects and provides a way to develop an
                    application independent of the underlying authentication technology.
                    (Application Interface)            
Configuration:determine which LoginModules should be used,
                     and which ones must succeed in order for the overall authentication to succeed(consits of AppConfigurationEntrys).
CallbackHandler: communicate and interact with users to gather identification information
CallBack: store information gathered by CallbackHandler;
  
1.2Authentication Progress
Application employ LoginContext to get a authenticated Subject. At this time, LoginContext will ask the Configuration for the
plugined LoginModules, and call each LoginModule to attach principals and credentials to Subject(owned by each LoginModule or LoginContext).
Before each LoginModule attach principals and credentials, there will be a chance for LoginModule to judge whether to attach or not,
it employ CallbackHandler to collect informations in the CallBacks. If the collected information is valid, it could do attach now(in LoginContext is commit).
 
2.Authorization && AccessControl
2.1 Concept
Permission defines what kind of actions on a target.
Permission = Permission Type + Target(permission effect on) + Action(Optional)  
Not a subject but principal is assigned to a permission(defined by policy).

 

Policy: defines which permission are granted to a given security context(principal).(Deploying time And RunTime
Authorization: binding permissions to princpals(policy)
Acess Control: access sensitive code employ AccessControler or Security Mananger to check subject have the right to access resources.
ProtectDomain: encapsulates a set of classes whose instances are granted a set of permissions when being executed on behalf of a given
                        set of Principals.
2.2 Acess Control Progress
 

3. Two Extensible Interface
  Subject -- Principals -- Permission: Jaas employs Pricipals to decouple the Subject and Principals.
 
  Configuration: support to dynamicly or staticly add/remove/edit LoginModules which attach pricipals to Subject.
                        It judges which pricipals a Subject could have.
 
  Policy: support to dynamicly or staticly add/remove permissions to a principal.
             It judges which permissions a principal could have.

4. JAAS in Tomcat
   Realm: as LoginModule, authenticate a user based on a username and password, adding “roles” to that user if authentication was successful.
             defined as Realm in server.xml  
   Role: as Principal, defined as security-role in web.xml  
   Authenticator: as access controller to take access control function. defined as login-config in web.xml.
               It look down security-constraint to check.
     
  
 
 
 
 
 

 

  • 大小: 22.9 KB
分享到:
评论
1 楼 unsid 2009-04-14  
在了解jaas之前一直搞不懂安全问题,以往我们做系统的权限都是由系统开发人员自己完成,比如局长有所有功能权限,管理员只有创建用户的权限等等。。。我起先还以为jaas是一个基于快速构建类似权限策略的框架,可是我了解了之后发现不是.
jaas提供了系统访问权限而不是应用级别的权限,jaas宣扬的是安全,而平常我们说的访问是用户权限,我突然意识到这两个概念的不同,安全是作为权限背后的保障机制出现的,比如用户定义权限“张三登陆系统不能进入申报页面”,这直接影响了系统流程,那么如果用jaas描述,很难讲“张三登陆系统不能读取名为submit.txt的文件”在整个应用系统中有什么业务含义。所以jaas几乎没法用来控制流程和表现业务,而是用来作为权限背后的保障机制。比如:“张三不能进入申报页面”,而进行申报的第一个环节就是读取submit.txt,开发人员实现这个权限全靠隐藏申报页面,但是倘若张三用某个软件或者系统bug显示了这个隐藏页面(看起来不难),那么如果在policy中配置张三不能读取submit.txt的策略,纵使张三突破隐藏页面的防线,也没有任何办法越过jaas的控制。
所以在我认识中jaas不是用于控制系统流程和表现业务而是提供保障机制,这也是我看待“安全”和“权限”的区别,我不知道在国内项目中有多少项目特别重视jaas,至少到现在位置,我做过项目中,隐藏页面我们就默许为安全了:)

jaas还牵涉思考一个问题就是,通常的权限主体是登陆用户,这就需要policy文件与人员库整合统一.

相关推荐

    JAAS学习笔记

    通过阅读"JAAS学习笔记.doc"和"Weblogic Security Provider学习笔记.docx",我们可以更全面地了解这个主题。 1. **JAAS概述**: - JAAS是Java的安全框架,提供了一种标准化的方式来验证用户身份(认证)并控制对...

    Java-J2EE全部学习笔记 培训结构的学习资料

    这份"Java-J2EE全部学习笔记 培训结构的学习资料"涵盖了从基础到高级的Java编程和J2EE应用开发的知识点,对于想要深入理解Java EE技术的人来说是一份宝贵的资源。 1. **Java基础知识**:这部分可能包括Java语言的...

    2010年J2EE学习笔记

    【J2EE学习笔记概述】 J2EE,全称为Java 2 Platform, Enterprise Edition,是Oracle公司(原Sun Microsystems)推出的用于开发企业级分布式应用程序的平台。2010年的J2EE版本主要是指J2EE 5或早期的Java EE 6,这两...

    JBOSS7学习笔记

    【JBoss7学习笔记】 JBoss Application Server,简称JBoss AS,是Red Hat公司开发的一款开源Java EE应用服务器,而JBoss7则是其一个重要的版本,带来了许多性能优化和架构改进。这篇学习笔记将深入探讨JBoss7的核心...

    ejb 学习笔记6

    ### EJB学习笔记第六部分详解 #### 一、EJB之间的调用 EJB (Enterprise JavaBeans) 是Java EE平台中用于开发分布式企业应用程序的重要组件。在实际开发过程中,经常需要一个EJB调用另一个EJB来实现更复杂的业务...

    EJB学习笔记.rar

    2. **安全性**:通过JAAS(Java Authentication and Authorization Service)实现用户身份验证和权限控制,保护应用程序的安全。 3. **分布式性**:EJB组件可以在网络中的不同节点上部署和执行,实现了分布式计算。...

    tomcat学习精华笔记

    【Tomcat 学习精华笔记】 Tomcat 是一个广泛应用的开源服务器,主要用于托管Java Web应用程序。它虽然不是严格意义上的应用服务器,但作为一个Servlet容器,它能够处理Servlet和JSP,并且具备了一些应用服务器的...

    Java认证和授权服务笔记代码

    在本笔记代码中,我们将深入探讨JAAS的工作原理以及如何通过编程实现相关功能。 1. **JAAS的基本概念** - **认证(Authentication)**:验证用户或系统实体的身份,通常涉及用户名、密码、数字证书等凭证。 - **...

    MLDN_J2EE框架_笔记(已解密)

    这是一份专门针对J2EE技术的详细学习笔记,可能包含了从基础概念到高级应用的各个层面。 【描述】"MLDN_J2EE框架_笔记(已解密)"的描述虽然重复,但可以推测笔记内容是围绕J2EE框架展开的,可能包括了J2EE开发中的...

    J2EE笔记

    本笔记主要围绕J2EE的核心概念、主要组件以及它们的应用场景进行阐述。 ### 1. J2EE架构 J2EE架构采用分层设计,主要包括以下层次: - **表现层(Presentation Layer)**:用户界面,通常由Web组件(如HTML、...

    J2EE框架(笔记)

    学习J2EE框架,不仅需要理解其组件模型,还要掌握如何利用设计模式优化应用架构,以及如何通过各种API和工具处理并发、持久化、安全性等问题。对于自学J2EE,结合MLDN的J2EE框架笔记,将有助于深入理解这些概念并...

    oracle jsp相关资料

    在Oracle JSP相关资料中,"我的电子日记"可能包含了作者在学习和实践Oracle JSP过程中记录的笔记和经验分享。这些内容可能涵盖了以下几个方面: - **基础概念**:JSP的基本结构、生命周期、页面指令的使用,以及与...

    web学习资料

    【描述】:“自己以前的j2ee学习资料”表明这份压缩包中包含了作者个人在学习J2EE过程中的积累,可能包括笔记、教程、案例研究、代码示例等。这通常意味着这些资料覆盖了J2EE的基础概念、核心组件、开发工具以及实际...

    一线大厂金三银四面试资料.zip

    此外,"Java架构面试专题寒冬(含答案)和学习笔记"这部分可能会涵盖系统架构设计、分布式系统、微服务、负载均衡、容错机制、数据一致性等高级话题,对于提升面试者的技术视野和解决问题的能力大有裨益。...

    j2ee interview

    Java J2EE面试指南 Java J2EE是企业级应用开发的重要框架,广泛应用于构建分布式、...对于"Java-J2SE学习笔记",这可能是一个关于Java标准版的基础学习资料,可以帮助巩固Java基础,为理解和应用J2EE打下坚实的基础。

    IBM Wensphere application server 7.0 training pdf

    **IBM WebSphere Application Server 7.0 培训PDF** IBM WebSphere Application Server (WAS) 是IBM推出...学生笔记PDF将为学习者提供一个系统性的学习路径,确保他们能够在短时间内掌握这一强大的企业级应用服务器。

    JBoss-A.Developer's.Notebook

    5. **安全机制**:讲解 JBoss 的安全模型,包括用户认证、角色授权、SSL 安全连接以及基于 JAAS(Java Authentication and Authorization Service)的安全配置。 6. **JMS 消息服务**:阐述 JBoss 对 JMS(Java ...

    Java EE企业级应用开发教程.zip

    在Java EE企业级应用开发教程中,你将深入学习如何利用这些服务和组件来创建高效、可扩展且具有高度灵活性的应用。以下是一些主要的知识点: 1. **Web组件**:包括Servlet和JavaServer Pages (JSP)。Servlet是Java ...

    Hibernate新手上路

    13. `jaas.jar`:Java Authentication and Authorization Service,用于身份验证和授权,通常在JDK1.4及以上版本中已包含。 在`hibernate.cfg.xml`配置文件中,以下几个属性是至关重要的: 1. `...

    siad_m1_jee:TD 支持 M1SIAD Blois 20142015

    在实际学习过程中,学生可能会接触到如何配置开发环境(如使用Eclipse或IntelliJ IDEA集成开发环境)、搭建应用服务器(如Tomcat或GlassFish)、理解MVC(Model-View-Controller)设计模式、数据库交互(通过JDBC或...

Global site tag (gtag.js) - Google Analytics