CN101331740B - 利用宏支持来外部化http安全消息处理的方法和系统 - Google Patents
利用宏支持来外部化http安全消息处理的方法和系统 Download PDFInfo
- Publication number
- CN101331740B CN101331740B CN200680047173.2A CN200680047173A CN101331740B CN 101331740 B CN101331740 B CN 101331740B CN 200680047173 A CN200680047173 A CN 200680047173A CN 101331740 B CN101331740 B CN 101331740B
- Authority
- CN
- China
- Prior art keywords
- message
- client
- server
- grand
- redirect message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
提出一种用于在数据处理系统中外部化消息处理的方法。在第一服务器(404)处接收来自客户端(402)的访问资源(406)的请求(412)。响应于在第一服务器处确定处理请求要求将消息发送到客户端,生成包含操作码的重定向消息(416),该操作码对应于第二服务器(418)处的针对将要发送到客户端的消息的消息处理功能性。评估可配置的宏以确定评估的宏,并且将评估的宏插入重定向消息。继而将重定向消息从第一服务器经由客户端发送到第二服务器。第二服务器从重定向消息中提取操作码,并调用与提取的操作码相对应的消息处理功能性。第二服务器从重定向消息中提取评估的宏,并在第二服务器处采用评估的宏作为消息处理功能性的输入参数。
Description
技术领域
本发明涉及改进的数据处理系统,并且特别涉及用于多计算机数据传送的方法和设备。
背景技术
电子商务网站和Web应用代表用户通过计算机网络执行交易。企业通常希望通过各种网络(包括互联网)以用户友好的方式为授权用户提供对受保护资源的安全访问。在基于Web的电子商务环境中,计算机系统常常将认证服务实现为用于访问网站的前门或门岗的形式。出于安全目的,用户必须经常通过认证过程,以证明针对适当的确定级别的用户身份。这些认证服务位于应用之前,也即位于用户和应用之间,以便在用户获取对任何资源的访问之前确认用户是经过认证的。可以将这些认证服务实现为Web服务器插件、反向代理或其他类似技术。企业希望支持多种多样的客户端,包括利用专用的轻量级浏览器来浏览Web的移动设备(例如蜂窝电话、PDA(便携式数字助理)等)、以及操作标准Web浏览器的固定设备。
然而,代理组件中的一些实现限制禁止在任意给定的安装处支持多个不同的设备。问题集中在当需要将有关安全事件的信息(例如,通知用户需要登陆的消息或某种类型的错误消息)发送到客户端时,从代理服务器本身提供的静态内容。例如,用户可能希望使用PDA访问企业内联网上的内容,但是内联网上的所有内容都由代理服务器保护。当用户点击需要登陆操作的链接时,代理服务器可以将静态登陆HTML(超文本标记语言)表单返回给PDA。不幸的是,PDA上的浏览器只能处理已经针对移动设备定制的内容,并且PDA可能不能够处理整个HTML表单或其某个部分。因此,用户无法登陆到内联网。
已经提出了以下解决方案或措施来解决对多种设备的适当内容的问题。参考上面提到的登陆问题,代理服务器所提供的登陆表单和其他静态表单可以包括“META”标签,其具有针对移动设备而编码的页面的重定向或是针对可以区分目标设备上的浏览器类型并继而生成用于目标设备的适当内容的Servlet的重定向。不幸的是,包括大多数移动设备在内的多种设备不支持“META”重定向标签。
另一种解决方案或措施可以是操作多个代理服务器,从而使针对所支持的每种类型的客户端设备都有一个代理服务器;经常将这种解决方案描述为支持针对不同设备的“通道”。不幸的是,该解决方案对客户(也即操作网站的企业)提出了不合理的资源和管理要求。此外,当试图将基础设施出售给客户的商业伙伴建议这种解决方案时,该解决方案对客户而言似乎是不合理的。
第三种解决方案是在代理服务器之前放置转码服务器,其将HTML绘制(render)为针对给定设备的适当格式。然而,客户将其视为安全性暴露,因为转码器必须部署在客户的计算DMZ(隔离区)中,DMZ是数据处理器系统的一部分,其专用于解决安全问题,并且由于引起安全漏洞的可能性而通常没有与内容相关的功能性。因此,转码解决方案对于多数客户而言是不可接受的。
又一种解决方案是直接将不同的内容页面发送到不同的客户端设备。几乎所有的HTTP客户端都在每个请求中发送标识客户端类型和该客户端所理解的数据类型的少量信息。例如,支持WAP(无线应用协议)的移动电话将发送包含“application/vnd.wap.wml”的“接受(Accept)”报头,以指明其知道如何绘制WML(无线标记语言)文档,而i-modeTM电话将发送“text/html”的“接受”报头,以指明其优选Compact-HTML文档。可以对代理服务器进行配置,使得基于各种HTTP报头的内容,不同客户端类型将直接接收不同类型的文档。然而,该解决方案是有问题的,因为快速扩展多种无线设备和协议使得该解决方案在管理上是不实用的。需要持续的更新,以确保特定供应商的设备得到支持。
发明内容
根据第一方面,提供一种用于在数据处理系统中外部化消息处理的计算机实现的方法,该方法包括:在第一服务器处接收来自客户端的访问资源的请求;响应于在第一服务器处确定处理该请求要求将消息发送到客户端,生成包含操作码的重定向消息,该操作码对应于第二服务器处的针对将要发送到客户端的消息的消息处理功能性;评估可配置的宏,以确定评估的宏;将评估的宏插入重定向消息;以及将重定向消息从第一服务器经由客户端发送到第二服务器。
优选地提供一种以动态方式提供用于有关安全事件的消息的方法和装置,使得接收消息的设备类型能够处理消息的内容。
根据第二方面,提供一种计算机可读存储介质上的计算机程序产品,用于在数据处理系统中外部化消息处理,该计算机程序产品包括:用于在第一服务器处接收来自客户端的访问资源的请求的装置;用于响应于在第一服务器处确定处理该请求要求将消息发送到客户端而生成包含操作码的重定向消息的装置,其中该操作码对应于第二服务器处的针对将要发送到客户端的消息的消息处理功能性;用于评估可配置的宏以确定评估的宏的装置;用于将评估的宏插入重定向消息的装置;以及用于将重定向消息从第一服务器经由客户端发送到第二服务器的装置。
根据第三方面,提供一种用于在数据处理系统中外部化消息处理的设备,该设备包括:用于在第一服务器处接收来自客户端的访问资源的请求的装置;用于响应于在第一服务器处确定处理该请求要求将消息发送到客户端而生成包含操作码的重定向消息的装置,其中该操作码对应于第二服务器处的针对将要发送到客户端的消息的消息处理功能性;用于评估可配置的宏以确定评估的宏的装置;用于将评估的宏插入重定向消息的装置;以及用于将重定向消息从第一服务器经由客户端发送到第二服务器的装置。
根据优选实施方式,提供一种用于在数据处理系统中外部化消息处理的方法。在第一服务器处接收来自客户端的访问资源的请求。响应于在第一服务器处确定处理该请求要求将消息发送到客户端,生成包含操作码的重定向消息,该操作码对应于第二服务器处的针对将要发送到客户端的消息的消息处理功能性。评估可配置的宏以确定评估的宏,并将评估的宏插入重定向消息。继而将重定向消息从第一服务器经由客户端发送到第二服务器。第二服务器从重定向消息中提取操作码,并调用与所提取的操作码相对应的消息处理功能性。第二服务器从重定向消息中提取评估的宏,并在第二服务器处采用评估的宏用作消息处理功能性的输入参数。
附图说明
现在将参考附图仅以示例的方式描述本发明的优选实施方式:
图1A描述了典型的数据处理系统的网络,每个数据处理系统都可以实现本发明;
图1B描述了在可以实现本发明的数据处理系统中可以使用的典型计算机架构;
图2描述了示出典型的企业数据处理系统的框图;
图3描述了示出可以在客户端试图访问服务器处的受保护资源时使用的典型认证处理的数据流图;
图4描述了根据本发明的优选实施方式的示出用于执行外部化消息处理的数据处理系统的部分的框图;
图5描述了根据本发明的优选实施方式的示出从代理服务器到消息处理服务器的重定向消息的内容的框图;
图6描述了根据本发明的优选实施方式的示出从代理服务器到消息处理服务器的消息处理请求的内容的框图;
图7描述了根据本发明的优选实施方式的示出代理服务器用以生成发送到消息处理服务器的重定向消息的信息的框图;
图8描述了根据本发明的优选实施方式的示出代理服务器处的处理的流程图,所述处理用于响应于针对资源的客户端请求(该客户端请求引起检测的事件,其要求内容消息被发送到客户端),向消息处理服务器发送请求,以生成将要发送到客户端的上下文适当的内容消息;
图9描述了根据本发明的优选实施方式的示出用于创建包含消息处理请求的重定向消息的处理的流程图;以及
图10描述了根据本发明的优选实施方式的示出使用重定向消息的“位置(Location)”报头和“位置”报头的URI内的查询变元来创建HTTP重定向消息的处理的流程图。
具体实施方式
通常,包含或涉及本发明的设备包括各种各样的数据处理技术。因此,作为背景,在更为详细地描述本发明之前,先对分布式数据处理系统中硬件和软件组件的典型组织进行描述。
现在参考附图,图1A描述了典型的数据处理系统网络,每个数据处理系统都可以实现本发明的部分。分布式数据处理系统100包括网络101,网络101是可以用来在分布式数据处理系统100内连接在一起的各种设备和计算机之间提供通信链路的媒介。网络101可以包括诸如有线和光纤电缆的持久连接、或通过电话或者无线通信的临时连接。在所描述的例子中,服务器102和服务器103以及存储单元104与网络101连接。此外,客户端105-107也与网络101连接。客户端105-107以及服务器102-103可以由例如主机、个人计算机、个人数字助理(PDA)等的各种计算设备代表。分布式数据处理系统100还包括未示出的附加服务器、客户端、路由器、其他设备以及对等架构。
在所描述的例子中,分布式数据处理系统100可以包括带有网络101的互联网,表示使用各种协议相互通信的网络和网关的世界范围的集合,其中该协议例如轻量级目录访问协议(LDAP)、传输控制协议/互联网协议(TCP/IP)、文件传输协议(FTP)、超文本传输协议(HTTP)、无线应用协议(WAP)等。当然,分布式数据处理系统100还可以包括多种不同类型的网络,例如内联网、局域网(LAN)或广域网(WAN)。例如,服务器102直接支持包含无线通信链路的客户端109与网络110。支持网络的电话111通过无线链路112连接至网络110,并且PDA 113通过无线链路114连接至网络110。电话111和PDA 113还可以使用例如蓝牙TM无线技术的适当技术通过无线链路115在其之间直接传送数据,以创建所谓的个人区域网络(PAN)或个人ad-hoc网络。以类似方式,PDA 113可以通过无线通信链路116向PDA 107传送数据。
本发明可以在多种硬件平台上实现;图1A意在作为异构计算环境的示例,而不是对本发明的架构性限制。
现在参考图1B,框图描述了例如图1A所示的其中可以实现本发明的数据处理系统的典型计算机架构。数据处理系统120包括与内部系统总线123连接的一个或多个中央处理单元(CPU)122,内部系统总线123将随机访问存储器(RAM)124、只读存储器136和输入/输出适配器128互连,输出/输出适配器128支持各种I/O设备,例如打印机130、盘单元132或未示出的其他设备,如音频输出系统等。系统总线123还连接通信适配器134,通信适配器134提供对通信链路136的访问。用户接口适配器148连接各种用户设备,例如键盘140和鼠标142或未示出的其他设备,例如触摸屏、触笔、麦克风等。显示适配器144将系统总线123连接至显示设备146。
本领域的普通技术人员将理解,图1B中的硬件可以依赖于系统实现而变化。例如,系统可以具有一个或多个处理器,例如基于IntelPentium的处理器和数字信号处理器(DSP),以及一种或多种类型的易失性和非易失性存储器。除了图1B中描述的硬件或替代图1B中描述的硬件,可以使用其他外围设备。所描述的例子不意味着对本发明的架构性限制。(Intel和Pentium是Intel公司或其子公司在美国和其他国家的商标或注册商标)。
除了能够在多种硬件平台上实现之外,本发明可以在多种软件环境中实现。可以使用典型的操作系统来控制每个数据处理系统中的程序执行。例如,一个设备可以运行Unix操作系统,而另一个设备包含简单的JavaTM运行时环境。代表性的计算机平台可以包括浏览器,浏览器是用于访问各种格式的超文本文档的公知软件应用,其中文档格式例如图形文件、文字处理文件、扩展标记语言(XML)、超文本标记语言(HTML)、手持设备标记语言(HDML)、无线标记语言(WML)、以及各种其他格式和文件类型(Java和所有基于Java的商标和徽标是Sum Microsystems公司在美国、其他国家或两者的商标;UNIX是Open Group在美国和其他国家的注册商标)。
如以上关于图1A和图1B所描述的,本发明可以在多种硬件和软件平台上实现。然而,更特别地,本发明涉及改进的数据处理环境。在更为详细地描述本发明之前,先描述典型数据处理环境的一些方面。
在此对附图的描述可以涉及客户端设备或客户端设备的用户的某些动作。本领域的普通技术人员将会理解,去往/来自客户端的响应和/或请求有时是由用户发起的,有时是经常代表客户端用户的客户端自动发起的。因此,在对附图的描述中提到客户端或客户端用户时,应当理解,术语“客户端”和“用户”可以交换使用,而不会明显地影响所描述处理的含义。
此后可以将某些计算任务描述为由功能性单元执行。功能性单元可以由例行程序、子例行程序、进程、子进程、过程、功能、方法、面向对象的对象、软件模块、applet、插件、ActiveXTM控件、脚本或用于执行计算任务的固件或软件的一些其他组件。
在此对附图的描述可能涉及各种组件之间的信息交换,并且将信息交换描述为通过消息的交换实现,例如请求消息随后是响应消息。应当注意,在适当时,计算组件之间的信息交换(可以包括同步和异步的请求/响应交换)可以通过诸如消息、方法调用、远程过程调用、事件信令或其他机制的多种数据交换机制等同地实现。
现在参考图2,框图描述了典型的企业数据处理系统。尽管图1A描述了具有客户端和服务器的典型数据处理系统,相反,图2示出了与一些服务器侧实体相关的网络内的客户端,其中服务器侧实体可以用来支持客户端访问资源的请求。如典型的计算环境中那样,企业域200主控用户202可以例如使用客户端206上的浏览器应用204通过网络208来访问的资源;如图1A中所示,计算机网络可以是互联网、内联网或其他网络。
企业域200支持多个服务器。应用服务器210通过基于Web的应用或者包括传统(legacy)应用在内的其他类型的后端应用来支持受控和/或非受控的资源。反向代理服务器214,或者更简单地称为代理服务器214,执行企业域200的多种功能。例如,代理服务器214可以缓存网页,以便对来自应用服务器的内容进行镜像。输入数据流过滤器216和输出数据流过滤器218可以分别处理进入和出去的数据流,以便根据各种策略中指定的目标和条件或是根据已部署软件模块的配置对输入的请求和输出的响应执行各种处理任务。
会话管理单元220管理会话标识符、缓存的证书或代理服务器214所识别的关于会话的其他信息。基于Web的应用通常使用各种手段来提示用户输入认证信息,正如HTML表单内的用户名/密码组合。在图2所示的例子中,在客户端206可以访问资源之前可以要求对用户202进行认证,在认证之后为客户端206建立会话。在可替换实施方式中,在向用户提供对域200上资源的访问之前,不执行认证和授权操作;可以在没有附随认证操作的情况下创建用户会话。
上面提到的企业域200中的实体代表多种计算环境中的典型实体。然而,很多企业域具有用于控制对受保护计算资源的访问的安全特征。计算资源可以是应用、对象、文档、网页、文件、可执行代码模块或一些其他的计算资源或通信类资源。受保护或受控的资源是仅在进行请求的客户端或进行请求的用户被认证和/或授权的情况下可访问或可取回的资源;在一些情况下,认证用户默认是授权用户。认证服务器222可以支持各种认证机制,例如用户名/密码、X.509证书或安全令牌;多个认证服务器可以专用于专用的认证方法。授权服务器224可以使用授权数据库226,授权数据库226包含诸如以下的信息:访问控制列表228、授权策略230、关于用户群组或角色的信息232以及关于特定管理群组内的管理用户的信息234。使用该信息,授权服务器224向代理服务器214提供指示,指明是否应当允许特定请求,例如,是否应当响应于来自客户端206的请求而准予对受控资源的访问。应当指出,可以与多种认证和授权应用相关联地实现本发明,并且不应当将在此描述的本发明的实施方式解释为关于认证和授权服务配置而限制本发明的范围。
现在参考图3,数据流图示出了可以在客户端试图访问服务器处的受保护资源时使用的典型认证处理。如图所示,客户端工作站300的用户希望通过在客户端工作站上执行的用户的Web浏览器在计算机网络上访问服务器302处的受保护资源。受保护资源可以由统一资源定位符(URL)标识,或者更一般地,由统一资源标识符(URI)标识,仅可由认证的和授权的用户进行访问。
当用户请求服务器侧的受保护资源(例如域“ibm.com”内的网页)时,发起该处理(步骤304)。术语“服务器侧”和“客户端侧”分别是指联网环境中的服务器或客户端处的动作或实体。Web浏览器(或者相关联的应用或applet)生成HTTP请求,该请求被发送到主控域“ibm.com”的Web服务器(步骤306)。应该将术语“请求”和“响应”理解为包括适于特定操作中所涉及的信息传送的数据格式,其中信息例如消息、通信协议信息或其他相关联的信息。
服务器确定其没有针对该客户端的活动会话(步骤308),因此服务器通过向客户端发送一些类型的认证质询(challenge)来要求用户执行认证处理(步骤310)。认证质询可以是各种格式的,例如HTML格式。用户继而提供所请求或要求的信息(步骤312),例如用户标识符和相关联的密码,或者客户端可以自动返回某些信息,例如数字证书。
将认证响应信息发送到服务器(步骤314),此时服务器例如通过取回先前提交的注册信息并将呈送的认证信息与用户的存储信息进行匹配来对用户或客户端进行认证(步骤316)。假设认证是成功的,则为所认证的用户或客户端建立活动会话。
服务器继而取回所请求的网页并向客户端发送HTTP响应消息(步骤318)。此时,用户可以通过点击超文本链接在浏览器中请求“ibm.com”内的其他页面(步骤320),并且浏览器向服务器发送另一个HTTP请求消息(步骤322)。此时,服务器根据由服务器维护的会话状态信息识别出该用户具有活动会话(步骤324)。例如,由于用户的客户端在HTTP请求消息中返回了会话ID,服务器识别出针对进行请求的用户的适当会话状态信息。根据所缓存的用户会话信息,服务器例如通过用户证书副本的可用性确定该用户已经过认证;服务器继而可以确定无需在实现用户的请求之前执行某些操作,例如认证操作。服务器在另一HTTP响应消息中向客户端发回所请求的网页(步骤326),由此实现用户对受保护资源的最初请求。
为了背景信息的目的,图2描述了典型的数据处理系统,并且图3描述了可以在客户端试图访问服务器处的受保护资源时使用的典型的认证处理;尽管可以在支持本发明的数据处理系统中采用类似的组件和处理,但是在其余附图中示出了本发明的优选实施方式,并且将关于这些附图对其进行讨论。
特别地,根据优选实施方式,本发明涉及一种方法、设备、计算机程序产品或系统,其以动态方式提供针对有关安全的或其他事件的适当消息或其他上下文适当内容,使得接收该内容的设备类型可以处理该内容。更特别地,根据本发明的优选实施方式,提供了一种改进的基础设施,其将从代理服务器到消息处理服务器的消息或内容处理进行外部化,下面将更为详细地进行阐释。
现在参考图4,框图描述了根据本发明实施方式的用于执行外部化消息处理的数据处理系统的部分。图4中所示的数据处理系统类似于图2中所示的数据处理系统。例如,在两个附图中:客户端402类似于客户端206;反向代理服务器404类似于代理服务器214的增强版本;并且受保护资源406可以表示应用服务器210和其他类型的受保护资源。
反向代理服务器404优选地驻留在计算DMZ(隔离区)内,使得传输到反向代理服务器404或来自反向代理服务器404的数据必须通过防火墙408和410。反向代理服务器404负责与用户会话有关的会话管理,该用户会话是在包括受保护资源406的安全域中创建的。
反向代理服务器404和受保护资源406可以驻留在受信网络中,其可以表示企业域(例如,类似于图2中所示的企业域200)内的计算资源。
图4示出了在客户端/用户与支持客户端/用户所访问的受保护资源的组件之间的一些数据流。此外,图4示出了用于讨论本发明的实现的组件,其中可以将动态消息处理从代理服务器外部化到其他服务器。
在很多操作情境或事务中,客户端402的用户可能已经通过代理服务器404完成了认证处理,使得代理服务器404具有该用户的证书;例如当将用户的所接收请求转发或发送到受保护资源406时,代理服务器404使用证书向用户提供对一些受保护资源406的访问。在很多情况下,当代理服务器404接收到访问受保护资源的请求并且确定进行请求的用户的证书是充分的,则代理服务器404处理用户的请求,而不进行任何错误处理。
然而,在图4所示的例子中,当代理服务器404接收到资源请求412时,不将资源请求412例如作为假想的转发请求414而转发给受保护资源406。在这种情况下,代理服务器404认识到:资源请求412是由于一些原因而无法实现的或执行的请求,特别是由于检测到一些安全性相关的事件、引起错误的事件或一些其他类型的有问题的事件而无法实现的或执行的请求。例如,代理服务器404可以认识到代理服务器不具有访问受保护资源所需的客户端/用户证书,由此确定要求用户例如通过带有用户名和密码的登陆表单的成功提交来执行登陆操作或类似的认证操作。
与试图将上下文适当的内容(例如,静态HTML表单)返回给客户端不同,代理服务器404替代地向客户端402发送重定向消息416,客户端402将重定向消息转发给消息处理服务器418;该重定向消息包含这样的信息,其允许消息处理服务器418响应于来自客户端402的原始请求来承担将上下文适当的内容发送到客户端402的责任。根据代理服务器404提供给消息处理服务器418的重定向消息416中特别包含的信息,消息处理服务器418动态地生成上下文适当的内容420并将其发送到客户端402,下文将对此进行更详细的讨论。
现在参考图5,框图描述了根据本发明的实施方式从代理服务器到消息处理服务器的重定向消息的内容。消息502表示从代理服务器经由客户端设备到消息处理服务器的重定向消息。尽管可以通过多种实现专用的方式来格式化消息502,但是优选地将消息502格式化为HTTP“302”Redirect,其可被包括无线或移动设备在内的大多数支持HTTP的设备处理而没有错误。重定向消息502包括位置报头504,其包含重定向消息502将其作为目的地的实体(在这种情况下是消息处理服务器)的URI。在优选实施方式中,位置报头504包括基础URL 506和消息处理请求508,其中,基础URL 506表示消息处理服务器的URL,消息处理请求508表示从代理服务器发送到消息处理服务器以便响应于客户端请求来执行消息生成任务的信息。
现在参考图6,框图示出了根据本发明的实施方式从代理服务器到消息处理服务器的消息处理请求的内容。消息处理请求602类似于图5中所示的消息处理请求508。消息处理请求602包括操作码也即OP码604,其指明代理服务器请求消息处理服务器执行的操作或消息生成功能。宏调用信息606表示根据可在代理服务器处配置的宏而由代理服务器提供给消息处理服务器的零个或多个数据项。在生成消息的同时,消息处理服务器可以将评估的宏用于消息生成功能中或通过一些其他方式来使用评估的宏。
现在参考图7,该框图描述了根据本发明实施方式的由代理服务器用来生成发送到消息处理服务器的重定向消息的信息。图7中所示的一些信息项简单地重复了在其他附图中示出的元素。例如,重定向消息702类似于图5中的重定向消息502。OP码704类似于图6中的OP码604,其包括消息处理请求508的部分。宏调用URI 706类似于图6中的宏调用信息606,其是消息处理请求508的部分。
代理服务器700针对用来构建重定向消息702的数据项而访问不同的数据存储库或信息源。代理服务器700可以访问的数据存储库之一是配置文件710,其包含用于可配置变量的值,所述可配置变量指引代理服务器700的处理的多种方面,包括优选实施方式的功能性。配置文件710包含消息处理URL 712,其可以作为名称-值(name-value)对存储在配置文件中。当生成重定向消息702时,代理服务器700将消息处理服务器URL 712复制为消息处理URL 708。
例如,配置文件可以包含以下字符串:
“local-response-redirect-uri=/ibmusa/jct/handler”
字符串“local-response-redirect-uri”代表表示用于消息处理服务器的重定向URI的变量名称。字符串“/ibmusa/jct/handler”表示该变量的值。因此,字符串“/ibmusa/jct/handler”是重定向消息702中的MH URL 708的值,并且字符串“/ibmusa/jct/handler”构成了重定向消息702中的位置URI的基础部分。
代理服务器700可以通过多种方式确定OP码704,这可以依赖于本发明的实现。例如,可以根据与安全性有关的事件通知或根据所检测到的错误条件来选择OP码704。可选地,OP码704的选择可以基于客户端请求消息714中的信息,也即来自试图访问受保护资源的客户端的原始请求消息,特别是关于客户端请求的URI 716的原始请求消息。可以通过配置文件710来配置代理服务器700确定OP码704的方式(图中未示出);可选地,OP码704可以嵌入代理服务器700的源代码逻辑,或者代理服务器700通过一些其他的方式来接收或取回该值。
例如,如果客户端设备试图访问登陆资源,例如登陆网页,则可以基于特定的URL 716或基于其在相关资源群组中的分类来选择OP码704。因此,操作码的值可以等于“LOGON”,并且可以通过作为重定向消息702中的位置URI的一部分出现的字符串“OP_CODE=logon”来表示OP码704。更特别地,OP码704可以作为查询变元放置在重定向消息702中的位置URI中,如以下进一步更详细地描述的那样。
代理服务器700用于基于配置文件710中的宏718的存在而将宏调用URI 706嵌入重定向消息702中。在此示例中,宏718指明原始请求的URI将被提供到消息处理服务器。因此,代理服务器700将客户端请求的URI 716复制到重定向消息702中作为宏调用URI 706。
例如,配置文件可以包括字符串“macro=URI”,其调用代理服务器700将原始请求的URI包括到消息处理请求中。如果字符串“https://ibmUSA/jct/protected/”代表原始请求URI,则可以将字符串“URI=https://ibmUSA/jct/protected/”放置在重定向消息792中作为位置URI的一部分中的查询变元,如以下更详细地描述的那样。
从某些角度看,可以将本发明在其优选实施方式中的一些方面认为是将重定向消息的“位置”报头的结构作为API(应用编程接口)类型使用。使用所定义的接口将参数从代理服务器传输至消息处理服务器。如图5中所示,“位置”报头中的内容可以构成以下部分:
<MH URL><OP CODE>{<MACRO-INVOKED INFO>)
“<MH URL>”是表示消息处理服务器的URL的字符串。“<OPCODE>”是表示操作码的字符串。“<MACRO-INVOKED INFO>”是表示配置文件中宏变量的存在所需要的信息项的零个或多个字符串。
在优选实施方式中,操作码和宏调用信息项包括在重定向消息的“位置”报头中作为查询变元。参考上面的例子,“OP_CODE=logon”变为查询变元。假设“macro=URI”是已配置的宏,则“https://ibmUSA/jct/protected/”变为查询变元。这些字符串的每一个变成表示整个“位置”报头的字符串中的子字符串。因此,根据该示例,“位置”报头的值变为(在执行一些ASCII数据格式化以符合协议标准之后):
https://ibmUSA/jct/handler?OP_CODE=LOGON&URI=https%3A//ibmUSA/jct/protected/
字符“?”是区分查询变元与URI基础部分的标准分隔符。字符“&”是添加附加查询变元的标准分隔符。根据相同的示例,如果“macro=URI”和“macro=username”都被配置,并且用户名是“jsmith”,则“位置”报头的值将是:
https://ibmUSA/jct/handler?OP_CODE=LOGON&URL=https%3A//ibmUSA/jct/protected/&username=jsmith
可以从会话状态变量、证书、用户注册或一些其他数据存储库或数据结构来取回用户名。如果没有宏被配置为活动,则“位置”报头的值将是:
https://ibmUSA/jct/handler?OP_CODE=LOGON
表示各种操作码的字符串可以基于本发明的实现而变化。应当注意,由代理服务器使用的、用于生成给消息处理服务器的消息的信息可以来源于多种位置,包括图中未示出的其他位置,例如存储在会话高速缓存中的客户端条目中的数据、最初接收到的HTTP请求的元素、从认证引擎返回的值或一些其他位置。
现在参考图8,根据本发明的实施方式,该流程图根据优选实施方式示出了位于代理服务器处的处理,所述处理用于响应于针对资源的客户端请求,向消息处理服务器发送请求,以生成待发送到客户端的上下文适当的内容消息,其中该客户端请求引起了所检测到的、要求将内容消息发送到客户端的事件。当代理服务器从客户端接收到访问资源或受保护资源的请求时,该处理开始(步骤802)。在对所接收请求的处理期间,代理服务器检测出这样的事件,或通知代理服务器这样的事件,该事件即,代理服务器确定需要向客户端传输上下文适当的内容以作为对事件的响应(步骤804);例如,上下文适当的内容可以是至客户端用户的消息,例如针对用户所请求事务的错误消息或登陆邀请。
代理服务器创建重定向消息(步骤806);重定向消息包含由将接收重定向消息的消息处理服务器使用的信息。重定向消息包含针对代理服务器希望在消息处理服务器处调用的功能性的操作码或OP码。重定向消息还包括基于对代理服务器进行配置的特定宏而被置于重定向消息中的数据项。然后代理服务器经由客户端将重定向消息发送到消息处理服务器(步骤808),并且处理结束。
现在参考图9,根据本发明的实施方式,流程图根据优选实施方式描述了用于创建包含消息处理请求的重定向消息的处理。图9所示的处理提供了图8中所示的步骤806的附加细节。处理开始于代理服务器生成消息处理请求(步骤902)。确定适当的消息处理OP码,然后将其嵌入消息处理请求(步骤904)。
代理服务器继而确定已经配置或激活的宏列表(步骤906)。获得针对每个已配置的宏的值;这些值可被称为“评估的宏”,将评估的宏嵌入消息处理请求(步骤908)。
继而生成重定向消息(步骤910),并且将消息处理请求嵌入重定向消息(步骤912)。继而取回消息处理服务器的URL,并将其嵌入重定向消息(步骤914),从而结束该处理。
现在参考图10,流程图描述了根据本发明实施方式的使用重定向消息的“位置”报头和“位置”报头的URI中的查询变元来创建HTTP重定向消息的处理。图10所示的处理类似于图9所示的处理。然而,图10所示的处理示出了本发明的一部分的特定优选实施方式,其中在HTTP重定向消息内格式化消息处理请求。
该处理开始于HTTP重定向消息的生成(步骤1002)。从配置文件取回消息处理服务器的URL(步骤1004),并将其插入重定向消息,作为重定向消息的“位置”报头中的URI的基础部分(步骤1006)。在代理服务器确定了将被消息处理服务器解释为请求消息处理服务器处特定功能的操作码或OP码之后,将该操作码或OP码插入重定向消息,作为重定向消息的“位置”报头中的URI的查询变元(步骤1008)。
继而确定已配置的宏的列表,这例如是通过从配置文件取回(步骤1010),以及按照适合每个宏的方式获得针对每个已配置的宏的值(步骤1012)。继而将每个已配置宏的值插入重定向消息,作为重定向消息的“位置”报头中URI的查询变元(步骤1014),从而结束该处理。
根据上面提供的详细描述,所公开的解决方案的优点应当是显然的。如图4所示,代理服务器经由客户端设备向消息处理服务器发送重定向消息,例如HTTP“302”Redirect。包括无线设备在内的大多数设备可以处理HTTP“302”Redirect。将客户端重定向到其他服务器,而不是在代理服务器内生成HTTP响应体,所述其他服务器可以由特定安装所支持的设备的客户/供应商维护。该后端服务器(被示为图4中的消息处理服务器418)继而将负责确定客户端设备的类型并生成适当的响应。所公开的解决方案的主要优点是在上下文适当的内容的生成中完全去除了代理服务器。将确定适当响应的责任置于其他服务器满足了使用服务器侧编程而不是客户端侧编程来生成用于登陆和错误页面的内容的客户驱动的需求。所公开的解决方案还提供了API类型,可以通过其将参数或变量值从代理服务器传输至消息处理服务器,以便允许消息处理服务器生成上下文适当的内容。
需要着重注意的是,尽管已经在全功能数据处理系统的上下文中对本发明进行了描述,但是本领域的普通技术人员将意识到,本发明的处理可以以计算机可读介质中的指令的形式和多种其他形式进行分布,而不论实际用来执行分布的信号承载介质的特定类型。计算机可读介质的例子包括例如EPROM、ROM、磁带、纸张、软盘、硬盘驱动器、RAM和CD-ROM、以及传输类型的介质,例如数字和模拟通信链路。
通常将方法设想为导致期望结果的步骤的自相一致的序列。这些步骤需要物理量的物理操作。通常,尽管不是必须地,这些物理量采用能够被存储、传送、组合、比较和操作的电信号或磁信号的形式。将这些信号作为比特、值、参数、项、元件、对象、符号、字符、术语、数字等使用有时是方便的,主要是为了通用的原因。然而,应当指出,所有这些术语和类似术语都与适当的物理量相关联,并且仅仅是应用于这些物理量的方便的标记。
出于描述的目的已经给出了对本发明的描述,但并非意在是穷尽性的或是受限于所公开的实施方式。对于本领域的普通技术人员而言,多种修改和变形将是显然的。选择实施方式是为了阐释本发明的原理及其实践应用,并使得本领域的其他普通技术人员能够理解发明,以便实现具有各种修改的各种实施方式,以适合其他预期的用途。
Claims (14)
1.一种用于在数据处理系统中外部化消息处理的计算机实现的方法,所述方法包括:
在第一服务器处接收来自客户端的访问资源的请求;
响应于在所述第一服务器处确定处理所述请求要求将消息发送到所述客户端,生成包含操作码的重定向消息,所述操作码对应于第二服务器处的针对将要发送到所述客户端的消息的消息处理功能性;
评估可配置的宏,以确定评估的宏;
将所述评估的宏插入所述重定向消息;以及
将所述重定向消息从所述第一服务器经由所述客户端发送到所述第二服务器。
2.根据权利要求1所述的方法,还包括:
在所述第二服务器处从所述重定向消息中提取所述操作码;以及
在所述第二服务器处调用与所述提取的操作码相对应的消息处理功能性。
3.根据权利要求1或2所述的方法,还包括:
在所述第二服务器处从所述重定向消息中提取所述评估的宏;以及
在所述第二服务器处采用所述评估的宏作为所述消息处理功能性的输入参数。
4.根据权利要求1或2所述的方法,还包括:
将第一可配置宏标识为与来自所述客户端的所述请求中的URI(统一资源标识符)相对应;
从来自所述客户端的所述请求中提取所述URI;以及
将所述第一可配置宏评估为等于来自所述客户端的所述请求的提取的URI。
5.根据权利要求1或2所述的方法,还包括:
将所述操作码插入所述重定向消息作为所述重定向消息中的“位置”报头中URI的查询变元,其中,所述重定向消息是HTTP(超文本传输协议)Redirect消息。
6.根据前述权利要求1或2所述的方法,还包括:
将所述评估的宏插入所述重定向消息作为所述重定向消息中的“位置”报头中URI的查询变元,其中,所述重定向消息是HTTP(超文本传输协议)Redirect消息。
7.根据前述权利要求1或2所述的方法,还包括:
评估可配置的宏集合,以确定评估的宏集合;以及
将所述评估的宏插入所述重定向消息。
8.一种用于在数据处理系统中外部化消息处理的设备,所述设备包括:
用于在第一服务器处接收来自客户端的访问资源的请求的装置;
用于响应于在所述第一服务器处确定处理所述请求要求将消息发送到所述客户端而生成包含操作码的重定向消息的装置,所述操作码对应于第二服务器处的针对将要发送到所述客户端的消息的消息处理功能性;
用于评估可配置的宏以确定评估的宏的装置;
用于将所述评估的宏插入所述重定向消息的装置;以及
用于将所述重定向消息从所述第一服务器经由所述客户端发送到所述第二服务器的装置。
9.根据权利要求8所述的设备,还包括:
用于在所述第二服务器处从所述重定向消息中提取所述操作码的装置;以及
用于在所述第二服务器处调用与所述提取的操作码相对应的消息处理功能性的装置。
10.根据权利要求8或9所述的设备,还包括:
用于在所述第二服务器处从所述重定向消息中提取所述评估的宏的装置;以及
用于在所述第二服务器处采用所述评估的宏作为所述消息处理功能性的输入参数的装置。
11.根据权利要求8或9中任一项所述的设备,还包括:
用于将第一可配置宏标识为与来自所述客户端的所述请求中的URI(统一资源标识符)相对应的装置;
用于从来自所述客户端的所述请求中提取所述URI的装置;以及
用于将所述第一可配置宏评估为等于来自所述客户端的所述请求的提取的URI的装置。
12.根据权利要求8或9中任一项所述的设备,还包括:
用于将所述操作码插入所述重定向消息作为所述重定向消息中的“位置”报头中URI的查询变元的装置,其中,所述重定向消息是HTTP(超文本传输协议)Redirect消息。
13.根据权利要求8或9中任一项所述的设备,还包括:
用于将所述评估的宏插入所述重定向消息作为所述重定向消息中的“位置”报头中URI的查询变元的装置,其中,所述重定向消息是HTTP(超文本传输协议)Redirect消息。
14.根据权利要求8或9中任一项所述的设备,还包括:
用于评估可配置的宏集合以确定评估的宏集合的装置;以及
用于将所述评估的宏插入所述重定向消息的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US30313905A | 2005-12-16 | 2005-12-16 | |
US11/303,139 | 2005-12-16 | ||
PCT/EP2006/069654 WO2007068717A1 (en) | 2005-12-16 | 2006-12-13 | Method and system for externalizing http security message handling with macro support |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101331740A CN101331740A (zh) | 2008-12-24 |
CN101331740B true CN101331740B (zh) | 2011-07-20 |
Family
ID=37909479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680047173.2A Expired - Fee Related CN101331740B (zh) | 2005-12-16 | 2006-12-13 | 利用宏支持来外部化http安全消息处理的方法和系统 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1969817B1 (zh) |
JP (1) | JP5039053B2 (zh) |
CN (1) | CN101331740B (zh) |
CA (1) | CA2633313A1 (zh) |
TW (1) | TW200810459A (zh) |
WO (1) | WO2007068717A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI467483B (zh) * | 2008-03-07 | 2015-01-01 | Esobi Inc | Method and system for non-intrusive extensible markup language applications on web browsers |
US9596286B2 (en) * | 2012-05-25 | 2017-03-14 | A10 Networks, Inc. | Method to process HTTP header with hardware assistance |
CN103546543A (zh) * | 2013-09-29 | 2014-01-29 | 北京京东尚科信息技术有限公司 | 应用于电子商务的客户端装置以及提供信息的方法和系统 |
US9667657B2 (en) * | 2015-08-04 | 2017-05-30 | AO Kaspersky Lab | System and method of utilizing a dedicated computer security service |
JP7091998B2 (ja) * | 2018-11-09 | 2022-06-28 | 富士通株式会社 | 認証装置、認証方法および認証プログラム |
CN114466079B (zh) * | 2022-02-09 | 2024-02-06 | 星环信息科技(上海)股份有限公司 | 请求处理方法、装置、代理服务器及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1225479A (zh) * | 1997-11-21 | 1999-08-11 | 国际商业机器公司 | 基于请求者类型的网页的定制 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002073464A1 (en) * | 2001-03-09 | 2002-09-19 | The One.Com | System and method for providing efficient and accurate translation of information in a communication network |
US7685300B2 (en) * | 2003-09-04 | 2010-03-23 | International Business Machines Corporation | Method for access by server-side components using unsupported communication protocols through passthrough mechanism |
-
2006
- 2006-12-04 TW TW095144880A patent/TW200810459A/zh unknown
- 2006-12-13 WO PCT/EP2006/069654 patent/WO2007068717A1/en active Application Filing
- 2006-12-13 CA CA002633313A patent/CA2633313A1/en not_active Abandoned
- 2006-12-13 JP JP2008544995A patent/JP5039053B2/ja not_active Expired - Fee Related
- 2006-12-13 CN CN200680047173.2A patent/CN101331740B/zh not_active Expired - Fee Related
- 2006-12-13 EP EP06830588A patent/EP1969817B1/en not_active Not-in-force
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1225479A (zh) * | 1997-11-21 | 1999-08-11 | 国际商业机器公司 | 基于请求者类型的网页的定制 |
Also Published As
Publication number | Publication date |
---|---|
CN101331740A (zh) | 2008-12-24 |
JP5039053B2 (ja) | 2012-10-03 |
JP2009519531A (ja) | 2009-05-14 |
CA2633313A1 (en) | 2007-06-21 |
EP1969817B1 (en) | 2012-09-19 |
WO2007068717A1 (en) | 2007-06-21 |
TW200810459A (en) | 2008-02-16 |
EP1969817A1 (en) | 2008-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1653781B (zh) | 用于在联合环境中进行用户确定的身份验证的方法和系统 | |
EP1964360B1 (en) | Method and system for extending authentication methods | |
US7797726B2 (en) | Method and system for implementing privacy policy enforcement with a privacy proxy | |
CN100544361C (zh) | 用于管理会话标识符的方法和设备 | |
CN101160906B (zh) | 涉及跨分布式目录的组成员资格的访问授权的方法和系统 | |
CN1820481B (zh) | 在客户机-服务器环境中认证客户机的系统和方法 | |
US20020112162A1 (en) | Authentication and verification of Web page content | |
US20070289004A1 (en) | Authenticated and communicating verifiable authorization between disparate network domains | |
JP2018536232A (ja) | ウェブアプリケーションへのサインオンを制御するためのシステムおよび方法 | |
CN101331740B (zh) | 利用宏支持来外部化http安全消息处理的方法和系统 | |
EP2310977B1 (en) | An apparatus for managing user authentication | |
JP4960738B2 (ja) | 認証システム、認証方法および認証プログラム | |
JP2011170757A (ja) | 個人情報入力用管理サーバ、クライアント端末、個人情報入力システムおよびプログラム | |
CN101026624A (zh) | 用于网络应用程序的用户会话管理方法及系统 | |
US8381269B2 (en) | System architecture and method for secure web browsing using public computers | |
CN113411324B (zh) | 基于cas与第三方服务器实现登录认证的方法和系统 | |
US7363487B2 (en) | Method and system for dynamic client authentication in support of JAAS programming model | |
WO2008013992A2 (en) | Security model for application and trading partner integration | |
US20100250607A1 (en) | Personal information management apparatus and personal information management method | |
JP2005070979A (ja) | 情報処理装置、認証装置、認証方法、認証プログラム及び記録媒体 | |
Badikyan | Multi-Factor Graphical user Authentication for Web Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110720 Termination date: 20181213 |
|
CF01 | Termination of patent right due to non-payment of annual fee |