IP Library Granted Patent US 9,405,922
Granted Patent B2
US 9,405,922 · App. 12/348,832 · Granted Aug 2, 2016

Computer-implemented method for role discovery and simplification in access control systems

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,405,922
App. No.
12/348,832
Granted
Aug 2, 2016
Kind
B2
Abstract

A method includes selecting a first biclique role in a plurality of roles and finding all roles in the plurality that have a set of vertices of a second type that is a subset of a set of vertices of the second type in the first role; removing each of the subsets from the set of vertices of the second type corresponding to the first role; and reassigning the vertices of the first type to the roles such that original associations between the vertices of the first type and the vertices of the second type are maintained.

Claims (53)

1. A method of migrating an electronic access control system for a number of available electronic resources from an Access Control List to a Role-Based Access Control (RBAC) system, the method comprising, with a processor:

discovering a plurality of roles, wherein each of said roles is a biclique covering of a set of vertices of a first type and a corresponding set of vertices of a second type;

selecting a first role in said plurality and finding all roles in said plurality that have a set of vertices of said second type that is a subset of said set of vertices of said second type in said first role;

removing each of said subsets from said set of vertices of said second type corresponding to said first role;

reassigning said vertices of said first type to said roles such that original associations between said vertices of said first type and said vertices of said second type are maintained; and

performing access control for the available electronic resources using said roles and vertices in an RBAC system.

2. The method of claim 1 , further comprising:

determining if said first role is empty after said subsets are removed from said set of vertices of said second type corresponding to said first role; and

deleting said first role if said removal leaves said first role empty.

3. The method of claim 1 , further comprising:

repeating said selecting, finding, removing, and reassigning until a second stopping criterion is met; and

substituting said vertices of said second type for said vertices of said first type and said vertices of said first type for said vertices of said second type every other time a first stopping criterion is met.

4. The method of claim 3 , wherein said first stopping criterion comprises at least one of: a threshold of elapsed time and a determination that that no additional role exists having a set of vertices of said second type that is a subset of a set of vertices of said second type in another role.

5. The method of claim 3 , wherein said second stopping criterion comprises at least one of: a threshold number of iterations, a threshold amount of elapsed time, and a threshold degree of convergence of a number of said roles.

6. The method of claim 1 , wherein said vertices of said first type correspond to individual users and said vertices of said second type correspond to resources for which access is granted to said users, as specified by said roles.

7. A system for implementing a Role-Based Access Control (RBAC) system for a number of electronic resources, the system comprising:

digital memory configured to store at least a plurality of vertices of a first type, a plurality of vertices of a second type, and a plurality of biclique roles associating sets of said vertices of said first type with sets of said vertices of said second type; and

at least one processor in communication with said memory, said processor being configured to:

select a first role in said plurality of biclique roles and find all roles in said plurality of biclique roles that have a set of vertices of said second type that is a subset of said set of vertices of said second type in said first role;

remove each of said subsets from said set of vertices of said second type corresponding to said first role;

reassign said vertices of said first type to said roles such that original associations between said vertices of said first type and said vertices of said second type are maintained; and

perform access control for the available electronic resources using said roles and vertices in an RBAC system.

8. The system of claim 7 , wherein said processor is further configured to:

determine if said first role is empty after said subsets are removed from said set of vertices of said second type corresponding to said first role; and

delete said first role if said removal leaves said first role empty.

9. The system of claim 7 , wherein said processor further configured to:

repeat said selecting, finding, removing, and reassigning until a second stopping criterion is met; and

substitute said vertices of said second type for said vertices of said first type and said vertices of said first type for said vertices of said second type every other time a first stopping criterion is met.

10. The system of claim 8 , wherein said first stopping criterion comprises at least one of: a threshold of elapsed time and a determination that that no additional role exists having a set of vertices of said second type that is a subset of a set of vertices of said second type in another role.

11. The system of claim 9 , wherein said second stopping criterion comprises at least one of: a threshold number of iterations, a threshold amount of elapsed time limit, and a threshold degree of convergence of a number of said roles.

12. The system of claim 7 , wherein said vertices of said first type correspond to users and said vertices of said second type correspond to resources for which access is granted to certain of said users, as specified by said roles.

13. A computer program product comprising:

a non-transitory computer readable device having computer usable program code embodied therewith, the computer usable program code comprising:

computer usable program code configured to discover a plurality of roles, wherein each of said roles is a biclique covering of a set of vertices of a first type and a corresponding set of vertices of a second type;

computer usable program code configured to select a first role in said plurality and find all roles in said plurality that have a set of vertices of said second type that is a subset of said set of vertices of said second type in said first role;

computer usable program code configured to remove each of said subsets from said set of vertices of said second type corresponding to said first role;

computer usable program code configured to reassign said vertices of said first type to said roles such that original associations between said vertices of said first type and said vertices of said second type are maintained; and

computer usable program code configured to perform access control for the available electronic resources using said roles and vertices in an RBAC system.

14. The computer program product of claim 13 , further comprising:

computer usable program code configured to determine if said first role is empty after said subset is removed from said set of vertices of said second type corresponding to said first role; and

computer usable program code configured to delete said first role if said removal leaves said first role empty.

15. The computer program product of claim 13 , further comprising:

computer usable program code configured to repeat said selecting, finding, removing, and reassigning steps until a first stopping criterion is met;

computer usable program code configured to substitute said vertices of said first type with said vertices of said second type in said finding, removing, and adding steps every other time said first criterion is met.

16. The computer program product of claim 13 , further comprising:

computer usable program code configured to create a new role covering a set of permissions associated with a user account of said first type that are not yet covered with another role associated with said user account.

17. The computer program product of claim 16 , further comprising:

computer usable program code configured to assign said new role to said user account so that all permissions needed for said user account are covered.

18. The computer program product of claim 17 , further comprising:

computer usable program code configured to find other user accounts who need access to said permissions.

19. The computer program product of claim 18 , further comprising:

computer usable program code configured to assign said new role to said other user accounts.

20. The computer program product of claim 16 , wherein vertices of said first type are user accounts.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 057650/0537 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2009
From: SCHREIBER, ROBERT S.; HORNE, WILLIAM G.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 022059/0423 →