IP Library Granted Patent US 11,062,016
Granted Patent B2
US 11,062,016 · App. 14/695,827 · Granted Jul 13, 2021

Systems and methods for verifying user credentials for search

Inventors: Jagannath Kerai (Cupertino, CA); Rama Gopalan (San Jose, CA)
Assignee: Splunk Inc.
G06F21/45G06F21/30G06F21/62G06F21/6218G06F21/6227H04L63/10
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 11,062,016
App. No.
14/695,827
Granted
Jul 13, 2021
Kind
B2
Abstract

Provided are systems and methods for verifying user credentials for performing a search. In one embodiment, a method can be provided that includes receiving a request to perform a search of machine generated data comprising time stamped events that is associated with a user, determining whether a set of cached user credentials has been updated within a period of time, querying, in response to determining that the credentials for the user have not been updated within the period of time, an identity provider server for a current set of user credentials associated with the user, receiving the current set of user credentials, determining whether the user has privileges to perform the search based at least in part on the set of user credentials, and causing, in response to determining that the user has privileges to perform the search, the search to be performed to identify one or more of the events that are responsive to the search.

Claims (112)

1. A method comprising:

receiving, from a user while the user is logged onto a data search server, a scheduled search request at the data search server to perform a scheduled search of a datastore of events at a defined frequency, the data search server for receiving the scheduled search request and returning the results of the scheduled search request, each event of the datastore comprising:

a segment apportioned during ingestion to the datastore from machine data received from a particular source among a plurality of sources, and

an associated metadata timestamp determined at the time of the ingestion for the segment apportioned; and

while the user is continually logged off of the data search server:

at a first time specified by the defined frequency:

determining whether the user has privileges to perform the search based at least in part on a cached set of user credentials, the cached set of user credentials received from an identity provider server and stored in cache memory of the data search server, and

causing, in response to determining that the user has privileges to perform the scheduled search, the scheduled search to identify a first result based at least in part on a first set of one or more of the events of the machine generated data that are responsive to the scheduled search, and

at a second time specified by the defined frequency:

determining whether the cached set of user credentials has been updated within a period of time,

querying, in response to determining that the cached set of user credentials have not been updated within the period of time, the identity provider server for a current set of user credentials associated with the user,

receiving the current set of user credentials,

determining whether the user has privileges to perform the search based at least in part on the current set of user credentials, and

causing, in response to determining that the user has privileges to perform the search, the scheduled search to be performed to identify a second result based at least in part on a second set of one or more of the events of the machine generated data that are responsive to the scheduled search.

2. The method of claim 1 , further comprising:

updating the cached set of user credentials with the current set of user credentials retrieved at the second time.

3. The method of claim 1 , wherein the scheduled search request comprises an end time.

4. The method of claim 1 , further comprising:

terminating the scheduled search at the defined frequency upon receiving a termination from the user.

5. The method of claim 1 , further comprising:

updating the cached set of user credentials with the current set of user credentials retrieved at the second time; and

at a third time specified by the defined frequency and after the second time:

determining whether the user has privileges to perform the search based at least in part on the cached set of user credentials, and

causing, in response to determining that the user has privileges to perform the scheduled search, the scheduled search to identify a third result based at least in part on a third set of one or more of the events of the machine generated data that are responsive to the scheduled search.

6. The method of claim 1 , wherein querying the identity provider server for the current set of user credentials associated with the user comprises submitting, to the identity provider server, a query request identifying the user.

7. The method of claim 1 , wherein receiving the current set of user credentials comprises receiving a group identifier associated with the user.

8. The method of claim 1 ,

wherein querying the identity provider server for the current set of user credentials associated with the user comprises submitting, to the identity provider server, a query request identifying the user,

wherein receiving the current set of user credentials comprises receiving a group identifier of a group of the user, the group comprising a plurality of users comprising the user, and

wherein determining whether the user has privileges to perform the search based at least in part on the set of user credentials comprises:

accessing a mapping of groups to user roles;

determining a role of the user based on the group identifier and the mapping of groups to user roles;

determining a role allowed to initiate the search; and

comparing the role of the user to the role allowed to initiate the search to determine whether the user has privileges to perform the search.

