IP Library › Granted Patent US 9,479,494
Granted Patent B2
US 9,479,494 · App. 14/930,475 · Granted Oct 25, 2016

Flexible authentication framework

Inventors: Muralidhar Krishnaprasad (Fremont, CA); Mark Davis (Fremont, CA); Mark Ture (Santa Clara, CA); Cindy Hsin (Fremont, CA); Meeten Bhavsar (Emerald Hills, CA); Hiroshi Koide (San Francisco, CA); Joaquin Delgado (Santa Clara, CA); Chi-Ming Yang (Sunnyvale, CA); Visar Nimani (Jacksonville, FL); Hui Ouyang (Fremont, CA); Sachin Bhatkar (Sunnyvale, CA); Thomas Chang (Redwood Shores, CA)
Assignee: ORACLE INTERNATIONAL CORPORATION
H04L63/08G06F17/30011G06F17/30321G06F17/30477G06F17/30554G06F17/30864G06F17/30867G06F21/31G06F21/6227H04L63/083H04L63/0815H04L63/102
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,479,494
App. No.
14/930,475
Granted
Oct 25, 2016
Kind
B2
Abstract

A flexible and extensible architecture allows for secure searching across an enterprise. Such an architecture can provide a simple Internet-like search experience to users searching secure content inside (and outside) the enterprise. The architecture allows for the crawling and searching of a variety of sources across an enterprise, regardless of whether any of these sources conform to a conventional user role model. The architecture further allows for security attributes to be received at query time, for example, in order to provide real-time secure access to enterprise resources. The user query also can be transformed to provide for dynamic querying that provides for a more current result list than can be obtained for static queries.

Claims (64)

1. A method for building and using a secure index to service queries for a plurality of secure data stores, the method comprising:

crawling, by a computer system, the plurality of secure data stores residing on a plurality of different computer systems;

generating, by the computer system, an index of a plurality of documents from across the plurality of data stores, wherein:

each of the plurality of documents is associated with one or more security attributes; and

each of the one or more security attributes for each of the plurality of documents is associated with a set of acceptable security attribute values;

storing, by the computer system, in the index, for each document in the plurality of documents, the one or more security attributes of the document and each corresponding set of acceptable security attribute values;

receiving, by the computer system, a query from a client device;

in response to receiving the query, obtaining, by the computer system, security information for a user of the client device, the security information comprising one or more security attributes of the user and one or more security attribute values for each of the one or more security attributes of the user;

selecting, by the computer system, each document in the index that is responsive to the query and where, for each of the one or more security attributes of the document:

the security attribute of the document matches at least one of the one or more security attributes of the user; and

at least one of the one or more security attribute values of the at least one of the one or more security attributes of the user falls within the set of acceptable security attribute values of the security attribute of the document; and

transmitting, by the computer system, each selected document in the index as a result set to the client device to service the query from the client device.

2. The method of claim 1 , wherein the plurality of secure data stores reside both inside of an enterprise and outside of the enterprise.

3. The method of claim 1 , wherein the security information for the user is obtained from an identity management system associated with at least one of the plurality of secure data sources.

4. The method of claim 1 , wherein the one or more security attributes includes at least one grant attribute for one deny attribute.

5. The method of claim 1 , wherein the one or more security attribute values of the user comprises a role, a group, or a project associated with the user.

6. The method of claim 1 , further comprising:

receiving, by the computer system, user identification information for the user;

providing, by a computer system, the user identification information to a plurality of identity management systems, wherein each of the plurality of identity management systems receives the user identification information through a respective Application Program Interface (API); and

validating, by a computer system, the user against at least one identity management system in the plurality of identity management systems.

7. The method of claim 6 , wherein a number or type of objects required from the user identification information by a first identity management system in the plurality of identity management systems is different from a number or type of objects required from the user identification information by a second identity management system in the plurality of identity management systems.

8. A non-transitory, computer-readable storage medium comprising instructions that, when executed by one or more processors, cause the one or more processors to build and use a secure index to service queries for a plurality of secure data stores by performing operations comprising:

crawling the plurality of secure data stores residing on a plurality of different computer systems;

generating an index of a plurality of documents from across the plurality of data stores, wherein:

each of the plurality of documents is associated with one or more security attributes; and

each of the one or more security attributes for each of the plurality of documents is associated with a set of acceptable security attribute values;

storing, in the index, for each document in the plurality of documents, the one or more security attributes of the document and each corresponding set of acceptable security attribute values;

receiving a query from a client device;

