IP Library Granted Patent US 12,468,639
Granted Patent B2
US 12,468,639 · App. 18/094,845 · Granted Nov 11, 2025

Privilege level assignments to groups

Inventors: Naama Kraus (Haifa, IL); Moshe Israel (Ramat-Gan, IL); Tamer Salman (Haifa, IL); Moshe Shalala (Rishon Lezion, IL); Rotem Lurie (Tel Aviv, IL); Avihai Dvir (Bruchin, IL)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F12/1491G06F9/45533G06F9/468G06F21/6218G06F2221/2141
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 12,468,639
App. No.
18/094,845
Granted
Nov 11, 2025
Kind
B2
Abstract

According to examples, an apparatus may include a memory on which is stored machine-readable instructions that may cause a processor to determine, for each of a plurality of members in a group, a respective least privilege level for a resource and determine, based on the determined respective least privilege levels, a privilege level to be assigned to the group for the resource. The instructions may also cause the processor to assign the determined privilege level to the group for the resource and apply the assigned privilege level to the members of the group for the resource.

Claims (86)

1 . An apparatus comprising:

a processor; and

a memory on which is stored machine-readable instructions that, when executed by the processor, cause the processor to:

query an access log stored in a distributed access store to identify a plurality of members that perform a common duty or function;

determine historical usage of a plurality of resources that one or more members of the plurality of members has accessed;

determine a plurality of privilege levels associated with the plurality of members for accessing one or more of the plurality of resources;

determine a plurality of lowest privilege levels of the plurality of privilege levels that a first subset of members of the plurality of members have used to access data on a first resource of the plurality of resources to perform the common duty or function based on historical usage of the first resource;

determine that a majority of the first subset of members comprise a lowest privilege level from the plurality of the lowest privilege levels;

assign the lowest privilege level as an assigned privilege level to the plurality of members, wherein for the assigned privilege level comprises a highest access level that each member in the plurality of members is assigned to access the data on the first resource;

determine a count of members in the plurality of members who used one or more privilege levels that are lower than the assigned privilege level over a predefined time period;

iteratively partition the plurality of members into a plurality of subgroups based on a determination that the count exceeds a predefined threshold value,;

assign members of the plurality of members who did not use the one or more privilege levels that are lower than the assigned privilege level to a first sub-group of the plurality of sub-groups;

assign members of the plurality of members who used the one or more privilege levels that are lower than the assigned privilege level to a second sub-group of the plurality of subgroups; and

modify the assigned privilege level stored in a data store for a second subset of members in the second sub-group to a lower privilege level than the assigned privilege level, thereby restricting access to the first resource by the second subset of members in the second sub-group to the lower privilege level.

2 . The apparatus of claim 1 , wherein the instructions cause the processor to:

based on a determination that the count does not exceed the predefined threshold value, determine that the assigned privilege level of the plurality of members is not to be modified;

identify a member of the plurality of members that used a privilege level that is lower than the assigned privilege level of the plurality of members;

assign the privilege level that is lower than the assigned privilege level of the plurality of members to the identified member for accessing the first resource; and

apply the privilege level that is lower than the assigned privilege level of the plurality of members to the identified member for accessing the first resource.

3 . The apparatus of claim 1 , wherein the instructions cause the processor to:

identify any of the members of the plurality of members who used a privilege level that exceeds the assigned privilege level of the plurality of members for accessing the first resource; and

assign and apply the privilege level that exceeds the assigned privilege level of the plurality of members to the identified members of the plurality of members for accessing the first resource.

4 . The apparatus of claim 1 , wherein the instructions cause the processor to:

determine whether partitioning the plurality of members exceeds a complexity threshold; and

partition the plurality of members into the first sub-group and the second sub-group based on a determination that the partitioning does not exceed the complexity threshold.

5 . The apparatus of claim 1 , wherein the instructions cause the processor to:

determine a privilege level assigned to each of the members in the plurality of members for usage of a second resource;

determine, based on the privilege level assigned to each of the members in the plurality of members for usage of the second resource, a second privilege level to be assigned to the plurality of members for usage of the second resource;

assign the second privilege level to the plurality of members for usage of the second resource; and

apply the second privilege level to the plurality of members for usage of the second resource.

6 . A method comprising:

querying, by a processor, an access log stored in a distributed access store to identify a plurality of members that perform a common duty or function;

determining, by the processor, historical usage of a plurality of resources that one or more members of the plurality of members has accessed;