9. The method of claim 1 , further comprising:

receiving a second set of user credentials associated with the user, wherein the second set of user credentials is provided in response to the user logging into a search application; and

updating the set of user credentials stored in the cache memory to correspond to the second set of user credentials.

10. The method of claim 1 , further comprising:

receiving a second request to perform a second search associated with the user;

determining whether a set of user credentials stored in the cache memory, have been updated within the period of time;

identifying, in response to determining that the credentials for the user have been updated within the period of time, whether the user has privileges to perform the search based at least in part on the set of user credentials stored in the cache memory; and

causing, in response to determining that the user has privileges to perform the search, the search to be performed.

11. The method of claim 1 , wherein querying the identity provider server for a current set of user credentials associated with the user comprises sending a Security Assertion Markup Language (SAML) message to the identity provider server for a current set of user credentials associated with the user.

12. The method of claim 1 , wherein receiving the current set of user credentials comprises receiving the current set of user credentials via a Security Assertion Markup Language (SAML) message sent by the identity provider server.

13. The method of claim 1 , wherein the search comprises employing late-binding schema to identify the first set of one or more of the events of the machine generated data that are responsive to the search.

14. A system comprising:

one or more processors;

cache memory; and

one or more memories comprising program instructions stored thereon that are executable by the one or more processors to cause:

receiving, from a user while the user is logged onto a data search server, a scheduled search request at the data search server to perform a scheduled search of a datastore of events at a defined frequency, the data search server for receiving the scheduled search request and returning the results of the scheduled search request, each event of the datastore comprising:

a segment apportioned during ingestion to the datastore from machine data received from a particular source among a plurality of sources, and

an associated metadata timestamp determined at the time of the ingestion for the segment apportioned, and

while the user is continually logged off of the data search server:

at a first time specified by the defined frequency:

determining whether the user has privileges to perform the search based at least in part on a cached set of user credentials, the cached set of user credentials received from an identity provider server and stored in the cache memory of the data search server, and

causing, in response to determining that the user has privileges to perform the scheduled search, the scheduled search to identify a first result based at least in part on a first set of one or more of the events of the machine generated data that are responsive to the scheduled search, and

at a second time specified by the defined frequency:

determining whether the cached set of user credentials has been updated within a period of time,

querying, in response to determining that the cached set of user credentials have not been updated within the period of time, the identity provider server for a current set of user credentials associated with the user,

receiving the current set of user credentials,

determining whether the user has privileges to perform the search based at least in part on the current set of user credentials, and

causing, in response to determining that the user has privileges to perform the scheduled search, the search to be performed to identify a second result based at least in part on a second set of one or more of the events of the machine generated data that are responsive to the scheduled search.

15. The system of claim 14 , wherein the program instructions stored thereon are further executable by the one or more processors to cause:

updating the cached set of user credentials with the current set of user credentials retrieved at the second time.

16. The system of claim 14 , wherein the scheduled search request comprises an end time.

17. The system of claim 14 , wherein the program instructions stored thereon are further executable by the one or more processors to cause:

updating the cached set of user credentials with the current set of user credentials retrieved at the second time; and

at a third time specified by the defined frequency and after the second time:

determining whether the user has privileges to perform the search based at least in part on the cached set of user credentials, and

causing, in response to determining that the user has privileges to perform the scheduled search, the scheduled search to identify a third result based at least in part on a third set of one or more of the events of the machine generated data that are responsive to the scheduled search.

18. The system of claim 14 , wherein the program instructions stored thereon are further executable by the one or more processors to cause:

receiving a second set of user credentials associated with the user, wherein the second set of user credentials is provided in response to the user logging into a search application; and

updating the set of user credentials stored in the cache memory to correspond to the second set of user credentials.

19. The system of claim 14 , wherein the program instructions stored thereon are further executable by the one or more processors to cause:

receiving a second request to perform a second search associated with the user;

determining whether a set of user credentials stored in the cache memory have been updated within the period of time;

identifying, in response to determining that the credentials for the user have been updated within the period of time, whether the user has privileges to perform the search based at least in part on the set of user credentials stored in the cache memory; and

