`

IBM Portal与单点登录、集成企业级应用

阅读更多

作者: 郑 文 平 (2005.08)
  
  内容简介:
  
本文首先讨论了什么是单点登录,然后分别介绍集成IBM的产品(Lotus Notes)和非IBM产品(指运行在WebLogic,Tomcat等服务器上的业务系统)两类企业及应用,我们的重点在于后者。也就是说,主要解决以下几个问题:

1.什么是单点登录(Single SignOn),为什么要SSO。

2.Portal 与 OA 的SSO。

3.Portal 与普通企业及应用集成的SSO。这个问题是本文的核心,我们将分以下几部分来介绍:

集成企业级应用程序业务系统的原理

                 
第一部分  什么是单点登录?
一、概述:Single Sign On (SSO)

严格地说,单点登录指的是允许用户登录到一个应用,这个应用带有经过认证的到其他应用的访问途径,登录到这个应用之后,用户无需再遭遇任何其他的认证。用更实际的话来说,它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。     我们的目标是,SSO 提供登录到 WebSphere Portal 的能力,并允许使用那些用户凭证访问 Domino 环境、Domino、Sametime、QuickPlace 以及其他基于 Domino 的工具;允许用户访问自己权限以内的所有企业及应用,即:运行在普通应用程序服务器上的各种业务系统。例如,运行在WebLogic或者Tomcat上的jsp应用程序,运行在IIS上的asp,aspx系统,以及php系统。如果在 WebSphere Portal 和 业务系统之间没有 SSO 关系的话,那么用户每次访问某个包含来自于基于业务系统的应用程序或者服务的信息的 portlet 时,都需要登录到业务系统环境中。此外,有些 WebSphere Portal API和服务,比如 人员在线感知 ,没有提供登录工具。即使这些服务不提供独特的登录工具,为了运行它们仍然需要通过 SSO 进行认证。我们以齐鲁石化综合数据平台为例,如果实现了单点登录,那么,一旦用户登录进入Portal系统,该用户就可以在不用再次登录的情况下,访问她所拥有权限的、包括OA和普通企业即应用程序在内的所有业务系统,如下图所示:

图1—1  Portal与企业级业务系统实现了SSO

二、SSO的实现

我们还是以齐鲁石化综合数据集成平台为例,改企业现在存在一下四套业务系统,包括Lotus Notes 开发的OA系统,一套基于WebLogic的jsp系统,两套基于IIS的asp系统,我们就以集成这四套系统为例,简单介绍SSO的实现:

齐鲁石化现在这四套系统是:

               图2-1 齐鲁石化现有的应用业务系统

我们将采用如下几种方式实现SSO:

1、 统一LDAP验证集成:

图2-1 SSO的第一种方式:统一LDAP验证

    我们将四套业务系统的所有用户信息一起放到LDAP服务器内,由ldap统一对四套系统的用户进行验证。这样做比较有利于用户及权限的管理,但是也存在弊端。这四套系统是有不同的四家IT公司开发,用户信息放在不同平台的不同数据库中,而且这四套系统除OA外,各有不同的用户组群,放在一起反而不利于管理。所以,此法SSO虽然可行,却不适合该Portal系统。我们不采用这种方法。

2、 基于Portal系统LDAP的凭证保险库法 

          图2-2 SSO的第二种方法:基于Portal系统LDAP的凭证保险库法

我们采用Portal系统独立存在的LDAP,由这个LDAP验证Portal系统用户的合法性,一旦验证通过,用户就登录进Portal系统。然后用户在给定权限的各个业务系统Portlet中存储在各个业务系统中的用户信息,Portal系统会统一管理这些信息,然后自动到各个业务系统的用户信息库中校验,一旦通过校验,该portlet就能显示业务系统的授权信息。通常我们是在portlet中放入一个Iframe,用户在Portal系统中通过portlet中的这个Iframe来访问具体业务系统中的授权信息。

3、  基于OA系统LDAP的凭证保险库法:

基本上等同于第二种方法,不过更简单。OA系统是企业内部没个人都使用的业务系统,而且它已经有一套成熟的LDAP,我们不必再为Portal创建LDAP服务器,我们可以直接使用OA系统的,所以有点麻烦的是,在使用Portal系统的时候,OA必须是开着的,击是你不使用OA,因为认证的时候是到OA的LDAP服务其中验证的。其他方面则与第二种方法完全相同。
 第二部分、Portal 与 OA 的SSO

一、SSO是如何工作的? 

WebSphere Portal 和 Lotus Domino 之间的单点登录是通过一种称为轻量级第三方认证(LTPA)的机制来实现的。WebSphere 应用服务器(还包括 WebSphere Portal 和其他任何运行在 WebSphere 环境中的应用程序)和 Domino 都使用LTPA。当 LTPA 机制用于由多个服务器组成的环境中时,它是通过使用 Domain Cookie 而启用的。这种经过加密的会话 cookie 被放置在用户浏览器中,并包含了一些信息,WebSphere 或者 Domino Application 服务器可以加密这些信息,并使用这些信息来说明用户已经通过该 cookie 所覆盖的DNS(Domain Naming Service,域名服务)域中的认证。

LTPA cookie 包含以下信息:

·         Cookie名称:总是设置为 LtpaToken。

·         域:设置为 Internet 域,该域由参与单点登录的所有服务器所共享(例如:mycompany.com)。

·         Cookie 到期:设置为当浏览器的寿命终止时删除该 cookie。

·         安全:设置为开状态,以强制使用安全套接字层(SSL)。有一个 LTPA 配置有一个设置参数,使它创建只通过 SSL 发送的 cookie。

·         Cookie值:这被设置为 LTPA 标记,接下来会对其进行描述。

LTPA标记是一个加密的字符串,它包含以下信息:

·         用户数据:一般被设置为用户 ID,但也可以是任何用于惟一标识用户的用户信息。

·         过期时间:与 Cookie 过期不同,这个字段用于强加一个时间限制,时间限制从登录进来的那一刻算起,而不受浏览器活动或者不活动所影响。这个时间限制是一个可配置的 LTPA 设置,缺省情况下为30分钟。

 二、SSO 的集成效果:

我们可以把整个OA系统作为一个整体,即一个Portlet集成进Portal系统,也可以根据OA内不同的文件数据库(.nsf)俺功能拆分为各个不同的功能单元,每个功能单元作为一个单独的portlet集成进Portal系统。例如,
 

             图3-1 将OA系统拆分为功能单元独立集成进Portal
 

三、怎样实现OA 与Portal 的SSO?

   Portal 与OA 的SSO可以通过配置ltpa的方法实现。通俗一点讲就是:用户登录Portal后,Portal系统会把用户登录信息加密成ltpa并存放到某一位置,当用户继续访问OA中的授权资源时,OA系统会自动读取改位置的ltpa,读到并解密后拿到OA系统中验证,如果验证通过,则显示给用户他要的授权信息。所以要配置Portal 与 OA 之间的SSO 非常容易,只要先将OA系统服务器的ltpa导出并存为.key文件,然后导入Portal系统所在的服务器(WebShpere Application Server)中就可以了。

    
第三部分 Portal系统与普通应用程序的SSO

 一、概述

WebSphere Portal 提供了 Credential Vault (凭证保险库)功能。Credential Vault 通过 Basic Authentication Header 将用户名和密码传递给后端应用程序。为了使 Domino 服务器接受通过这个头部传递进来的凭证,必须将服务器会话验证配置为Single-Server 模式。在 Multi-Server 模式中,该服务器将会只接受通过 LTPA 机制传递的凭证。因此,为了与 Domino 应用程序一起使用用于 SSO 的 Credential Vault,您必须将 Domino 服务器会话验证配置为 Single-Server 模式。

要使用 Credential Vault,用户需输入一些凭证,输入一次就够了。随后,这些凭证被存放在一个经过加密的数据库表中,每当用户访问该 portlet 时,这些凭证便被传递给后端应用程序。要了解关于配置 Credential Vault 的细节,参见 WebSphere Portal InfoCenter 。

二、凭证保险库实现SSO原理

   我们以一个最简单的SSO过程为例介绍:

1.普通业务系统的登录过程:

系统首先提供一个界面让我们输入我们在应用程序中的用户信息:

… …

<form name=’login’ action=”chech_login.jsp” method=”POST”>

     <input type=”lable”>请输入您的用户名:</lable>

<input type=”text” name=”username” id=”username” length=”10”></text>

            <input type=”lable”>请输入您的密码:</lable>

        <input type=”password” name=”password” id=”password” length=”10”></text>

<input type=”submit” value=”登录”>

<input type=”reset” value=” 取消”>

       </form>      

2.用户输入用户名和密码后,点击“登录”按钮,该页面提交到form所对应的Action(check_login.jsp)处理,我们看check_login.jsp的代码:

  … …

  <%

    String username=request.getParamenter(“username”);

      String password=request.getParamenter(“password”);

      ……

      接下来提交到数据库验证用户信息的合法性,如果合法,定位到授权信息页面;否则,重定位回到登录页面login.jsp。

%>

3.  Portlet开发中是如何解决这个问题的?

其实起关键作用的还是check_login.jsp页面,它需要获得用户名和密码两个键值,然后拿着两个参数到后台数据库去验证。常规登录方式中这两个参数是通过login.jsp来获得的。事实上,只要portlet能为该页面提供这两个键值,也就是先了登录的自动化。而portlet要实现这两个参数的提供是非常简单的,所以实现单点登录也就非常简单了。我们可以复制一个check_login.jsp文件,例如check_portal_login.jsp,这个页面的两个参数是portlet提供的。剩下的事完全交给业务系统去处理,页面流转和全县控制都不用我们管了。

 

三、开发Portlet实现SSO的方法

 

1、JSP 取值传送URL法。

        顾名思义,我们开发一个使用系统专用槽的portlet,使用凭证保险库相关接口在PortletView.jsp中取出用户存储在凭证保险库中的键值,然后以URL的方式传送到Iframe内。例如:

   〉〉〉〉〉〉〉PortletView.jsp中的部分代码:

<%

String userId =viewBean.getUserId();

        String password=viewBean.getPassword();

        if( userId.length()>0 ) {

String url = http://hostname:8080/check_portal_login.jsp;

url+=”?username="+userId+"&password="+password;

    %>

<Iframe src="<%=url%> " align="left" width=100% frameborder=no marginheight="2" scrolling="auto" marginwidth="2"  height=600></Iframe>

如果用户已经在凭证高先库中存储了键值的话,该portlet的view页面被初始化时,Iframe中将显示用户成功登录后的授权信息,也就是实现了SSO。

2、Class 取值写Session法。

   顾名思义,我们在Portlet的控制类中取得用户存储在凭证保险库中的键值对,并在PortletView的doview()方法中写入Session.而专为portal

             

作者简介:郑文平,“神狐”软件工作室创立者,IBM WebSpher Portal产品开发人员,原北京东华合创软件院软件工程师,Portal信息化专员,长期从事Portal(尤其是IBM Websphere Portal)开发,曾参与并引领了北京驰普企业门户、山东新汶矿务局远程调度系统、中国石化齐鲁公司综合数据平台、北京供电局虚拟门户产品,北京航信企业门户等多个Portal项目的开发。
如果您有以下需要,欢迎您与SagFox SoftWare 联系:
1、如果您的公司有IBM WebSpher Portal 项目需要实施但缺少必需的技术力量,而您又不愿安排工程师们边学习边开发而影响项目质量,欢迎您把项目外包给 SagFox SoftWare,或者以项目合作的方式联合开发。
2、如果您们是一个Java 开发者并打算投身Portal领域,欢迎您接受 SagFox SoftWare 针对公司技术人员的开发培训,SagFox SoftWare 同时开展针对个人的技术指导与职业规划,助您谋得高薪。
3、 如果您是一个娴熟的Portal开发者,欢迎您加盟SagFox SoftWare,我们的团队正在飞速发展。我们也欢迎入门者加入我们的讨论组,SagFox SoftWare 尽力解答欠成熟开发者的提问,并以提携后起者为乐趣,希望国内的门户实施少一些“豆腐渣”工程,我们愿贡献一点力量。
您可以通过zhengwp@cn.ibm.com 或者 zhengwenping@126.com 与SagFox SoftWare取得联系。本文作者的msn是: zhengwp@cn.ibm.com


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=592237

分享到:
评论

相关推荐

    ibm portal与单点登录、集成企业级应用

    总之,IBM Portal与单点登录的集成为企业提供了高效、安全的访问体验,通过精心设计的SSO解决方案,可以有效整合各种企业级应用,实现无缝的跨系统操作。在选择SSO实现策略时,需要权衡管理和技术需求,确保方案的...

    IBM portal domino 集成

    在企业级应用环境中,IBM WebSphere Portal 和 IBM Lotus Domino 的集成是一项重要的技术任务。这种集成不仅能够提高工作效率,还能加强系统的安全性和用户管理能力。本文将详细介绍如何配置IBM WebSphere Portal与...

    Lotus Quickr与IBM WebSphere Portal的单点登录

    Lotus Quickr与IBM WebSphere Portal的单点登录(SSO,Single Sign-On)是一种集成解决方案,允许用户在访问一个系统(如Portal)后,无需再次输入凭证即可访问其他相互关联的系统(在这种情况下是Quickr)。...

    IBM portal与Domino单点配置

    **IBM Portal与Domino单点配置** 在IT领域,单点登录(Single Sign-On,简称SSO)是一种方便用户访问多个系统时仅需一次身份验证的技术。本配置文档集全面地探讨了如何将IBM Portal与Lotus Domino进行单点配置,以...

    IBM Portal 集成Quickr

    【IBM Portal 集成Quickr】是一种技术实践,它允许用户通过IBM Portal无缝访问Quickr(一个协作和文档管理工具)的服务,实现单点登录(Single Sign-On, SSO)。这种集成使得用户在一个平台上就能方便地管理和共享...

    IBM Portal的有关说明

    IBM Portal 是一个强大的企业级平台,它提供了统一的入口点,允许用户访问多个应用程序和信息源,同时确保安全和管理。IBM Tivoli Access Manager 是IBM Portal的重要组成部分,专门负责安全管理和认证授权。 1. ...

    IBM Portal 培训 - 3

    2. **安全与身份管理**:IBM Portal 强调安全性和身份验证,支持多种身份认证机制,如 LDAP、Active Directory 和单点登录 (SSO)。通过权限和角色的管理,可以确保不同用户群组访问相应资源的安全性。 3. **内容...

    IBM WebSphere Portal 5.1 中文版(门户集成开发)

    【IBM WebSphere Portal 5.1】是IBM推出的一款企业级门户集成开发平台,主要针对企业内部和外部的业务集成,提供B2E(Business-to-Employee)、B2B(Business-to-Business)和B2C(Business-to-Consumer)等多种交易...

    IBM portal 解决方案 IBM portal 解决方案

    IBM 门户解决方案是针对企业信息化挑战的一种综合策略,旨在通过整合多种应用、内容和服务,为用户提供一个统一、安全且个性化的访问入口。这个解决方案的核心目标是解决企业内部信息分散、系统繁多、用户体验不一致...

    ibm Portal培训

    《第8章_常见应用集成.pdf》将讨论IBM Portal与第三方应用系统的集成策略,包括Web服务、API和数据源的连接,以实现数据共享和流程协同。 最后,《第9章_IBM_Portal项目实战案例分析.zip》提供了实际项目案例,让你...

    IBM Portal 培训 - 2

    IBM Portal 支持多种安全模型,包括基于角色的访问控制(RBAC)、单点登录(SSO)和外部身份提供者集成。理解这些安全机制对于保护敏感数据和确保合规性至关重要。 5. **内容管理与集成** IBM Portal 可与IBM Content...

    Portal培訓教材之第8章_常见应用集成_FromIBM(8)

    通过本章的学习,我们不仅了解了IBM Portal如何与其他应用程序集成的基本原理和技术手段,还学习到了如何利用这些集成来提升企业内部的工作效率和协同能力。随着信息技术的不断发展,未来的集成方案将会更加多样化和...

    IBM_Portal参考资料

    IBM_Portal 是一个强大的企业级门户平台,它允许组织整合和管理各种应用程序、内容和业务流程,提供统一的访问界面。这个资料包包含了开发和配置IBM WebSphere Portal的关键信息,旨在帮助开发者和管理员更好地理解...

    ibm portal集群

    IBM Portal 是一款企业级的门户解决方案,为企业提供了集中的信息管理和访问平台。它支持多种设备访问,包括桌面端和移动端,使得用户可以随时随地获取所需的信息和服务。IBM Portal 的核心功能包括但不限于内容管理...

    IBM WebSphere Portal资料2

    ### IBM WebSphere Portal与Tivoli Access Manager集成:实现安全门户及单点登录 #### 概述 IBM WebSphere Portal 是一款功能强大的企业级门户解决方案,它为用户提供了一个集中的、个性化的信息和服务访问点。单...

    IBM WebSphere Portal v6.0 安装 启用Domino操作手册

    WebSphere Portal是IBM提供的一款企业级门户服务器,它允许组织整合多种应用程序、内容和服务,为用户提供统一的访问入口。IBM WebSphere Portal v6.0 版本在当时引入了多项改进和新特性,包括增强的用户体验、性能...

    webshere portal 网站集成方法

    本文将详细介绍几种常见的Web应用程序与WebSphere Portal集成的方法,并探讨如何利用这些方法实现单点登录(Single Sign-On, SSO)、统一用户界面以及跨系统数据共享等功能。 #### 单点登录(SSO)集成 单点登录是一...

    IBM_portal_ redbooks

    IBM WebSphere Portal 是一个功能强大的企业级门户解决方案,旨在为企业用户提供个性化的访问入口,以访问各种企业资源和服务。其架构设计灵活且可扩展,能够支持多种平台和应用程序。通过理解其架构,企业可以更好...

    java单点登录的实现与应用整合中SSO的技术实现.docx

    Java 单点登录实现与应用整合中的 SSO 技术实现 Java 单点登录是指在多个系统中,只需要登录一次,就可以访问所有相关系统的功能,提高了用户体验和系统安全性。本文将介绍 Java 单点登录的实现方法,并讨论如何在...

Global site tag (gtag.js) - Google Analytics