Authorization in a distributed system using access control lists and groups

US10044718B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10044718-B2
Application numberUS-201514824727-A
CountryUS
Kind codeB2
Filing dateAug 12, 2015
Priority dateMay 27, 2015
Publication dateAug 7, 2018
Grant dateAug 7, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In a method of controlling sharing of an object between entities in a distributed system, a processor will identify an object and generate an access control list (ACL) for the object so that the ACL includes a list of clauses. Each clause will include a blessing pattern that will match one or more blessings, and at least one of the clauses also may include a reference to one or more groups. Each group represents a set of strings that represent blessing patterns or fragments of blessing patterns. The processor may generate each clause of the ACL as either a permit clause or a deny clause to indicate whether an entity or entities that have a blessing matched by the blessing pattern are permitted to access the object. The processor will save the ACL to a data store for use in responding to a request to access the object.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method of controlling sharing of an object between entities in a distributed system, the method comprising: by a processing device: identifying an object; generating an access control list (ACL) for the object so that the ACL includes a list of clauses, in which at least one clause includes a blessing pattern that includes a reference to one or more groups, wherein: each blessing pattern comprises a slash-separated sequence of components, where each component comprises either a slash-free string of a blessing or a group reference, and each group represents a set of strings, wherein the set of strings represent one or more second blessing patterns or one or more fragments of one or more second blessing patterns; saving the ACL to a data store for use in responding to a request to access the object; receiving, from a client device, a request to access the object, wherein the request includes at least one blessing; accessing the ACL; determining that the ACL includes at least one clause with a blessing pattern that matches a blessing in the request; parsing each determined clause of the ACL that has the relevant blessing pattern to determine whether the clause comprises a permit clause or a deny clause; and using results of the parsing to decide whether to grant or deny the client device access to the object, and in response either granting or denying the client device access to the object. 2. The method of claim 1 , wherein generating the ACL comprises generating each clause as either a permit clause or a deny clause, thus indicating whether an entity or entities that have a blessing matched by the blessing pattern are permitted to access the object. 3. The method of claim 1 , wherein: determining that the ACL includes at least one clause comprises determining that the ACL includes multiple clauses with a matching blessing pattern; and using results of the parsing to decide whether to grant or deny the client device access to the object comprises granting the client device access to the object only if the later of the determined clauses comprises the permit clause, otherwise denying the client device access to the object. 4. The method of claim 1 , wherein: determining that the ACL includes at least one clause comprises determining that the ACL includes multiple clauses with a matching blessing pattern; and using results of the parsing to decide whether to grant or deny the client device access to the object comprise granting the client device access to the object only if the earlier of the determined clauses comprises the permit clause, otherwise denying the client device access to the object. 5. The method of claim 1 , wherein: determining that the ACL includes at least one clause comprises determining that the ACL includes a group; and the method further comprises: sending a request to a group server to determine whether the request is associated with a member of the group, receiving a response from the group server, and also using the response from the group server when deciding whether to grant or deny the client device access to the object. 6. The method of claim 5 , wherein receiving the response from the group server comprises: receiving a first indication comprising a portion of the request that is associated with the group; and receiving a second indication comprising a remainder of the request that is not associated with the group. 7. The method of claim 1 , wherein each blessing and group is represented by one or more human-readable names. 8. The method of claim 1 , wherein at least one of the group names is embedded within an individual component of a blessing pattern. 9. The method of claim 5 , further comprising, by the group server: saving a definition of a group to a computer readable memory so that the definition of a group is associated with a first time; saving an updated definition of a group to the computer readable memory so that the updated definition of a group is associated with a second time; and when generating the response, determining a time associated with the request, and using the time to determine which version of the group definition to use in evaluating the request. 10. A system for controlling sharing of an object between distributed entities, the system comprising: a processing device; a first data store portion comprising a plurality of stored objects; a second data store portion; and a computer-readable memory containing programming instructions that are configured to cause the processing device to: identify an object from the first data store portion, generate an access control list (ACL) for the object so that the ACL includes a list of clauses, in which at least one clause includes a blessing pattern that includes a reference to one or more groups, wherein: each blessing pattern comprises a slash-separated sequence of components, where each component comprises either a slash-free string of a blessing, a group reference; and each group represents a set of strings, wherein the set of strings represent one or more second blessing patterns or one or more fragments of one or more second blessing patterns, save the ACL to the second data store portion for use in responding to a request to access the object, receive, from a client device, a request to access the object, wherein the request includes at least one blessing, access the ACL, determine that the ACL includes at least one clause with a blessing pattern that matches a blessing in the request, parse each determined clause of the ACL that has the relevant blessing pattern to determine whether the clause comprises a permit clause or a deny clause, and use results of the parsing to decide whether to grant or deny the client device access to the object, and in response either grant or deny the client device access to the object. 11. The system of claim 10 , wherein the instructions to generate the ACL comprise instructions to generate each clause as either a permit clause or a deny clause, thus indicating whether an entity or entities that have a blessing matched by the blessing pattern are permitted to access the object. 12. The system of claim 10 , wherein: the instructions to determine that the ACL includes at least one clause comprise instructions to determine that the ACL includes multiple clauses with a matching blessing pattern; and the instructions to use results of the parsing to decide whether to grant or deny the client device access to the object comprise instructions to grant the client device access to the object only if the later of the determined clauses comprises the permit clause, otherwise deny the client device access to the object. 13. The system of claim 10 , wherein: the instructions to determine that the ACL includes at least one clause comprise instructions to determine that the ACL includes multiple clauses with a matching blessing pattern; and the instructions to use results of the parsing to decide whether to grant or deny the client device access to the object comprise the instructions to grant the client device access to the object only if the earlier of the determined clauses comprises the permit clause, otherwise deny the client device access to the object. 14. The system of claim 10 , wherein: the instructions to determine that the ACL includes at least one clause comprise instructions to determine that the ACL includes a group; and the system further comprises additional programming instructions configured to cause the processor to: send a request to a group server to determine whether the request is associated with

Assignees

Inventors

Classifications

  • to a system of files or objects, e.g. local or distributed file system or database · CPC title

  • Access rights, e.g. capability lists, access control lists, access tables, access matrices · CPC title

  • H04L63/101Primary

    Access control lists [ACL] · CPC title

  • G06F21/604Primary

    Tools and structures for managing or administering access control systems · CPC title

  • Entity profiles · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10044718B2 cover?
In a method of controlling sharing of an object between entities in a distributed system, a processor will identify an object and generate an access control list (ACL) for the object so that the ACL includes a list of clauses. Each clause will include a blessing pattern that will match one or more blessings, and at least one of the clauses also may include a reference to one or more groups. Eac…
Who is the assignee on this patent?
Google Llc
What technology area does this patent fall under?
Primary CPC classification H04L63/101. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Aug 07 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).