determining, by the processor, a plurality of privilege levels associated with the plurality of members for accessing one or more of the plurality of resources;

determining, by the processor, a plurality of lowest privilege levels of the plurality of privilege levels that a first subset of members of the plurality of members have used to access data on a first resource of the plurality of resources to perform the common duty or function based on historical usage of the first resource;

determining, by the processor, that a majority of the first subset of members comprise a lowest privilege level from the plurality of privilege levels;

assigning, by the processor, the lowest privilege level as an assigned privilege level to the plurality of the members, wherein the assigned privilege level comprises a highest access level that each member in the plurality of members is assigned to access the data on the first resource;

determining, by the processor, a count of members in the plurality of members who used one or more privilege levels that are lower than the assigned privilege level over a predefined time period;

iteratively partitioning, by the processor, the plurality of members into a plurality of subgroups based on a determination that the count does not exceed a predefined threshold value;

assigning, by the processor, members of the plurality of members who did not use the one or more privilege levels that are lower than the assigned privilege level to a first sub-group of the plurality of sub-groups;

assigning, by the processor, members of the plurality of members who used the one or more privilege levels that are lower than the assigned privilege level to a second sub-group of the plurality of sub-groups a second sub-group of the plurality of subgroups; and

modifying, by the processor, the assigned privilege level stored in a data store for a second subset of members in the second sub-group to a lower privilege level than the assigned privilege level, thereby restricting access to the first resource by the second subset of members in the second sub-group to the lower privilege level.

7 . The method of claim 6 , further comprising:

based on a determination that the count does not exceed the predefined threshold value, determining that the assigned privilege level of the plurality of members is not to be modified;

identifying a member of the plurality of members that used a privilege level that is lower than the assigned privilege level of the plurality of members;

assigning the privilege level that is lower than the assigned privilege level of the plurality of members to the identified member for accessing the first resource;

and applying the privilege level that is lower than the assigned privilege level of the plurality of members to the identified member for accessing the first resource.

8 . The method of claim 6 , further comprising:

identifying any of the members of the plurality of members who used a privilege level that exceeds the assigned privilege level of the plurality of members for accessing the first resource; and

assigning and apply the privilege level that exceeds the assigned privilege level of the plurality of members to the identified members of the plurality of members for accessing the first resource.

9 . The method of claim 6 , further comprising:

determining whether partitioning the plurality of members exceeds a complexity threshold; and

partitioning the plurality of members into the first sub-group and the second sub-group based on a determination that the partitioning does not exceed the complexity threshold.

10 . The method of claim 6 , further comprising:

determining a privilege level assigned to each of the members in the plurality of members for usage of a second resource;

determining, based on the privilege level assigned to each of the members in the plurality of members for usage of the second resource, a second privilege level to be assigned to the plurality of members for usage of the second resource;

assigning the second privilege level to the plurality of members for usage of the second resource; and

applying the second privilege level to the plurality of members for usage of the second resource.

11 . A non-transitory computer readable storage medium storing instructions that, when executed by a processor, cause the processor to:

query an access log stored in a distributed access store to identify a plurality of members that perform a common duty or function;

determine historical usage of a plurality of resources that one or more members of the plurality of members has accessed;

determine a plurality of privilege levels associated with the plurality of members for accessing one or more of the plurality of resources;

determine a plurality of lowest privilege levels of the plurality of privilege levels that a first subset of members of the plurality of members have used to access data on a first resource of the plurality of resources to perform the common duty or function based on historical usage of the first resource;

determine that a majority of the first subset of members comprise a lowest privilege level from the plurality of the lowest privilege levels;

assign the lowest privilege level as an assigned privilege level to the plurality of members, wherein for the assigned privilege level comprises a highest access level that each member in the plurality of members is assigned to access the data on the first resource;

determine a count of members in the plurality of members who used one or more privilege levels that are lower than the assigned privilege level over a predefined time period;

iteratively partition the plurality of members into a plurality of sub-groups based on a determination that the count exceeds a predefined threshold value,;

assign members of the plurality of members who did not use the one or more privilege levels that are lower than the assigned privilege level to a first sub-group of the plurality of sub-groups;

assign members of the plurality of members who used the one or more privilege levels that are lower than the assigned privilege level to a second sub-group of the plurality of sub-groups; and

modify the assigned privilege level stored in a data store for a second subset of members in the second sub-group to a lower privilege level than the assigned privilege level, thereby restricting access to the first resource by the second subset of members in the second sub-group to the lower privilege level.

