IP Library Granted Patent US 12,645,809
Granted Patent B2
US 12,645,809 · App. 18/365,947 · Granted Jun 2, 2026

Analyzing aggregated event data to identify and address permissions issues

Inventors: Marcio Costa, Jr. (Bothell, WA); Michael John Speer (Seattle, WA); Margaret McCormack Garland (New York, NY); Vritti Sanjesh Rohira (Mountain View, CA); Jagadeesh Kalki (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F21/604G06F21/6218H04L63/102G06F2221/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,645,809
App. No.
18/365,947
Granted
Jun 2, 2026
Kind
B2
Abstract

A computerized method analyzes permissions and identifies permission insights. A group of event records is obtained from a data source and a subgroup of event records associated with a user is identified in the obtained group of event records. The identified subgroup of event records is mapped to a group of required permissions using a permission hierarchy and a group of granted permissions of the user are identified. It is determined that the group of granted permissions of the user differs from the group of required permissions to which the subgroup of event records is mapped using the permission hierarchy. A permission insight action is performed based on determining that the group of granted permissions of the user differs from the group of required permissions. Thus, the method enables comprehensive analysis of permissions using data from multiple data sources to generate a single set of possible permission issues or insights.

Claims (65)

1 . A system comprising:

a processor; and

a memory comprising computer program code, the memory and the computer program code configured to cause the processor to:

obtain a group of event records in parallel from a plurality of data sources through a plurality of parallel data ingestion threads, the group of event records being stored in a plurality of different data formats of the plurality of data sources;

identify a subgroup of event records associated with a user in the obtained group of event records;

normalize the identified subgroup of event records from the plurality of different data formats into normalized event records in a standardized event record format, wherein normalizing includes identifying, for each event record of the subgroup of event records, a permissions associated with occurrence of an event of the event record;

map the identified subgroup of normalized event records to a group of required permissions using a permission hierarchy;

identify a group of granted permissions of the user;

determine that the group of granted permissions of the user differs from the group of required permissions to which the identified subgroup of normalized event records is mapped; and

perform a permission insight action based on determining that the group of granted permissions of the user differs from the group of required permissions.

2 . The system of claim 1 , wherein the normalized event record format includes an indicator that indicates minimum permissions required to cause an event of the associated event record.

3 . The system of claim 1 , wherein performing the permission insight action includes generating a permission report including information associated with the group of granted permissions of the user and the group of required permissions.

4 . The system of claim 1 , wherein performing the permission insight action includes sending instructions for changing permissions of the user to a system with which a data source of the plurality of data sources is associated.

5 . The system of claim 1 , wherein the memory and the computer program code are configured to further cause the processor to:

provide an interface for receiving a user-defined permission hierarchy; and

receive the permission hierarchy via the provided interface.

6 . The system of claim 1 , wherein mapping the identified subgroup of normalized event records to the group of required permissions associated with the permission hierarchy includes generating an event permission map, including:

mapping a user identifier of the user to an event collection data structure;

populating the event collection data structure with event entries associated with the identified subgroup of normalized event records associated with the user;

mapping each event entry of the event collection data structure to a required permission collection data structure; and

populating each required permission collection data structure with the group of required permissions.

7 . The system of claim 1 , wherein identifying the group of granted permissions of the user includes identifying granted permissions of a current permission grouping that is assigned to the user;

wherein determining that the group of granted permissions of the user differs from the group of required permissions to which the identified subgroup of normalized event records is mapped further includes determining a recommended permission grouping that includes the group of required permissions; and

wherein performing the permission insight action includes generating a recommendation indicating the recommended permission grouping in association with the user.

8 . A computerized method comprising:

obtaining a group of event records in parallel from a plurality of data sources through a plurality of parallel data ingestion threads, the group of event records being stored in a plurality of different data formats of the plurality of data sources;

identifying a subgroup of event records associated with a user in the obtained group of event records;

normalizing the identified subgroup of event records from the plurality of different data formats into normalized event records in a standardized event record format, wherein normalizing includes identifying, for each event record of the subgroup of event records, a permissions associated with occurrence of an event of the event record;

mapping the identified subgroup of normalized event records to a group of required permissions using a permission hierarchy;

identifying a group of granted permissions of the user;

determining that the group of granted permissions of the user is more permissive than the group of required permissions to which the identified subgroup of normalized event records is mapped using the permission hierarchy; and

performing a permission insight action based on determining that the group of granted permissions of the user is more permissive than the group of required permissions.

9 . The computerized method of claim 8 , wherein the normalized event record format includes an indicator that indicates minimum permissions required to cause an event of the associated event record.

10 . The computerized method of claim 8 , wherein performing the permission insight action includes generating a permission report including information associated with the group of granted permissions of the user and the group of required permissions.

11 . The computerized method of claim 8 , wherein performing the permission insight action includes sending instructions for changing permissions of the user to a system with which a data source of the plurality of data sources is associated.

12 . The computerized method of claim 8 , further comprising:

providing an interface for receiving a user-defined permission hierarchy; and

receiving the permission hierarchy via the provided interface.

13 . The computerized method of claim 8 , wherein mapping the identified subgroup of normalized event records to the group of required permissions associated with the permission hierarchy includes generating an event permission map, including:

mapping a user identifier of the user to an event collection data structure;

populating the event collection data structure with event entries associated with the identified subgroup of normalized event records associated with the user;

mapping each event entry of the event collection data structure to a required permission collection data structure; and

populating each required permission collection data structure with the group of required permissions.

14 . The computerized method of claim 8 , wherein identifying the group of granted permissions of the user includes identifying granted permissions of a current permission grouping that is assigned to the user;

wherein determining that the group of granted permissions of the user is more permissive than the group of required permissions to which the identified subgroup of normalized event records is mapped further includes determining a recommended permission grouping that includes the group of required permissions; and

wherein performing the permission insight action includes generating a recommendation indicating the recommended permission grouping in association with the user.

15 . A computer storage medium has computer-executable instructions that, upon execution by a processor, cause the processor to at least:

obtain a group of event records in parallel from a plurality of data sources through a plurality of parallel data ingestion threads, the group of event records being stored in a plurality of different data formats of the plurality of data sources;

identify a subgroup of event records associated with a user in the obtained group of event records;

normalize the identified subgroup of event records from the plurality of different data formats into normalized event records in a standardized event record format, wherein normalizing includes identifying, for each event record of the subgroup of event records, a permissions associated with occurrence of an event of the event record;

map the identified subgroup of normalized event records to a group of required permissions using a permission hierarchy;

identify a group of granted permissions of the user;

determine that the group of granted permissions of the user is less permissive than the group of required permissions to which the identified subgroup of normalized event records is mapped using the permission hierarchy; and

perform a permission insight action based on determining that the group of granted permissions of the user is less permissive than the group of required permissions.

16 . The computer storage medium of claim 15 , wherein the normalized event record format includes an indicator that indicates minimum permissions required to cause an event of the associated event record.

17 . The computer storage medium of claim 15 , wherein performing the permission insight action includes generating a permission report including information associated with the group of granted permissions of the user and the group of required permissions.

18 . The computer storage medium of claim 15 , wherein performing the permission insight action includes sending instructions for changing permissions of the user to a system with which a data source of the plurality of data sources is associated.

19 . The computer storage medium of claim 15 , wherein the computer-executable instructions, upon execution by the processor, further cause the processor to at least:

provide an interface for receiving a user-defined permission hierarchy; and

receive the permission hierarchy via the provided interface.

20 . The computer storage medium of claim 15 , wherein mapping the identified subgroup of normalized event records to the group of required permissions associated with the permission hierarchy includes generating an event permission map, including:

mapping a user identifier of the user to an event collection data structure;

populating the event collection data structure with event entries associated with the identified subgroup of normalized event records associated with the user;

mapping each event entry of the event collection data structure to a required permission collection data structure; and

populating each required permission collection data structure with the group of required permissions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2023
From: COSTA, MARCIO, JR.; SPEER, MICHAEL JOHN; GARLAND, MARGARET MCCORMACK; ROHIRA, VRITTI SANJESH; KALKI, JAGADEESH
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 064501/0125 →
Continuity (1)
Related Publication 20250045426A1 · Feb 6, 2025
References Cited (46)
US 8856859B2 · Kirkup · 2014 [cited by examiner]
US 9830469B1 · Anderson · 2017 [cited by examiner]
US 10043030B1 · Kruse · 2018 [cited by examiner]
US 10122757B1 · Kruse · 2018 [cited by examiner]
US 10834087B1 · Pillai · 2020 [cited by examiner]
US 10944758B1 · Nagargadde · 2021 [cited by examiner]
US 10986131B1 · Kruse · 2021 [cited by examiner]
US 11283809B2 · Bogdanich Espina et al. · 2022 [cited by applicant]
US 11388163B2 · Bargury et al. · 2022 [cited by applicant]
US 11868324B2 · Kinney, Jr. · 2024 [cited by examiner]
US 12039066B1 · Sharma · 2024 [cited by examiner]
US 12309236B1 · Frazier, Jr. · 2025 [cited by examiner]
US 20090288164A1 · Adelstein · 2009 [cited by examiner]
US 20140013400A1 · Warshavsky et al. · 2014 [cited by applicant]
US 20140215604A1 · Giblin · 2014 [cited by examiner]
US 20170163650A1 · Seigel · 2017 [cited by examiner]
US 20190253430A1 · Gamache · 2019 [cited by examiner]
US 20190392657A1 · Hadzic · 2019 [cited by examiner]
US 20200175191A1 · Nerurkar · 2020 [cited by examiner]
US 20210084040A1 · Sakowicz · 2021 [cited by examiner]
US 20220188433A1 · Hung · 2022 [cited by examiner]
US 20220224535A1 · Coffing · 2022 [cited by examiner]
US 20220271938A1 · Ip · 2022 [cited by examiner]
US 20230090190A1 · Iila et al. · 2023 [cited by applicant]
US 20230097770A1 · Dimitrova · 2023 [cited by examiner]
US 20230161871A1 · Heller · 2023 [cited by examiner]
US 20240137368A1 · Kumar · 2024 [cited by examiner]
US 20240193290A1 · Grossman · 2024 [cited by examiner]
US 20240250956A1 · Goff · 2024 [cited by examiner]
US 20240297886A1 · Kumar · 2024 [cited by examiner]
US 20240330418A1 · Montgomery · 2024 [cited by examiner]
US 20240414167A1 · Neystadt · 2024 [cited by examiner]
EP 3512155A1 · 2019 [cited by applicant]
WO 2022115176A1 · 2022 [cited by applicant]
“Analyzing Solorigate, the compromised DLL file that started a sophisticated cyberattack, and how Microsoft Defender helps protect customers”, Retrieved from: https://www.microsoft.com/en-us/security/blog/2020/12/18/ana… [cited by applicant]
“AWS CloudTrail FAQs”, Retrieved from: https://aws.amazon.com/cloudtrail/faqs/, Retrieved Date: May 16, 2023, 20 Pages. [cited by applicant]
“Azure Active Directory documentation”, Retrieved from: https://learn.microsoft.com/en-us/azure/active-directory/, Retrieved Date: Mar. 27, 2023, 3 Pages. [cited by applicant]
“Grant Access to Authentication Settings for External Data Sources”, Retrieved from: https://help.salesforce.com/s/articleView?id=sf.external_permsets_profiles.htm&type=5, Retrieved Date: May 9, 2023, 3 Pages. [cited by applicant]
“Performing Privilege Analysis to Identify Privilege Use”, Retrieved from: https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/performing-privilege-analysis-identify-privilege-use.html#GUID-44CB644B-7B59… [cited by applicant]
“Permissions Management”, Retrieved from: https://learn.microsoft.com/en-us/azure/active-directory/cloud-infrastructure-entitlement-management/, Retrieved Date: Mar. 27, 2023, 3 Pages. [cited by applicant]
“Privilege Analysis”, Retrieved from: https://www.oracle.com/database/technologies/security/priv-analysis.html, Retrieved Date: May 9, 2023, 4 Pages. [cited by applicant]
Kjerland, et al., “Overview of Microsoft 365 Lighthouse”, Retrieved from: https://learn.microsoft.com/en-us/microsoft-365/lighthouse/m365-lighthouse-overview?view=o365-worldwide, Feb. 17, 2023, 3 Pages. [cited by applicant]
Lambert, John, “The hunt for Nobelium, the most sophisticated nation-state attack in history”, Retrieved from: https://www.microsoft.com/en-us/security/blog/2021/11/10/the-hunt-for-nobelium-the-most-sophisticated-nation… [cited by applicant]
Omondi, et al., “Understanding delegated access”, Retrieved from: https://learn.microsoft.com/EN-US/azure/active-directory/develop/delegated-access-primer, Mar. 15, 2023, 5 Pages. [cited by applicant]
Ravat, et al., “Introduction to granular delegated admin privileges (GDAP)”, Retrieved from: https://learn.microsoft.com/en-us/partner-center/gdap-introduction, Mar. 22, 2023, 2 Pages. [cited by applicant]
Vala, et al., “Delegated administration privileges (DAP) FAQ”, Retrieved from: https://learn.microsoft.com/en-us/partner-center/dap-faq, Mar. 2, 2023, 6 Pages. [cited by applicant]