`
yjyj001
  • 浏览: 135779 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

关于安全共性服务构件的一点理解

阅读更多

最近一直在讨论安全共性服务构件,但怎么也想不通,如何把安全应用作为一个共性服务对外发布。

(这里的服务是一个比较宽泛的概念,既包括Web Service 这种明确的服务类型,也包括Saas这种概念的服务,即在线软件,类似于google map,google doc,他们是有独立的前台页面,是一个完整的Web应用)

首先谈一下我对共性服务构件的理解,从我们现在看到的一些服务构件的举例,可以发现,现在的服务构件都是一些由第三方提供的,具有独立功能,不依赖于调用者的任何信息(除了要求的功能参数)的应用服务。

比如说天气查询服务,这个服务的提供方它自己维护者自己系统的运行,它可以连接到天气数据库,用户使用这个服务时候,只需要输入地址查询就可以。

再比如goole map,它自已有地图数据库,用户只需要输入查询地址,就可以看到相关地图。

再比如goole doc,它有自己的存储系统,用户可以在自己的帐户内上传文件,查看、编辑文件。

而安全应用和上面这些应用最大的不同点在于,安全应用是为这些应用服务的,它不是一个具有完整的独立功能的应用。以google doc为例,它是一个有独立功能的服务,但它需要一些安全方面的保护,比如对用户身份的认证。你可以把认证模块加入google doc这个服务实现的系统中去,这样这个服务在运行的时候,就首先会对用户进行认证。但是,你可以把认证这个模块作为一个服务单独发布出去吗?

认证,如果从服务的角度来看的话,它需要有用户与应用服务提供方这两个参与者。它的一个核心思想是为应用服务方来提供服务的,也就是由应用服务方来调用它。但同时呢,它还需要有用户的凭证作为参数,因此,就出现了下面两种认证模式的存在:

直接认证——用户与认证服务器直接交互

 

 

 

 

 

 

 

 

 

 

 

图1—直接认证模式

代理认证——用户提交凭证给应用服务端,又它提交给认证服务器

 

 

 

 

 

 

 

 

 

 

图2—代理认证模式

第一种模式,在基于浏览器的访问中比较合适,同时它支持用户的一个帐户访问多个应用服务,另外也适宜做单点登陆。

第二种模式,可以兼容各种访问情况,如客户端的,但在普通的基于浏览器的口令认证模式下,它不支持同一个帐户对应多个应用服务(主要指现在这种直接将口令通过form表单传送到服务器端的口令认证方式,因为服务器端会知道用户口令,如果像银行网站这种需要下载安全插件的,可以支持),但这种模式下似乎没有办法实现单点登陆。

(以上图示中,认证服务器需要身份数据库进行认证,主要是针对口令认证,或指纹认证之类的认证方式,如果采用证书认证,那么身份数据库就不一定是必须的,而应用服务器信任的CA证书就是必须的)

以上就是把认证作为单独的一个模块拿出来后,它所能提供功能的图示。那么,现在我们看,它可以作为一个独立的第三方服务对外提供吗?能或不能,关键在认证服务器需要的用户身份数据库。

无论这个数据库是由认证服务器来维护还是应用服务自己来维护,都需要应用服务器与认证服务器提前有一个前期的交互,完成信任的协商,以及数据库信息的同步,然后它才能够为这个应用服务器提供认证服务。

也就是说,认证服务可以以Saas的方式来提供服务。

首先,应用服务器端如果要用它的认证服务,需要先在认证服务器端注册,注册的时候需要指定,是否由认证服务器完成用户注册,如果不用,就只需要把相关数据库的地址及访问用户名密码告诉该认证服务器,如果用,就需要把相关的注册信息告诉认证服务器。这样就解决了数据库的问题。

然后,当用户要访问应用服务器的时候,它可以任意采用两种认证模式中的一种来调用认证服务器的认证服务。

以上过程相当于实现了认证托管功能。如果把认证服务器再扩展一下,就变为一个完整的身份管理系统了。

以上就是把认证以Saas的方式对外提供服务的一种实现方案吧。

对于访问控制,可以采用类似的思考模式,前提是采用了基于策略的访问控制模式,那么应用服务端只需要把相关的策略交给访问控制服务器端,但这里的难题恐怕在于如何把所有的访问控制行为都用策略表示出来,其中对于客体的描述是最麻烦的。

分享到:
评论

相关推荐

    构件技术下的电子信息系统软件集成平台设计实现研究.pdf

    在实际操作中,设计师需要考虑到各种实际因素,如构件的实际可用性、平台的性能和安全性等。这需要设计者对实际应用需求有深入的理解,并能够在设计过程中灵活应对各种潜在问题。 本文所提及的研究成果,为电子信息...

    2021年1月高处安装、维护、拆除作业(广东)广东地区模拟试题及答案卷1.docx

    这些知识点涵盖了高处作业的安全规范、操作规程、设备使用、作业指挥、个人防护、风险控制等多个方面,对于从事此类工作的人员来说,理解和掌握这些知识至关重要,能够有效预防和减少安全事故的发生。

    第2章需求工程.pptx

    领域分析是识别和理解特定应用领域中的共性需求的过程,它旨在确定可以广泛应用于多个项目的可重用组件。西安交通大学的刘海岩教授将其分为几个主要活动:一是确定感兴趣的领域元素,包括现有应用、支持软件和相关...

    j2ee复习资料

    容器负责管理构件的生命周期,提供必要的服务和支持,而构件则是具体的应用逻辑单元。 - **技术栈**:JavaEE平台覆盖了广泛的领域和技术,包括但不限于: - **EJB**:用于构建可移植的企业级组件。 - **JDBC**:...

    优质收藏资料《软件体系结构》期末复习题资料.doc

    12. 软件产品线和面向服务架构(SOA)分别强调了共性特征的复用和组件间的松散耦合。软件产品线基于共享核心资源开发一系列相关产品,SOA则通过服务接口实现组件间的解耦和交互。 13. RIA(Rich Internet ...

    结构施工图的绘制方法.doc

    - **结构总说明**:统一描述工程结构方面的共性问题,提供参考和修改空间。 - **桩基础统一说明及大样**:对于人工挖孔灌注桩或预应力混凝土管桩,会有统一说明和大样图,其中的“计划桩顶标高”需综合考虑多种...

    系统架构师概念汇总2020.docx

    软件架构风格是描述特定领域系统组织方式的模式,它定义了一类架构的共性,包括架构定义、词汇表(构件和连接件)和约束。架构模式是设计决策的基础,选择合适的模式有助于系统设计。软件架构贯穿整个软件生命周期,...

    软件体系结构课件(北大软件工程国家工程研究中心)

    1. **理解质量属性**:软件的质量属性是指那些非功能性的需求,例如性能、安全性、可维护性等。在软件体系结构设计阶段就需要考虑到这些质量属性,并在后续的开发过程中持续优化。 2. **质量属性实现通用策略**:...

    结构设计原理习题集(七).pdf

    【第二章 结构设计方法】中,学习要点聚焦于结构设计的共性问题,如功能要求、安全等级、设计使用年限等。极限状态设计法是结构设计的基础,它涉及荷载效应组合、结构可靠性和可靠度。荷载的代表值和标准值等概念是...

    CAD结构施工图画图要领.

    CAD结构施工图画图要领是建筑设计中至关重要的环节,尤其对于多高层建筑的施工安全具有决定性作用。在施工过程中,新浇混凝土模板的荷载主要由支撑系统、二次支撑和楼板承载,这些因素对脚手架的稳定性和结构安全性...

    CAD 结构施工图

    - 描述工程结构方面的共性问题。 - 设计者通过打勾选择适用的内容,并在指定位置填写具体内容。 - 可以根据实际需要进行修改或添加说明。 3. **桩基础统一说明及大样**: - 包括人工挖孔、冲孔或钻孔灌注桩的...

    建筑设计院实习日记大全.doc

    我学习到结构设计总说明必须清楚表达共性问题,楼盖和屋盖平面图需要精确标注尺寸,基础图要包含剖面和配筋信息,而构件详图则需集中展示。这些规范性的要求,不仅体现了设计的严谨性,也是确保施工准确无误的重要...

    UML面向对象建模与设计

    - **抽象**:抽象是提取共性特征的过程,如将各种形状抽象为具有共同属性(如边数、面积)和行为(如绘制、移动)的类。 - **封装**:封装是将数据和操作这些数据的方法捆绑在一起,防止外部代码直接访问,从而保护...

    uml复习提纲

    **UML复习提纲** ...总之,UML为软件开发提供了丰富的图形工具,帮助我们理解和表述系统的结构和行为,是软件工程中不可或缺的一部分。通过深入学习和掌握UML,开发者可以更加高效地进行系统设计和沟通。

    建筑材料的性能及要求培训讲义.pptx

    例如,木构架建筑中的木柱和屋架要能承载重量,而埃菲尔铁塔的钢铁构件则要抵抗风荷载和自重。 2. **长期可靠性**:耐久性是衡量建筑材料的重要指标,材料应能在长时间内保持其性能而不受环境影响。如古罗马的石拱...

    AutoCAD全套建筑图纸设计教程ppt课件.ppt

    对于常用的建筑构件,在国家标准《建筑制图标准》中都有图例,如在平面图中使用了“国标”上未列的图例,应在图纸的适当位置全部列出,并加以说明。 6. 尺寸标注及文字标注说明:建筑平面图中的尺寸标注除了建筑的...

Global site tag (gtag.js) - Google Analytics