12 . The non-transitory computer readable storage medium of claim 11 , wherein the instructions cause the processor to:

based on a determination that the count does not exceed the predefined threshold value, determine that the assigned privilege level of the plurality of members is not to be modified;

identify a member of the plurality of members that used a privilege level that is lower than the assigned privilege level of the plurality of members;

assign the privilege level that is lower than the assigned privilege level of the plurality of members to the identified member for accessing the first resource; and

apply the privilege level that is lower than the assigned privilege level of the plurality of members to the identified member for accessing the first resource.

13 . The non-transitory computer readable storage medium of claim 11 , wherein the instructions cause the processor to:

identify any of the members of the plurality of members who used a privilege level that exceeds the assigned privilege level of the plurality of members for accessing the first resource; and

assign and apply the privilege level that exceeds the assigned privilege level of the plurality of members to the identified members of the plurality of members for accessing the first resource.

14 . The non-transitory computer readable storage medium of claim 11 , wherein the instructions cause the processor to:

determine whether partitioning the plurality of members exceeds a complexity threshold; and

partition the plurality of members into the first sub-group and the second sub-group based on a determination that the partitioning does not exceed the complexity threshold.

15 . The non-transitory computer readable storage medium of claim 11 , wherein the instructions cause the processor to:

determine a privilege level assigned to each of the members in the plurality of members for usage of a second resource;

determine, based on the privilege level assigned to each of the members in the plurality of members for usage of the second resource, a second privilege level to be assigned to the plurality of members for usage of the second resource;

assign the second privilege level to the plurality of members for usage of the second resource; and

apply the second privilege level to the plurality of members for usage of the second resource.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2023
From: KRAUS, NAAMA; ISRAEL, MOSHE; SALMAN, TAMER; SHALALA, MOSHE; LURIE, ROTEM; DVIR, AVIHAI
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 062317/0791 →
Continuity (2)
Continuation 16907026 · Jun 19, 2020
Related Publication 20230161716A1 · May 25, 2023
References Cited (34)
US 6119188A · Sheafor · 2000 [cited by examiner]
US 6330603B1 · Seki · 2001 [cited by examiner]
US 6665760B1 · Dotson · 2003 [cited by examiner]
US 6775781B1 · Phillips · 2004 [cited by examiner]
US 6883132B1 · Dotson · 2005 [cited by examiner]
US 7082315B2 · Bar-On · 2006 [cited by examiner]
US 7933249B2 · Amalfitano · 2011 [cited by examiner]
US 10116679B1 · Wu · 2018 [cited by examiner]
US 10313196B2 · Vibhor · 2019 [cited by examiner]
US 10908909B2 · Moudgill · 2021 [cited by examiner]
US 10992744B1 · Kutuzov · 2021 [cited by examiner]
US 11115873B1 · Smith · 2021 [cited by examiner]
US 11580037B2 · Kraus · 2023 [cited by examiner]
US 20010033557A1 · Amalfitano · 2001 [cited by examiner]
US 20030137536A1 · Hugh · 2003 [cited by examiner]
US 20030227487A1 · Hugh · 2003 [cited by examiner]
US 20050198512A1 · Kline · 2005 [cited by examiner]
US 20050271048A1 · Casey · 2005 [cited by examiner]
US 20060117130A1 · Tsushima · 2006 [cited by examiner]
US 20100091724A1 · Ishii · 2010 [cited by examiner]
US 20110231536A1 · Tanaka · 2011 [cited by examiner]
US 20140359692A1 · Chari · 2014 [cited by examiner]
US 20150189114A1 · Hayakawa · 2015 [cited by examiner]
US 20150310188A1 · Ford · 2015 [cited by examiner]
US 20160080920A1 · Baghel · 2016 [cited by examiner]
US 20170041296A1 · Ford · 2017 [cited by examiner]
US 20170337091A1 · Liu · 2017 [cited by examiner]
US 20180351888A1 · Howard · 2018 [cited by examiner]
US 20180359654A1 · McDonald · 2018 [cited by examiner]
US 20200257639A1 · Chamarty · 2020 [cited by examiner]
US 20210075795A1 · Liu · 2021 [cited by examiner]
US 20210409419A1 · Kraus · 2021 [cited by examiner]
Communication under Rule 71(13) Received in European Patent Application No. 21721767.8, mailed on Sep. 2, 2024, 09 pages. [cited by applicant]
Decision to Grant Received for European Application No. 21721767.8, mailed Nov. 21, 2024, 2 pages. [cited by applicant]