Policy Engine for Search Query Enforcement

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing search engine security techniques are inflexible and inefficient, often relying on browser-side filtering, early binding, or late binding methods that incur performance costs and require complex access control lists, leading to inconsistencies and increased training needs.

Innovation Solution

Implementing a policy engine through an API that enforces user access privileges by modifying intermediate search query representations to exclude prohibited content, allowing for centralized, flexible, and uniform policy enforcement across users.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If browser-based filtering is used to enforce security policies, then user-specific customization is improved, but consistency across users deteriorates and performance overhead increases

Engineering Contradiction:
Improveuser-specific customizationVSAvoidpolicy consistency
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces a policy engine as an intermediary component between the search engine and users. This policy engine centralizes policy enforcement, receiving search queries from users and applying uniform policies before returning results. The policy engine acts as a mediator that ensures consistent policy application across all users while still allowing for user-specific customization through the centralized policy framework, thereby resolving the contradiction between adaptability and reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If early binding techniques are used to add access control terms to queries, then security enforcement is improved, but query complexity and performance overhead increase

Engineering Contradiction:
Improvesecurity enforcementVSAvoidquery complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the access control logic from the search query itself and places it in a separate policy engine. Instead of embedding access control terms directly in the search query (early binding), the system separates the security enforcement mechanism from the query processing. The policy engine independently evaluates policies against user credentials and search context, then applies appropriate filters to results. This extraction reduces query complexity while maintaining security enforcement.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If late binding techniques are used to filter search results, then security enforcement is improved, but processing speed deteriorates due to individualized checks on each result

Engineering Contradiction:
Improvesecurity enforcementVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by evaluating access policies before search results are generated and returned to users. The policy engine performs preliminary filtering on search results based on user credentials and applicable policies, eliminating the need for individualized checks on each result item during late binding. This preliminary enforcement maintains security while significantly improving processing speed by reducing the computational overhead of result-by-result evaluation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11146563B1Policy enforcement for search engines
Publication Date: 2021.10.12 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11146563B1 patent drawing
  • US11146563B1 patent drawing
  • US11146563B1 patent drawing

AI summary

Systems, computer program products and methods implementing policy enforcement for search engines are described. A policy engine receives a user identifier associated with a search query including one or more query terms. The policy engine receives, from a preprocessor of a search engine, an intermediate representation of the search query. The intermediate representation includes one or more index terms corresponding to the one or more query terms. The policy engine determines, based on a particular policy, if the user is prohibited from accessing data associated with a particular index term. In response, the policy engine modifies the intermediate representation, including negating the particular index term. The policy engine then submits the modified intermediate representation to a query processing module of the search engine, causing the query processing module to exclude content corresponding to the particular index term from search results.