in response to receiving the query, obtaining security information for a user of the client device, the security information comprising one or more security attributes of the user and one or more security attribute values for each of the one or more security attributes of the user;

selecting each document in the index that is responsive to the query and where, for each of the one or more security attributes of the document:

the security attribute of the document matches at least one of the one or more security attributes of the user; and

at least one of the one or more security attribute values of the at least one of the one or more security attributes of the user falls within the set of acceptable security attribute values of the security attribute of the document; and

transmitting each selected document in the index as a result set to the client device to service the query from the client device.

9. The non-transitory, computer-readable storage medium of claim 8 , wherein the plurality of secure data stores reside both inside of an enterprise and outside of the enterprise.

10. The non-transitory, computer-readable storage medium of claim 8 , wherein the security information for the user is obtained from an identity management system associated with at least one of the plurality of secure data sources.

11. The non-transitory, computer-readable storage medium of claim 8 , wherein the one or more security attributes includes at least one grant attribute for one deny attribute.

12. The non-transitory, computer-readable storage medium of claim 8 , wherein the one or more security attribute values of the user comprises a role, a group, or a project associated with the user.

13. The non-transitory, computer-readable storage medium of claim 8 , comprising additional instructions that cause the one or more processors to perform additional operations comprising:

receiving, by the computer system, user identification information for the user;

providing, by a computer system, the user identification information to a plurality of identity management systems, wherein each of the plurality of identity management systems receives the user identification information through a respective Application Program Interface (API); and

validating, by a computer system, the user against at least one identity management system in the plurality of identity management systems.

14. The non-transitory, computer-readable storage medium of claim 13 , wherein a number or type of objects required from the user identification information by a first identity management system in the plurality of identity management systems is different from a number or type of objects required from the user identification information by a second identity management system in the plurality of identity management systems.

15. A system comprising:

one or more hardware processors; and

one or more memory devices comprising instructions that, when executed by the one or more processors, cause the one or more processors to build and use a secure index to service queries for a plurality of secure data stores by configuring the one or more processors to:

crawl the plurality of secure data stores residing on a plurality of different computer systems;

generate an index of a plurality of documents from across the plurality of data stores, wherein:

each of the plurality of documents is associated with one or more security attributes; and

each of the one or more security attributes for each of the plurality of documents is associated with a set of acceptable security attribute values;

store, in the index, for each document in the plurality of documents, the one or more security attributes of the document and each corresponding set of acceptable security attribute values;

receive a query from a client device;

in response to receiving the query, obtain security information for a user of the client device, the security information comprising one or more security attributes of the user and one or more security attribute values for each of the one or more security attributes of the user;

select each document in the index that is responsive to the query and where, for each of the one or more security attributes of the document:

the security attribute of the document matches at least one of the one or more security attributes of the user; and

at least one of the one or more security attribute values of the at least one of the one or more security attributes of the user falls within the set of acceptable security attribute values of the security attribute of the document; and

transmit each selected document in the index as a result set to the client device to service the query from the client device.

16. The system of claim 15 , wherein the plurality of secure data stores reside both inside of an enterprise and outside of the enterprise.

17. The system of claim 15 , wherein the security information for the user is obtained from an identity management system associated with at least one of the plurality of secure data sources.

18. The system of claim 15 , wherein the one or more security attributes includes at least one grant attribute for one deny attribute.

19. The system of claim 15 , wherein the one or more security attribute values of the user comprises a role, a group, or a project associated with the user.

20. The system of claim 15 , comprising additional instructions that configure the one or more processors to

receive, by the computer system, user identification information for the user;

provide, by a computer system, the user identification information to a plurality of identity management systems, wherein each of the plurality of identity management systems receives the user identification information through a respective Application Program Interface (API); and

validate, by a computer system, the user against at least one identity management system in the plurality of identity management systems.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2015
From: KRISHNAPRASAD, MURALIDHAR; DAVIS, MARK; TURE, MARK; HSIN, CINDY; BHAVSAR, MEETEN; KOIDE, HIROSHI; DELGADO, JOAQUIN; YANG, CHI-MING; NIMANI, VISAR; OUYANG, HUI; BHATKAR, SACHIN; CHANG, THOMAS
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 036969/0084 →
Continuity (5)
Continuation 11680530 · Feb 28, 2007
Provisional Application 60778151 · Mar 1, 2006
Provisional Application 60777988 · Mar 1, 2006
Provisional Application 60800737 · May 16, 2006
Related Publication 20160055209A1 · Feb 25, 2016