Technique for efficiently evaluating a security policy
First Claim
1. A computer-executed method for efficiently evaluating a security policy, comprising:
- starting a session for a user;
identifying a first role associated with the user;
determining that a cached entry specific to the user does not exist in a session-level cache, wherein the cached entry corresponds to a set of access control entries (ACEs) that is in compliance with the first role;
a first set of ACEs associated with the first role for the user from an access control list (ACL); and
storing the generated first set of ACEs as the cached entry in the session-level cache, by storing a grant bit vector that indicates privileges granted to the first role and a deny bit vector that indicates privileges denied to the first role, wherein a grant bit in the grant bit vector and a corresponding deny bit in the deny bit vector jointly indicate whether an associated privilege is granted,denied, or undetermined, and wherein when the associated privilege is undetermined, the corresponding grant bit and deny bit are both “
1”
or “
0;
”
associating the user with a second role;
generating a second set of ACEs based on the second role; and
updating the session-level cache by storing the second set of ACEs;
wherein associating the user with the second role comprises at least on of;
allowing a system administrator change the first role, having a process temporarily enable the second role, and having the first role expire because of a time limit.
1 Assignment
0 Petitions
Accused Products
Abstract
One embodiment of the present invention provides a system for efficiently evaluating a security policy. During operation, the system retrieves one or more roles associated with the user. Next, the system checks if a session-level cache exists for a set of Access Control Entries (ACEs) which is associated with the one or more roles. If this session-level cache exists, the system returns the set of ACEs from the session-level cache. Otherwise, the system generates the set of ACEs associated with the one or more roles from an Access Control List (ACL). During operation, the system can also update the one or more roles associated with the user and update the set of ACEs based on the updated one or more roles and the ACL. The system subsequently updates the session level cache with the updated set of ACEs and updated one or more roles.
-
Citations
15 Claims
-
1. A computer-executed method for efficiently evaluating a security policy, comprising:
-
starting a session for a user; identifying a first role associated with the user; determining that a cached entry specific to the user does not exist in a session-level cache, wherein the cached entry corresponds to a set of access control entries (ACEs) that is in compliance with the first role; a first set of ACEs associated with the first role for the user from an access control list (ACL); and storing the generated first set of ACEs as the cached entry in the session-level cache, by storing a grant bit vector that indicates privileges granted to the first role and a deny bit vector that indicates privileges denied to the first role, wherein a grant bit in the grant bit vector and a corresponding deny bit in the deny bit vector jointly indicate whether an associated privilege is granted, denied, or undetermined, and wherein when the associated privilege is undetermined, the corresponding grant bit and deny bit are both “
1”
or “
0;
”associating the user with a second role; generating a second set of ACEs based on the second role; and updating the session-level cache by storing the second set of ACEs; wherein associating the user with the second role comprises at least on of; allowing a system administrator change the first role, having a process temporarily enable the second role, and having the first role expire because of a time limit. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer system for evaluating a security policy, comprising a micro-processor, a memory, and a storage storing instructions which when executed by the micro-processor causes the micro-processor to perform a method, the method comprising:
-
retrieving a first role associated with a user; determining whether a cached entry specific to the user exists in a session-level cache, wherein the cached entry corresponds to a set of access control entries (ACEs) that is in compliance with the first role; in response to the cached entry not being in the session-level cache, generating a first set of ACEs associated with the first role for the user from an access control list (ACL); storing the generated first set of ACEs as the cached entry, by storing a grant bit vector that indicates privileges granted to the first role and a deny bit vector that indicates privileges denied to the first role associated with the first set of ACEs, wherein a grant bit in the grant bit vector and a corresponding deny bit in the deny bit vector jointly indicate whether an associated privilege is granted, denied, or undetermined, and wherein when the associated privilege is undetermined, the corresponding grant bit and deny bit are both “
1”
or “
0;
”associating the user with a second role; generating a second set of ACEs based on the second role; and updating the session-level cache by storing the second set of ACEs; wherein associating the user with the second role comprises at least on of; allowing a system administrator change the first role, having a process temporarily enable the second role, and having the first role expire because of a time limit. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A non-transitory computer-readable storage device storing instructions that when executed by a computer cause the computer to perform a method for optimizing CPU cost of security policy evaluation, the method comprising:
-
starting a session for a user; identifying a first role associated with the user; determining that a cached entry specific to the user exists in a session-level cache, wherein the cached entry corresponds to a set of access control entries (ACEs) that is in compliance with the first role; generating a first set of ACEs associated with the first role for the user from an access control list (ACL); and storing the generated first set of ACEs as the cached entry in the session-level cache, by storing a grant bit vector that indicates privileges granted to the first role and a deny bit vector that indicates privileges denied to the first role wherein a grant bit in the grant bit vector and a corresponding deny bit in the deny bit vector jointly indicate whether an associated privilege is granted, denied, or undetermined, and wherein when the associated privilege is undetermined, the corresponding grant bit and deny bit are both “
1”
or “
0;
”associating the user with a second role; generating a second set of ACEs based on the second role; and updating the session-level cache by storing the second set of ACEs; wherein associating the user with the second role comprises at least on of; allowing a system administrator change the first role, having a process temporarily enable the second role, and having the first role expire because of a time limit. - View Dependent Claims (12, 13, 14, 15)
-
Specification