IP Library Granted Patent US 12,093,365
Granted Patent B2
US 12,093,365 · App. 16/939,721 · Granted Sep 17, 2024

Transactional, constraint-based system and method for effective authorization

Inventors: Henning Korsholm Rohde (Seattle, WA); William C. Neubauer, III (Brier, WA); Rafael de Jesús Fernández Moctezuma (Kirkland, WA)
Assignee: Google LLC
G06F21/44G06F21/62
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,093,365
App. No.
16/939,721
Granted
Sep 17, 2024
Kind
B2
Abstract

A new transactional, constraint-based system is provided to define and maintain authorization policies. Constraints are expressed as user-defined, domain-specific programs that operate on authoritative representations of entities and administrative hierarchies.

Claims (39)

1. A system for ensuring consistency in authorization across different software systems in an organization, the system comprising:

one or more memories storing a correlation of various representations of an individual across the different software systems in the organization;

one or more processors in communication with the one or more memories, the one or more processors configured to:

receive, for each of the different software systems, relational information regarding a relationship of different entities in the organization, wherein each of the different entities has a defined set of authorizations;

receive, for each of the different software systems, one or more constraints associated with the relational information;

receive, from an author, a change to the authorizations in a first one of the different software systems;

compute, based on the change to the authorizations in the first one of the different software systems and the one or more constraints, corresponding changes to the relational information for other ones of the different software systems; and

automatically update the other ones of the different software systems with the corresponding changes.

2. The system of claim 1 , wherein the different entities are one of jobs, teams, roles, individuals, or tasks.

3. The system of claim 1 , wherein the relational information comprises hierarchical information.

4. The system of claim 3 , wherein the hierarchical information comprises one or more trees.

5. The system of claim 1 , wherein the one or more processors are further configured to detect inconsistencies among the one or more constraints for the different software systems.

6. The system of claim 1 , wherein the defined set of authorizations defines at least one or permissions or responsibilities associated with the entity.

7. The system of claim 1 , wherein computing the corresponding changes comprises applying a domain-specific programming language.

8. The system of claim 7 , wherein the programming language is strictly typed against a global dynamically-bound type state.

9. The system of claim 7 , wherein computing the corresponding changes comprises transactionally managing policy programs as data.

10. The system of claim 7 , wherein the programming language is applied along with trees to allow extensive static analysis to avoid re-evaluating all constraints for every change.

11. A method for ensuring consistency in authorization across different software systems in an organization, the method comprising:

storing a correlation of various representations of an individual across the different software systems in the organization;

receiving, at one or more processors, for each of the different software systems, relational information regarding a relationship of different entities in the organization, wherein each of the different entities has a defined set of authorizations;

receiving, at the one or more processors, for each of the different software systems, one or more constraints associated with the relational information;

receiving, at the one or more processors, from an author, a change to the authorizations in a first one of the different software systems;

computing, at the one or more processors, based on the change to the authorizations in the first one of the different software systems and the one or more constraints, corresponding changes to the relational information for other ones of the different software systems; and

automatically updating the other ones of the different software systems with the corresponding changes.

12. The method of claim 11 , wherein the different entities are one of jobs, teams, roles, individuals, or tasks.

13. The method of claim 11 , wherein the relational information comprises hierarchical information.

14. The method of claim 13 , wherein the hierarchical information comprises one or more trees.

15. The method of claim 11 , further comprising detecting inconsistencies among the one or more constraints for the different software systems.

16. The method of claim 11 , wherein the defined set of authorizations defines at least one or permissions or responsibilities associated with the entity.

17. The method of claim 11 , wherein computing the corresponding changes comprises applying a domain-specific programming language.

18. The method of claim 17 , wherein the programming language is strictly typed against a global dynamically-bound type state.

19. The method of claim 17 , wherein the programming language is applied along with trees to allow extensive static analysis to avoid re-evaluating all constraints for every change.

20. A non-transitory computer-readable medium storing instructions executable by one or more processors for performing a method for ensuring consistency in authorization across different software systems in an organization, the method comprising:

storing a correlation of various representations of an individual across the different software systems in the organization;

receiving, for each of the different software systems, relational information regarding a relationship of different entities in the organization, wherein each of the different entities has a defined set of authorizations;

receiving, for each of the different software systems, one or more constraints associated with the relational information;

receiving, from an author, a change to the authorizations in a first one of the different software systems;

computing, based on the change to the authorizations in the first one of the different software systems and the one or more constraints, corresponding changes to the relational information for other ones of the different software systems; and

automatically updating the other ones of the different software systems with the corresponding changes.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2020
From: ROHDE, HENNING KORSHOLM; NEUBAUER, WILLIAM C., III; FERNÁNDEZ MOCTEZUMA, RAFAEL DE JESÚS
To: GOOGLE LLC
Reel/Frame 053356/0328 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2020
From: ROHDE, HENNING; NEUBAUER, III, WILLIAM C.; FERNÁNDEZ, RAFAEL
To: GOOGLE LLC
Reel/Frame 053329/0051 →
Continuity (2)
Provisional Application 62879584 · Jul 29, 2019
Related Publication 20210034734A1 · Feb 4, 2021