causing, in response to determining that the user has privileges to perform the search, the search to be performed.

20. The system of claim 14 , wherein querying the identity provider server for a current set of user credentials associated with the user comprises sending a Security Assertion Markup Language (SAML) message to the identity provider server for a current set of user credentials associated with the user.

21. The system of claim 14 , wherein the search comprises employing late-binding schema to identify the first set of one or more of the events of the machine generated data that are responsive to the search.

22. One or more non-transitory computer-readable medium comprising program instructions stored thereon that are executable by one or more processors to cause:

receiving, from a user while the user is logged onto a data search server, a scheduled search request at the data search server to perform a scheduled search of a datastore of events at a defined frequency, the data search server for receiving the scheduled search request and returning the results of the scheduled search request, each event of the datastore comprising:

a segment apportioned during ingestion to the datastore from machine data received from a particular source among a plurality of sources, and

an associated metadata timestamp determined at the time of the ingestion for the segment apportioned; and

while the user is continually logged off of the data search server:

at a first time specified by the defined frequency:

determining whether the user has privileges to perform the search based at least in part on a cached set of user credentials, the cached set of user credentials received from an identity provider server and stored in cache memory of the data search server, and

causing, in response to determining that the user has privileges to perform the scheduled search, the scheduled search to identify a first result based at least in part on a first set of one or more of the events of the machine generated data that are responsive to the scheduled search, and

at a second time specified by the defined frequency:

determining whether the cached set of user credentials has been updated within a period of time,

querying, in response to determining that the credentials have not been updated within the period of time, the identity provider server for a current set of user credentials associated with the user,

receiving the current set of user credentials,

determining whether the user has privileges to perform the search based at least in part on the current set of user credentials, and

causing, in response to determining that the user has privileges to perform the search, the scheduled search to be performed to identify a second result based at least in part on a second set of one or more of the events of the machine generated data that are responsive to the scheduled search.

23. The medium of claim 22 , wherein the program instructions stored thereon are further executable by the one or more processors to cause:

updating the cached set of user credentials with the current set of user credentials retrieved at the second time.

24. The medium of claim 22 , wherein the scheduled search comprises an end time.

25. The medium of claim 22 , wherein the program instructions stored thereon are further executable by the one or more processors to cause:

updating the cached set of user credentials with the current set of user credentials retrieved at the second time; and

at a third time specified by the defined frequency and after the second time:

determining whether the user has privileges to perform the search based at least in part on the cached set of user credentials, and

causing, in response to determining that the user has privileges to perform the scheduled search, the scheduled search to identify a third result based at least in part on a third set of one or more of the events of the machine generated data that are responsive to the scheduled search.

26. The medium of claim 22 , wherein the program instructions stored thereon are further executable by the one or more processors to cause:

receiving a second set of user credentials associated with the user, wherein the second set of user credentials is provided in response to the user logging into a search application; and

updating the set of user credentials stored in the cache memory to correspond to the second set of user credentials.

27. The medium of claim 22 , wherein the program instructions stored thereon are further executable by the one or more processors to cause:

receiving a second request to perform a second search associated with the user;

determining whether a set of user credentials stored in the cache memory, have been updated within the period of time;

identifying, in response to determining that the credentials for the user have been updated within the period of time, whether the user has privileges to perform the search based at least in part on the set of user credentials stored in the cache memory; and

causing, in response to determining that the user has privileges to perform the search, the search to be performed.

28. The medium of claim 22 , wherein querying the identity provider server for a current set of user credentials associated with the user comprises sending a Security Assertion Markup Language (SAML) message to the identity provider server for a current set of user credentials associated with the user.

29. The medium of claim 22 , wherein the search comprises employing late-binding schema to identify the first set of one or more of the events of the machine generated data that are responsive to the search.

Assignments (4)
CHANGE OF NAME Recorded Jul 22, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 072170/0599 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2025
From: SPLUNK LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 072173/0058 →
CHANGE OF NAME Recorded Jan 6, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 069825/0558 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2015
From: KERAI, JAGANNATH; GOPALAN, RAMA
To: SPLUNK INC.
Reel/Frame 035492/0393 →
Cited By (1)
US 12,231,430