CN101578604B - 在企业搜索系统中将安全片标与文档相关联 - Google Patents

在企业搜索系统中将安全片标与文档相关联 Download PDF

Info

Publication number
CN101578604B
CN101578604B CN200880002159XA CN200880002159A CN101578604B CN 101578604 B CN101578604 B CN 101578604B CN 200880002159X A CN200880002159X A CN 200880002159XA CN 200880002159 A CN200880002159 A CN 200880002159A CN 101578604 B CN101578604 B CN 101578604B
Authority
CN
China
Prior art keywords
document
creeping
security trimmers
security
rule
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.)
Active
Application number
CN200880002159XA
Other languages
English (en)
Other versions
CN101578604A (zh
Inventor
M·J·泽勒
A·C·卡帕迪亚
S·达桑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101578604A publication Critical patent/CN101578604A/zh
Application granted granted Critical
Publication of CN101578604B publication Critical patent/CN101578604B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

提供了用于在企业搜索系统中使安全片标与文档相关联的方法和计算机可读介质。根据一种方法,维护搜索索引,其包括对应于存储在后端计算系统处的文档的一个或多个文档标识符。搜索索引中的每一个文档标识符都与一个或多个安全片标实现相关联。当从用户处接收到查询请求时,查询搜索索引以标识该搜索索引所引用的、匹配与该查询请求一起提供的搜索项的文档。对于匹配搜索项的每一个文档,标识并执行相关联的安全片标实现以便从其中存储该文档的后端计算系统中取得当前用户的查看文档的访问权限。

Description

在企业搜索系统中将安全片标与文档相关联
背景
企业搜索系统允许索引、搜索并向组织中的授权用户显示存储在该组织中的内容。为提供该功能,企业搜索系统通常必须索引和查询由多个独立的第三方企业软件应用程序和系统所存储的结构化和非结构化数据和文档。例如,在许多情况下,企业搜索系统必须索引并查询存储在内联网、文档和内容管理系统、文件服务器、企业台式机、诸如顾客关系管理和商业智能应用程序等商业应用程序、以及其它类型的内容存储中的数据。
与搜索公开可用数据并允许实际上任何用户执行对数据的查询的公共搜索引擎(诸如万维网(“web”)搜索引擎)相反,企业搜索系统通常索引对其的访问可能受到限制的数据。例如,企业搜索系统所索引的文档可具有相关联的访问控制列表(“ACL”),其包括标识用户所具有的对该文档的访问权限的一个或多个访问控制条目(“ACE”)。结果,在企业搜索系统执行查询时,其必须确保执行查询的用户具有足够的访问权限来查看响应于该查询所返回的每一个搜索结果。
为了确定用户是否具有足够的访问权限来查看搜索结果,企业搜索系统可以在将每一个文档添加到搜索索引时取得并存储该文档的访问权限。在查询时,企业搜索系统可以利用先前存储的访问权限来确定执行该查询的用户是否具有足够的权限来查看搜索结果。然而,执行并维护对搜索索引所引用的所有文档的访问权限的存储可能会是麻烦且昂贵的。
另选地,在执行查询时,企业搜索系统可以向其中存储一组搜索结果中的每一个文档的后端系统查询用户对该文档的访问权限。在该类实现中,后端系统在爬行时提供文档并在查询时提供该文档的访问权限。然而,每一个后端计算机系统的安全子系统常常利用不同的、秘密的、且可能是专有的应用程序编程接口(“API”)。结果,利用被称为安全片标(security trimmer)的自定义程序代码来调用由各种后端系统提供的用于获取访问权限的不同API通常是有必要的。然而,企业搜索系统可能难以确定对于一组搜索结果中所存在的每一个文档所应利用的安全片标。
此处所做出的本发明正是对于这些和其它考虑事项而提供的。
概述
此处提供了用于在企业搜索系统中使安全片标与文档相关联的方法和计算机可读介质。通过此处所描述的实现,可容易地使安全片标与搜索索引中所标识的文档相关联。在查询时,可标识并利用适当的安全片标来获取对一组搜索结果中的每一个文档的访问权限。
根据此处所给出的一个方面,提供了一种用于在企业搜索系统中使安全片标与文档相关联的方法。根据一种方法,维护搜索索引,其包括对应于存储在后端计算系统处的文档的一个或多个文档标识符。文档标识符可以是例如,存储在后端计算系统处的文档的统一资源定位符(“URL”)。
搜索索引中的每一个文档标识符都与一个或多个安全片标相关联。安全片标是能够调用后端系统上的用于确定用户是否具有查看文档的访问权限的API的程序代码。当从用户处接收到查询请求时,查询搜索索引以标识该搜索索引所引用的、匹配与该查询请求一起提供的搜索项的文档。对于匹配搜索项的每一个文档,标识并执行相关联的安全片标以取得当前用户的查看文档的访问权限。可同时执行所标识的安全片标。
当接收到查看每一个文档的访问权限时,确定该当前用户是否具有足够的访问权限来查看每一个文档。如果该用户具有查看文档的适当的访问权限,则在搜索结果中向该用户显示该文档。在一个实现中,安全片标解析器程序执行为每一个文档选择适当的片标实现、执行安全片标实现以及组合从各片标实现接收到的结果以确定是否应将该文档显示在搜索结果中的任务。
在一个实现中,每一个文档标识符都与一个或多个爬行规则相关联。爬行规则是关于文档URL的正则表达式。因此定义爬行规则导致定义后端计算系统子集中的文档子集。每一个爬行规则都与一个或多个安全片标实现相关联。以此方式,使文档标识符与爬行规则相关联,其进而与一个或多个片标实现相关联。每一个爬行规则还可以与特定的安全片标解析器相关联。
根据其他实现,每一个爬行规则都可具有相关联的优先值。当不止一个爬行规则对应于文档时利用优先值来选择适当的爬行规则。另外,在其他实施例中,可在爬行时从存储文档的后端计算系统中取得不透明的安全数据并将其持久存储在搜索索引中。在查询时,可将安全数据提供给安全片标实现并将其与对文档的访问权限的请求一起发送到后端系统。该安全数据然后可由后端系统用来确定对文档的访问权限。
上述主题也可被实现为计算机控制的装置、计算机进程、计算系统或诸如计算机可读介质等制品。通过阅读以下详细描述和查阅相关联的附图,这些和各个其它特征将是显而易见的。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。
附图简述
图1是示出用于此处所描述的各过程和计算机系统以及此处所描述的计算机系统所利用的若干软件组件的说明性操作环境的网络和软件图;
图2是示出此处在一个实现中所描述的安全片标解析器和安全片标的各方面的软件体系结构图;
图3、5和6A-6B是示出根据此处所描述的一个实现的、此处所提供的用于使安全片标与文档相关联的各过程的流程图;
图4是示出一个实现中的、此处所提供的用于存储文档与安全片标之间的关联的若干数据结构的内容的数据结构图;以及
图7是示出适用于实现此处所描述的各个计算机系统的计算机体系结构的计算机体系结构图。
详细描述
以下详细描述涉及用于使安全片标与企业搜索系统的搜索索引中所标识的文档相关联的系统、方法和计算机可读介质。尽管此处所述的主题是在结合操作系统和应用程序在计算系统上的执行而执行的程序模块的一般上下文中提供的,但本领域技术人员可以认识到,可结合其它类型的程序模块来执行其它实现。
一般而言,程序模块包括执行特定任务或实现特定的抽象数据类型的例程、程序、组件、数据结构和其它类型的结构。此外,本领域的技术人员可以理解,此处所述的本主题可以使用其它计算机系统配置来实践,这些其它计算机系统配置包括手持式设备、多处理器系统、基于微处理器或可编程的消费电子产品、小型计算机、大型计算机等。
此处所述的本主题也可被描述为在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践,在这种环境中程序模块可位于本地和远程存储器存储设备两者中。然而,应当理解,此处所述的实现也可结合单机计算机系统和其它类型的计算设备来利用。也应理解,此处所给出的各实施例可与任一类型的局域网(“LAN”)或广域网(“WAN”)一起利用。
在以下详细描述中,参考了构成其一部分并作为说明示出了各具体实施例或示例的附图。现在参考附图(全部若干附图中相同的标号表示相同的元素),将描述用于使安全片标与文档相关联的计算系统和方法的各方面。具体地,图1是示出用于此处所描述的主题的一个操作环境100的计算机软件体系结构和网络图,该操作环境包括客户机计算机102、网络122和一个或多个web服务器计算机104A-104B。应当理解,虽然图1中只示出了两个web服务器计算机104A-104B,两个后端系统112A-112B和一个客户计算机102,但可以存在任何数量的这些计算设备并以此处所描述的方式来利用这些计算设备。
如图1所示,客户机计算机102与web服务器计算机104A-104B通过各自到网络122的连接来彼此通信地耦合。根据一个实现,网络122包括因特网。然而,应当理解,网络122可包括LAN、WAN或适于连接客户机计算机102与web服务器计算机104A-104B的其它类型的网络。web服务器计算机104A-104B还耦合到一个或多个后端系统112A-112B。后端系统112A-112B是能够将文档存储在相应的内容存储114A-114B中的计算系统。如此处所使用的,术语文档意味着任何可索引的数据单元。以下提供了关于后端系统112A-112B的操作的附加细节。
图1还示出供客户机计算机102和web服务器计算机104A-104B利用的多个软件组件。具体地,web服务器计算机104A-104B分别可用于执行搜索爬行器(crawler)106A-106B。搜索爬行器106A-106B是被设计成从各个源收集诸如存储在后端系统112A-112B的内容存储114A-114B中的文档等文档的应用程序。后端系统112A-112B可包括被用来存储内容的任何类型的计算系统,诸如内联网服务器、文档或内容管理系统、文件服务器、企业台式机、诸如顾客关系管理应用程序或商业智能应用程序等商业应用程序、或另一类型的内容存储。
为了执行文档标识和索引过程,起初用关于内容存储的信息对搜索爬行器106A-106B加以协助。搜索爬行器106A-106B随后从内容存储中取得文档,索引这些文档,并将所索引的内容和任何相关联的元数据存储在被称为搜索索引108的数据库中。搜索爬行器106A-106B还可以标识每一文档中包含的到其它文档的链接并跟随这些链接来获得并索引附加文档。该过程被称为“爬行”。
在爬行过程期间,搜索爬行器106A-106B还可获得所索引文档的安全数据。例如,在一个实现中,取得所索引的每一个文档的访问权限并将其存储在搜索索引108中。例如,搜索爬行器106A-106B可以获得每一文档的授权用户的列表。因为安全数据对于web服务器计算机104A-104B通常是无意义的,所以安全数据此处可被称为不透明的。
根据一个实现,客户机计算机102包括web浏览器程序(此处被称为“浏览器”)116。浏览器116可用于从服务器计算机104A-104B请求、接收并显示诸如网页等信息页面。具体而言,浏览器116可用于与在服务器计算机104A-104B上执行的web服务器应用程序118A-118B中的一个建立连接。通过该连接,浏览器116可以请求用于执行对搜索索引108的查询的网页。这一查询请求由在web服务器计算机104A-104B上执行的即时回复该查询请求的查询处理器120A-120B处理。
查询处理器120A-120B通过标识搜索索引108内包含用户查询中的关键词的文档来对用户查询作出响应。查询处理器120A-120B还基于执行查询的用户是否具有足够的访问权限来查看每一文档来评估每一个文档是否应作为搜索结果返回。如将在以下更详细描述的,每一个查询处理器120A-120B可动态地向后端系统112A-112B查询指示执行该查询的用户是否具有适当的访问权限来查看搜索结果中的每一个文档的访问权限。
在一个实现中,对后端系统112A-112B所展示的安全API的查询可通过使用安全片标和安全解析器来调用。如将在以下参考图2-6B来更详细描述的,搜索索引108中的每一个文档标识符都可以与一个或多个安全片标实现相关联,这些安全片标负责调用后端系统上的用于确定用户是否具有查看相应文档的访问权限的API。
现在参考图2,将描述关于包括此处所提供的安全片标解析器和安全片标的软件体系结构的附加细节。如上所简述地,查询处理器120可利用安全片标解析器202和一个或多个安全片标204A-204C来与存储有索引文档的后端系统112A-112C所展示的安全API进行通信。每一个安全片标解析器202都是可用于选择调用安全片标204A-204C中的哪一个以获取特定文档的访问权限的程序。安全片标解析器202还可用于从安全片标204A-204C中的每一个接收访问权限,并基于这些权限来作出关于当前用户是否被授权查看文档的决定。根据各个实现,该判定可通过结合地链接(chain)所有匹配片标的结果来作出。或者,该判定可通过基于性能试探来分离地选择安全片标或两者的组合来作出。安全片标解析器202将决定结果传递给查询处理器120以供在生成实际上提供给用户的搜索结果时使用。
同样如上所简述地,安全片标204A-204C是可用于调用后端系统112A-112C所展示的、确定是否在一组搜索结果中显示文档的API的程序。安全片标204A-204C被编程为与特定类型的后端系统互操作。例如,安全片标204A可被配置成与后端系统112A所展示的API一起操作,而安全片标204B可被配置成与后端系统112B所展示的API一起操作。安全片标204A-204C处理与后端系统112A-112C的通信的所有方面,包括认证、最终用户安全上下文的传达以及文档URL成为对于特定后端系统112A-112C是本地的文档标识符的转换。
在一个实现中,安全片标204A-204C中的每一个都分别包括相关联的URL队列206A-206C。每一个URL队列206A-206C都可由安全片标解析器202用来将应取得对其的访问权限的多个文档标识符排成队。当一组搜索结果中文档的所有文档标识符都已排成队时,安全片标解析器202可使得安全片标204A-204C被同时执行。取决于安全片标解析器202的配置,一旦后端系统112A-112C中的第一个以所请求的访问权限响应,就可向查询处理器120提供对应于文档的结果。
根据另一实现,每一个安全片标204A-204C都还可分别包括安全数据队列208A-208C。在该实现中,可在爬行时从后端系统112A-112C中取得安全数据并对应于每一个文档将其持久存储在搜索索引108中。在查询时,取得安全数据并将其放置在适当的安全数据队列208A-208C中。当对URL执行安全片标204A时,安全片标204A将相关联的安全数据队列208A中的安全数据与对文档的访问权限的请求一起发送到后端系统112A。该安全数据然后可由后端系统112A用来确定对该文档的访问权限。
如将在以下更详细描述的,搜索索引108中所引用的任何文档都可以与一个或多个安全片标204A-204C相关联以确定是否响应于用户所提交的搜索查询来显示文档。图3-5B示出了用于使搜索索引108中所引用的文档与安全片标204A-204C相关联的示例性机制。
现在参考图3,将提供关于此处所给出的用于使文档与安全片标相关联的各实施例的附加细节。具体而言,图3是示出用于使搜索索引108中所标识的文档与一个或多个安全片标204相关联的说明性机制的流程图。图3是结合图4来描述的,图4示出了用于存储数据以使搜索索引108中所引用的文档与安全片标相关联的若干数据结构。
应理解,此处所述的逻辑操作被实现为(1)一系列计算机实现动作或运行于计算系统上的程序模块,和/或(2)计算系统内的互连机器逻辑电路或电路模块。该实现是取决于计算机系统的性能要求的选择的问题。因此,此处所描述的逻辑操作被不同地称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可用软件、固件、专用数字逻辑以及任何组合来实现。
例程300开始于操作302,在那里通过使安全片标204与唯一的安全片标标识符414以及安全片标实现的配置信息416相关联来定义该实现。在一个实现中,安全片标标识符414包括唯一的整数。配置信息416包括一组名值对,其在执行时用于配置安全片标204的引用实例的操作。以此方式,安全片标204的相同实例可针对多个安全片标标识符414来注册,其各自基于与安全片标标识符414相关联的配置信息416来不同地工作。如图4所示,可利用片标配置存储402来存储安全片标标识符414及相关联的配置信息416。
例程300从操作302继续至操作304,在那里为其中存储搜索索引108中所引用的文档的URL空间的每一个子集定义一个或多个爬行规则420。爬行规则420是关于文档URL的正则表达式。例如,爬行规则可被定义为诸如bdc://*/SAP/CUSTOMER/ID=*以标识作为SAP系统中的顾客的任何服务器上的所有文档。以此方式,可利用通配符或正则表达式来定义后端计算系统子集中的文档子集。每一个爬行规则还分配到唯一的爬行规则标识符418,诸如整数值等。
一旦定义了爬行规则420,例程300就从操作304继续至操作306。在操作306,使一个或多个安全片标标识符424与每一个爬行规则420相关联。还可指定应与爬行规则一起利用的标识安全片标解析器202的单个、可任选的片标解析器标识符426。在一个实现中,这些数据项被存储在爬行规则定义存储404中。
在一个实施例中,还可使爬行规则优先值422与每一个爬行规则相关联。优先值422可用于消除爬行规则的歧义。例如,在搜索爬行期间,搜索爬行器106可发现匹配多个爬行规则420所指定的正则表达式的文档URL 406。在这种情况下,只利用具有最高优先值422的爬行规则420,并且将爬行规则标识符410存储在与所标识文档的文档URL 406相关联的搜索索引108中。
如图4所示,搜索索引108包括诸如文档URL 406等对应于其中所引用的每一个文档的文档标识符。搜索索引108还可存储在爬行时取得的所引用文档的安全数据408。爬行规则标识符410也与文档标识符相关联并在爬行时被存储在搜索索引108中。爬行规则标识符410使文档标识符与爬行规则420相关联。每一个爬行规则420还与一个或多个安全片标标识符424、一个可任选的片标解析器标识符426以及优先值422相关联。每一个安全片标标识符424都对应于一特定安全片标实现412,其可利用配置信息416来唯一地配置。使用该数据来对一组搜索结果中的每一个文档选择并执行适当的安全片标将在以下参考图6A-6B来描述。
现在参考图5,将描述示出由搜索爬行器106A-106B执行的用于爬行内容存储114A-114B的各处理操作的说明性例程500。例程500开始于操作502,在那里搜索爬行器106A以上述方式爬行可用内容存储中的文档。在爬行过程期间,例程500继续至操作504,在那里确定是否已找到文档。如果没有,则例程500分叉回到操作502,该爬行过程在那里继续。当找到文档时,例程500从操作504继续至操作506。
在操作506,搜索爬行器106A将所定位的文档的URL 406存储在搜索索引108中。例程500然后继续至操作508,在那里搜索爬行器106A标识匹配所发现文档的位置并且还具有最高优先值422的爬行规则420。一旦已标识了适当的爬行规则420,例程500就继续至操作510,在那里使匹配的爬行规则420的爬行规则标识符410与搜索索引108中的文档标识符相关联。
例程590然后从操作510继续至操作512,在那里也将与所发现文档相关联的安全数据408存储在搜索索引108中。如上所述,可任选地将安全数据408与对文档的访问权限的请求一起发送到后端系统。例程500从操作512返回至操作502,在那里该爬行过程以上述方式继续。
现在转向图6A-6B,将描述示出由查询处理器120A执行的用于对搜索索引108执行搜索查询的各处理操作的说明性例程600。例程600开始于操作602,在那里从例如客户计算机102的用户处接收搜索项。例程600然后继续至操作604,在那里查询处理器120A向搜索索引108查询其中所标识的、匹配所提供的搜索项的文档。例程600然后继续至操作606,在那里确定匹配搜索项的搜索结果是否位于搜索索引108中。如果没有定位到匹配的文档,则不存在要调整的搜索结果,并且例程600分叉到操作607,该例程在此结束。如果定位到搜索结果,则例程600继续到操作608。
在操作608,将标识当前搜索结果的变量设置成第一个返回的搜索结果。该变量用于在通过所有返回的搜索结果的迭代期间标识当前搜索结果。例程600从操作608继续至操作610,在那里从存储在搜索索引108中且以上参考图4描述的数据中标识针对当前搜索结果的爬行规则420。例程600然后继续至操作612,在那里实例化与所标识的爬行规则420相关联的安全片标204。如果已经实例化了特定安全片标204,则没有必要重新实例化该对象。
例程600从操作612继续至操作614,在那里使URL队列206与每一个安全片标相关联并将当前搜索结果的URL放入该URL队列中。例程600然后继续至操作616,在那里也使安全数据队列208与每一个安全片标相关联并将与当前搜索结果相关联的任何安全数据408被放入每一个安全数据队列208中。在操作618,实例化与爬行规则420相关联的任何安全片标解析器202。
例程600从操作618继续至操作620,在那里确定是否将要处理更多的搜索结果。如果将要处理更多的搜索结果,则例程600分叉到操作622,在那里将当前搜索结果变量的值设置为下一个搜索结果。例程600然后从操作622返回到操作610,在那里以上述方式处理下一个搜索结果。如果查询处理器120在操作620处确定没有其他搜索结果,则例程600从操作620继续至操作622。
在操作622,同时执行所有实例化的安全片标204。安全片标204处理其相关联的URL队列中的URL,并将对所标识文档的访问权限的请求发送到适当的后端系统112。当安全片标204接收到来自后端系统112的响应时,将结果传递给安全片标解析器202。这在操作626处发生。
在操作628,安全片标解析器202基于从每一个安全片标204接收到的信息来确定是否应向当前用户显示每一个搜索结果。然后将该判定的结果返回给查询处理器120,其在操作630处利用该信息来只显示当前用户被授权查看的那些搜索结果。例程600然后从操作630继续至操作632,该例程在此结束。
现参考图7,将讨论此处所给出的各实施例中所利用的计算机700的说明性计算机体系结构。图7所示的计算机体系结构示出了常规的台式计算机、膝上型计算机或服务器计算机,并且可用于具体化客户计算机102、web服务器计算机104A-104B或后端系统112A-112B。
图7所示的计算机体系结构包括中央处理单元702(“CPU”)、包括随机存取存储器714(“RAM”)和只读存储器(“ROM”)716的系统存储器708、以及将存储器耦合至CPU 702的系统总线704。基本输入/输出系统存储在ROM716中,它包含帮助诸如在启动期间在计算机700内元件之间传递信息的基本例程。计算机700还包括用于存储操作系统718、应用程序和其它程序模块等的大容量存储设备710,这将在以下更为详尽地描述。
大容量存储设备710通过连接至总线704的大容量存储控制器(未示出)连接到CPU 702。大容量存储设备710及其相关联的计算机可读介质为计算机700提供非易失性存储。尽管此处所包含的计算机可读介质的描述指的是大容量存储设备,如硬盘或CD-ROM驱动器,但本领域的技术人员应理解,计算机可读介质可以是可由计算机700访问的任何可用介质。
作为示例而非限制,计算机可读介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机可读介质包括但不限于,RAM、ROM、EPROM、EEPROM、闪存或其它固态存储器技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、蓝光(BLU-RAY)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机700访问的任何其它介质。
根据各实施例,计算机700可以使用通过诸如因特网等网络122与远程计算机的逻辑连接在联网环境中操作。计算机700可以通过连接至总线704的网络接口单元706来连接到网络122。应理解,网络接口单元706也可用于连接至其它类型的网络和远程计算机系统。计算机700还可以包括用于接收和处理来自多个其它设备的输入的输入/输出控制器712,这些设备包括键盘、鼠标或者电子指示笔(未在图7中示出)。类似地,输入/输出控制器可以提供至显示屏、打印机或其它类型的输出设备(也未在图7中示出)的输出。
如上简述,多个程序模块和数据文件可以存储在计算机700的大容量存储设备710和RAM 714内,包括适于控制联网的台式或服务器计算机的操作的操作系统718,如华盛顿州雷蒙德市的微软公司的WINDOWS XP或WINDOWS VISTA操作系统。可以利用诸如LINUX操作系统或来自苹果计算机有限公司的OSX操作系统等其它操作系统。应当理解,尽管此处所给出的各实施例是在台式或膝上型客户计算机102与远程web服务器计算机104的上下文中描述的,但可利用许多其它类型的计算设备或系统来具体化此处所给出的各方面。
大容量存储设备710和RAM 714还可以存储一个或多个程序模块。具体而言,大容量存储设备710和RAM 714可存储web浏览器116、web服务器应用程序118以及以上参考图1和图2描述的其它程序模块。其它程序模块也可被存储在大容量存储设备710中并供计算机700利用。
基于上述内容,应当理解,此处提供了用于使文档与安全片标相关联的系统、方法和计算机可读介质。尽管用对计算机结构特征、方法动作和计算机可读介质专用的语言描述了此处呈现的本主题,但可以理解,所附权利要求书中定义的本发明不必限于此处所述的具体特征、动作或介质。相反,具体特征、动作和介质是作为实现权利要求的示例形式公开的。
上述主题仅作为说明提供,并且不应被解释为限制。可对此处所述的主题作出各种修改和改变,而不必遵循所示和所述的示例实施例和应用,且不背离所附权利要求书中所述的本发明的真正精神和范围。

Claims (18)

1.一种用于使安全片标与文档相关联的方法,所述方法包括:
维护其中存储有一个或多个文档标识符的搜索索引(108),每一个文档标识符都对应于存储在后端计算系统(112)上的文档;
使存储在所述搜索索引(108)中的每一个文档标识符都与一个或多个爬行规则相关联、并且使每一个爬行规则与一个或多个安全片标相关联,每个安全片标是用于调用后端计算系统所展示的、用于确定用户是否具有对文档的访问权限的应用程序编程接口的程序代码,每个爬行规则还与优先值相关联;
基于所述优先值来选择所述爬行规则以供与所述文档标识符一起使用;从用户处接收包括一个或多个搜索项的查询请求;
响应于所述查询请求,查询所述搜索索引(108)以标识匹配所述搜索项的一个或多个文档;以及
对于匹配所述搜索项的每一个文档,执行与对应的文档标识符相关联的安全片标实现(204)以取得所述用户的查看所述文档的访问权限。
2.如权利要求1所述的方法,其特征在于,还包括:
从所述安全片标实现中的每一个接收所述访问权限;以及
基于从所述安全片标实现中的每一个接收到的访问权限,确定是否向所述用户显示匹配所述搜索项的每一个文档。
3.如权利要求1所述的方法,其特征在于,还包括:
使每一个爬行规则与安全片标解析器相关联,每一个安全片标解析器都可用于确定要对特定文档标识符执行的安全片标实现、从所述安全片标实现接收所述访问权限、以及基于所述访问权限来确定是否向所述用户显示文档。
4.如权利要求3所述的方法,其特征在于,所述安全片标实现是同时执行的。
5.如权利要求3所述的方法,其特征在于,不透明的安全信息与每一个文档标识符相关联,并且其中每一个安全片标实现都可用于将与文档标识符相关联的不透明的安全信息连同对与所述文档标识符相对应的文档的访问权限的请求一起发送到后端计算系统。
6.一种用于获取文档的访问权限的方法,包括:
维护用于存储一个或多个文档标识符(406)的搜索索引(108),每一个文档标识符(406)都对应于存储在后端计算系统(112)上的文档并且与爬行规则(420)相关联;
使每一个爬行规则(420)与一个或多个安全片标实现(204)相关联,每一个安全片标实现(204)都定义安全片标和所述安全片标的配置(416),每个安全片标是用于调用后端计算系统所展示的、用于确定用户是否具有对文档的访问权限的应用程序编程接口的程序代码,每个爬行规则还与优先值相关联;
基于所述优先值来选择所述爬行规则以供与所述文档标识符一起使用;
执行对所述搜索索引(108)的查询以生成包括一个或多个文档标识符(406)的搜索结果;以及
对于所述搜索结果中的每一个文档标识符(406),标识一个或多个相关联的爬行规则(420)以及安全片标实现(204),并且执行相关联的安全片标实现(204)以获取对与所述文档标识符(406)相对应的文档的访问权限。
7.如权利要求6所述的方法,其特征在于,还包括:
接收对所述搜索结果中的每一个文档标识符的访问权限;以及
基于所述访问权限来确定是否在所述搜索结果中显示每一个文档标识符。
8.如权利要求7所述的方法,其特征在于,每一个爬行规则还与片标解析器相关联,并且其中所述片标解析器可用于确定是否在所述搜索结果中显示与对应的爬行规则相关联的每一个文档标识符。
9.如权利要求7所述的方法,其特征在于,还包括:
存储与每一个文档标识符相关联的安全数据,所述安全数据是从存储有对应于所述文档标识符的文档的后端计算系统中取得的;以及
在获取对与所述文档标识符相对应的文档的访问权限时将所述安全数据提供给所述安全片标实现。
10.如权利要求7所述的方法,其特征在于,所述安全片标实现中的每一个都包括相关联的统一资源定位符队列。
11.如权利要求7所述的方法,其特征在于,所述安全片标实现中的每一个都包括相关联的安全数据队列。
12.如权利要求7所述的方法,其特征在于,各个所述安全片标实现都是同时执行的。
13.一种用于使安全片标与文档相关联的方法,所述方法包括:
维护包括一个或多个文档标识符(406)的搜索索引(108),每一个文档标识符(406)都引用文档并具有相关联的爬行规则标识符(410);
维护包括一个或多个安全片标标识符(414)的安全片标配置存储(402),每一个安全片标标识符(414)都引用安全片标并具有用于配置所述安全片标的配置信息(416),每个安全片标是用于调用后端计算系统所展示的、用于确定用户是否具有对文档的访问权限的应用程序编程接口的程序代码;
维护包括一个或多个爬行规则(420)的爬行规则定义存储(404),每一个爬行规则(420)都与一个或多个安全片标标识符(414)相关联,每个爬行规则还与优先值相关联;
基于所述优先值来选择所述爬行规则以供与所述文档标识符一起使用;
从用户处接收包括一个或多个搜索项的查询请求;
响应于所述查询请求,查询所述搜索索引(108)以标识匹配所述搜索项的一个或多个文档;以及
对于匹配所述搜索项的每一个文档,使用所述相关联的爬行规则标识符(410)和爬行规则定义存储(404)来标识针对所述文档的安全片标实现(204),并且执行所述安全片标实现(402)以取得当前用户的查看所述文档的访问权限。
14.如权利要求13所述的方法,其特征在于,每一个爬行规则还与优先值相关联,并且其中所述方法还包括利用所述优先值来标识应在文档标识符对应于不止一个爬行规则时利用的爬行规则。
15.如权利要求14所述的方法,其特征在于,每一个爬行规则还与片标解析器相关联,并且其中所述片标解析器可用于从所述片标实现中的每一个接收所述访问权限并且基于所述访问权限来确定所述当前用户是否被准许查看文档。
16.如权利要求15所述的方法,其特征在于,所述搜索索引中的每一个文档标识符都与从存储有与所述文档标识符相关联的文档的后端数据存储中获取的安全数据相关联。
17.如权利要求16所述的方法,其特征在于,每一个安全片标实现都与安全数据队列相关联。
18.如权利要求17所述的方法,其特征在于,每一个安全片标实现都与统一资源定位符相关联。
CN200880002159XA 2007-01-16 2008-01-16 在企业搜索系统中将安全片标与文档相关联 Active CN101578604B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/653,518 US7979458B2 (en) 2007-01-16 2007-01-16 Associating security trimmers with documents in an enterprise search system
US11/653,518 2007-01-16
PCT/US2008/051164 WO2008089233A1 (en) 2007-01-16 2008-01-16 Associating security trimmers with documents in an enterprise search system

Publications (2)

Publication Number Publication Date
CN101578604A CN101578604A (zh) 2009-11-11
CN101578604B true CN101578604B (zh) 2012-11-14

Family

ID=39618556

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880002159XA Active CN101578604B (zh) 2007-01-16 2008-01-16 在企业搜索系统中将安全片标与文档相关联

Country Status (4)

Country Link
US (2) US7979458B2 (zh)
EP (1) EP2118787A4 (zh)
CN (1) CN101578604B (zh)
WO (1) WO2008089233A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2352103B1 (en) * 2008-10-08 2014-07-30 International Business Machines Corporation Information processing apparatus, document retrieval system, document retrieval method, and program
US10210260B2 (en) 2010-10-20 2019-02-19 Microsoft Technology Licensing, Llc Templates for displaying data
CN103377260B (zh) * 2012-04-28 2017-05-31 阿里巴巴集团控股有限公司 一种网络日志url 的分析方法及装置
US10678797B2 (en) * 2015-08-17 2020-06-09 Sap Se Ranking of shared documents and users
US10606902B1 (en) 2016-09-29 2020-03-31 EMC IP Holding Company LLC Method and system for cached early-binding document search
US10691757B1 (en) 2016-09-29 2020-06-23 EMC IP Holding Company LLC Method and system for cached document search
US11146563B1 (en) * 2018-01-31 2021-10-12 Microsoft Technology Licensing, Llc Policy enforcement for search engines
CN110020554B (zh) * 2019-04-19 2021-04-13 腾讯科技(深圳)有限公司 基于区块链的信息处理方法、装置和计算机可读存储介质
US11394718B2 (en) * 2019-06-10 2022-07-19 Microsoft Technology Licensing, Llc Resolving decentralized identifiers using multiple resolvers
US20230027628A1 (en) * 2021-07-26 2023-01-26 Microsoft Technology Licensing, Llc User context-based enterprise search with multi-modal interaction
US11960618B2 (en) 2021-09-01 2024-04-16 International Business Machines Corporation Access rights based search results
US11593389B1 (en) * 2021-09-28 2023-02-28 International Business Machines Corporation Prioritized reprocessing of crawled files

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6094649A (en) * 1997-12-22 2000-07-25 Partnet, Inc. Keyword searches of structured databases
US6144973A (en) * 1996-09-06 2000-11-07 Kabushiki Kaisha Toshiba Document requesting system and method of receiving related document in advance
EP1058182A1 (en) * 1998-12-21 2000-12-06 Matsushita Electric Industrial Co., Ltd. Hypertext display device
US6189103B1 (en) * 1998-07-21 2001-02-13 Novell, Inc. Authority delegation with secure operating system queues
US6269380B1 (en) * 1998-08-31 2001-07-31 Xerox Corporation Property based mechanism for flexibility supporting front-end and back-end components having different communication protocols

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649099A (en) * 1993-06-04 1997-07-15 Xerox Corporation Method for delegating access rights through executable access control program without delegating access rights not in a specification to any intermediary nor comprising server security
US6134549A (en) * 1995-03-31 2000-10-17 Showcase Corporation Client/server computer system having personalizable and securable views of database data
US5675782A (en) * 1995-06-06 1997-10-07 Microsoft Corporation Controlling access to objects on multiple operating systems
US6370571B1 (en) * 1997-03-05 2002-04-09 At Home Corporation System and method for delivering high-performance online multimedia services
US6357010B1 (en) * 1998-02-17 2002-03-12 Secure Computing Corporation System and method for controlling access to documents stored on an internal network
US6119153A (en) * 1998-04-27 2000-09-12 Microsoft Corporation Accessing content via installable data sources
JP2000020444A (ja) * 1998-06-26 2000-01-21 Bariafurii:Kk 機能拡張装置および機能拡張方法ならびに機能拡張プログラムを記録した記録媒体
US6625603B1 (en) * 1998-09-21 2003-09-23 Microsoft Corporation Object type specific access control
US6460141B1 (en) * 1998-10-28 2002-10-01 Rsa Security Inc. Security and access management system for web-enabled and non-web-enabled applications and content on a computer network
US6381602B1 (en) * 1999-01-26 2002-04-30 Microsoft Corporation Enforcing access control on resources at a location other than the source location
US20040153509A1 (en) * 1999-06-30 2004-08-05 Alcorn Robert L. Internet-based education support system, method and medium with modular text-editing component for use in a web-based application
FR2802674B1 (fr) * 1999-12-21 2004-08-27 Bull Sa Dispositif et procede de controle d'acces a des ressources
US8010800B2 (en) * 2001-06-26 2011-08-30 Sealedmedia Limited Search engine and digital rights management
US20030135582A1 (en) * 2001-12-21 2003-07-17 Docomo Communications Laboratories Usa, Inc. Context aware search service
US7107285B2 (en) * 2002-03-16 2006-09-12 Questerra Corporation Method, system, and program for an improved enterprise spatial system
US6944613B2 (en) * 2002-12-13 2005-09-13 Sciquest, Inc. Method and system for creating a database and searching the database for allowing multiple customized views
US7133867B2 (en) * 2003-02-13 2006-11-07 Sap Aktiengesellschaft Text and attribute searches of data stores that include business objects
JP2005011180A (ja) * 2003-06-20 2005-01-13 Nec Corp Url検索システム及びそれに使用するサーバ並びにurl検索方法
US7814093B2 (en) * 2003-07-25 2010-10-12 Microsoft Corporation Method and system for building a report for execution against a data store
US20050060286A1 (en) 2003-09-15 2005-03-17 Microsoft Corporation Free text search within a relational database
US7685296B2 (en) * 2003-09-25 2010-03-23 Microsoft Corporation Systems and methods for client-based web crawling
US7552109B2 (en) * 2003-10-15 2009-06-23 International Business Machines Corporation System, method, and service for collaborative focused crawling of documents on a network
WO2005045632A2 (en) * 2003-10-31 2005-05-19 Dipsie, Inc. Utilizing cookies by a search engine robot for document retrieval
US7310632B2 (en) * 2004-02-12 2007-12-18 Microsoft Corporation Decision-theoretic web-crawling and predicting web-page change
US8065383B2 (en) * 2004-05-17 2011-11-22 Simplefeed, Inc. Customizable and measurable information feeds for personalized communication
US7076493B2 (en) * 2004-05-28 2006-07-11 Metadata, Llc Defining a data dependency path through a body of related data
US20060036748A1 (en) * 2004-07-28 2006-02-16 Nusbaum Edward S Apparatus and method for computerized information management
US8417693B2 (en) * 2005-07-14 2013-04-09 International Business Machines Corporation Enforcing native access control to indexed documents
US20070113291A1 (en) * 2005-11-17 2007-05-17 Juin-Jia Dai Method for administrating the function access
US8875249B2 (en) * 2006-03-01 2014-10-28 Oracle International Corporation Minimum lifespan credentials for crawling data repositories
US8019632B2 (en) * 2006-10-16 2011-09-13 Accenture Global Services Limited System and method of integrating enterprise applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6144973A (en) * 1996-09-06 2000-11-07 Kabushiki Kaisha Toshiba Document requesting system and method of receiving related document in advance
US6094649A (en) * 1997-12-22 2000-07-25 Partnet, Inc. Keyword searches of structured databases
US6189103B1 (en) * 1998-07-21 2001-02-13 Novell, Inc. Authority delegation with secure operating system queues
US6269380B1 (en) * 1998-08-31 2001-07-31 Xerox Corporation Property based mechanism for flexibility supporting front-end and back-end components having different communication protocols
EP1058182A1 (en) * 1998-12-21 2000-12-06 Matsushita Electric Industrial Co., Ltd. Hypertext display device

Also Published As

Publication number Publication date
US20080172390A1 (en) 2008-07-17
EP2118787A4 (en) 2012-11-07
EP2118787A1 (en) 2009-11-18
WO2008089233A1 (en) 2008-07-24
US7979458B2 (en) 2011-07-12
US8849848B2 (en) 2014-09-30
US20110238696A1 (en) 2011-09-29
CN101578604A (zh) 2009-11-11

Similar Documents

Publication Publication Date Title
CN101578604B (zh) 在企业搜索系统中将安全片标与文档相关联
CN101583952B (zh) 集成企业搜索系统与自定义访问控制应用程序编程接口
US20220311618A1 (en) Nested blockchain system
US10938817B2 (en) Data security and protection system using distributed ledgers to store validated data in a knowledge graph
KR101117817B1 (ko) 데이터 소스 발견 및 접속을 위한 방법, 시스템, 및 장치
CN1534519B (zh) 请求和接收数据库改变通知的系统和方法
US8135705B2 (en) Guaranteeing hypertext link integrity
CN101675449A (zh) 标识电子邮件消息并将其相关
CN101689201B (zh) 联合搜索
CN105653901A (zh) 一种组件仓库管理的方法及系统
US20090182707A1 (en) Database changeset management system and method
US10331441B2 (en) Source code mapping through context specific key word indexes and fingerprinting
Sinclair et al. Security requirement prototyping with hyperledger composer for drug supply chain: a blockchain application
US20090222408A1 (en) Data storage structure
CN113841142A (zh) 使用知识图提供网络安全的方法、装置和计算机程序
CN102057377A (zh) 虚拟化查询中的对象
Koundinya et al. Map/Reduce Deisgn and Implementation of Apriori Alogirthm for handling voluminous data-sets
Singh et al. Privacy-preserving multi-keyword hybrid search over encrypted data in cloud
Guermazi et al. Adaptive security for Cloud data warehouse as a service
US7870096B2 (en) Asset composition
Aboulnaga et al. μbe: User guided source selection and schema mediation for internet scale data integration
Elliott et al. Signing data citations enables data verification and citation persistence
Murray KI: A tool for knowledge integration
Flapper User access control on the blockchain for supply chain visibility
Penny et al. Phylogenetics: parsimony and distance methods

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150507

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150507

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.