IP Library Granted Patent US 10,469,501
Granted Patent B2
US 10,469,501 · App. 15/603,731 · Granted Nov 5, 2019

Multi-protocol access control lists

Inventors: Manoj Thankappan Varadamma (Bangalore, IN); Nandesh Palanisamy (Andover, MA); Roselle N. Fernandez (Fort Collins, CO); Matthew B. Dumm (Fort Collins, CO); Jonathan Wesley Hittle (Fort Collins, CO)
Assignee: Hewlett Packard Enterprise Development LP
H04L63/101G06F21/6218G06F2221/2141H04L63/08
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 10,469,501
App. No.
15/603,731
Granted
Nov 5, 2019
Kind
B2
Abstract

Example implementations relate to multi-protocol access control lists. In an example, a multi-protocol access control list (ACL) is maintained in an extended attribute of an object stored in a file store. The multi-protocol ACL holds a primary ACL in a format associated with a primary protocol of a file store and a secondary ACL in a format associated with a secondary protocol.

Claims (67)

1. A method comprising:

maintaining, by a storage system, a multi-protocol access control list (ACL) in an extended attribute of an object stored in a file store of the storage system, the multi-protocol ACL including a primary ACL in a format associated with a primary protocol of the file store and a secondary ACL in a format associated with a secondary protocol;

restricting, by the storage system, modification of the multi-protocol ACL to modification of the primary ACL via the primary protocol; and

synchronizing, by the storage system, modification of the primary ACL to the secondary ACL.

2. The method of claim 1 , wherein the primary ACL includes an identity and permissions in the format associated with the primary protocol and the secondary ACL includes an identity and permissions in the format associated with the secondary protocol.

3. The method of claim 1 , further comprising:

receiving, by the storage system, a request via the secondary protocol to create the object; and

responsive to the request and prior to the maintaining, creating, by the storage system, the multi-protocol ACL by:

creating the primary ACL based on object creation rules of the primary protocol and a parent object identified by the request, and

atomically writing to the extended attribute of the object the multi-protocol ACL containing the primary ACL and no secondary ACL.

4. The method of claim 3 , further comprising:

receiving, by the storage system, a first access request for the object via the secondary protocol, after the creating the multi-protocol ACL; and

responsive to the first access request:

creating the secondary ACL by conversion from the primary ACL, and

atomically writing to the extended attribute of the object the multi-protocol ACL containing the primary ACL and the secondary ACL.

5. The method of claim 4 , wherein the creating the secondary ACL by conversion from the primary ACL includes:

converting an identity included in the primary ACL to an identity in the format associated with the secondary protocol by retrieving the identity in the format associated with the secondary protocol from a local cache, and

translating permissions of the primary ACL to permissions in the format associated with the secondary protocol.

6. The method of claim 5 , wherein if the identity in the format associated with the secondary protocol cannot be retrieved from the local cache, the converting the identity included in the primary ACL includes looking up the identity in the format associated with the secondary protocol from a source external to the storage system and adding conversion information for the identity to the local cache.

7. The method of claim 1 , further comprising:

receiving, by the storage system, an access request for the object via the secondary protocol; and

responsive to the receiving, enforcing, by the storage system, the secondary ACL against the access request without converting the primary ACL.

8. A system comprising:

a hardware processor; and

a non-transitory computer readable medium storing instructions for a file store management engine, the instructions upon execution are to cause the hardware processor to:

maintain a persistent multi-protocol access control list (ACL) in an extended attribute of an object stored in a file store, the multi-protocol ACL formatted to hold a primary ACL in a format associated with a primary protocol of the file store and a secondary ACL in a format associated with a secondary protocol,

restrict modification of the multi-protocol ACL to modification of the primary ACL via the primary protocol, and

synchronize modification of the primary ACL to the secondary ACL.

9. The system of claim 8 , wherein the non-transitory computer readable medium stores instructions that, upon execution, cause the hardware processor to process a request received from a client device via the secondary protocol to create the object by:

creation of the primary ACL based on object creation rules of the primary protocol and a parent object identified by the request, and

an atomic write operation that stores, to the extended attribute of the object, the multi-protocol ACL containing the created primary ACL alone without a secondary ACL.

10. The system of claim 8 , further comprising:

an identity translation cache to store identities in formats associated respectively with the primary protocol and the secondary protocol; and

wherein the non-transitory computer readable medium stores instructions that, upon execution, cause the hardware processor to process a request from a client device via a new secondary protocol to access the object when the multi-protocol ACL does not include an ACL in a format associated with the new secondary protocol by:

conversion of the primary ACL to a new secondary ACL, including conversion of an identity included in the primary ACL to an identity in the format associated with the new secondary protocol by retrieval of the identity in the format associated with the new secondary protocol from the identity translation cache and, if the identity cannot be retrieved from the identity translation cache, by a lookup of the identity in the format associated with the new secondary protocol from an external source and addition of conversion information from the lookup to the identity translation cache, and

an atomic write, to the extended attribute of the object, of the new secondary ACL together with pre-existing ACLs of the multi-protocol ACL.

11. The system of claim 10 , further comprising a name resolution service executing on the hardware processor to perform the lookup, the name resolution service accessible from a kernel supporting the file store management engine.

12. The system of claim 11 , wherein the name resolution service performs lookups to translate user identifier (UID) to user principal name (UPN), group identifier (GID) to UPN, security identifier (SID) to UPN, UPN to SID, UPN to UID, UPN to GID, UID to SID, GID to SID, SID to UID, and SID to GID.

13. The system of claim 8 , wherein the multi-protocol ACL includes the primary ACL, the secondary ACL, and an intermediate ACL, and

synchronization of modification of the primary ACL to the secondary ACL includes:

implementation of the modification to generate a modified primary ACL,

conversion of the modified primary ACL to a modified intermediate ACL,

conversion of the modified intermediate ACL to a modified secondary ACL, and

an atomic write, to the extended attribute of the object, of an updated multi-protocol ACL containing the modified primary ACL, the modified intermediate ACL, and the modified secondary ACL.

14. The system of claim 13 , wherein the non-transitory computer readable medium stores instructions that, upon execution, cause the hardware processor to add support for a new ACL format by:

a reformat of the multi-protocol ACL with additional space in the extended attribute to hold an ACL of the new ACL format,

addition of a routine to convert from the new ACL format to a format of the intermediate ACL, and

addition of a routine to convert from the format of the intermediate ACL to the new ACL format.

15. The system of claim 8 , wherein the non-transitory computer readable medium stores instructions that, upon execution, cause the hardware processor to:

receive, from a client device, an access request for the object via the secondary protocol; and

responsive to the access request, enforce the secondary ACL in the extended attribute against the access request without conversion of the primary ACL.

16. The system of claim 8 , further comprising an identity translation cache to store identities in formats associated with the primary protocol and the secondary protocol,

wherein to synchronize modification of the primary ACL to the secondary ACL, the instructions cause the hardware processor to refer to the identity translation cache independent of external sources to process an identity-based modification.

17. A non-transitory computer readable medium storing instructions executable by a processing resource of a storage system, the non-transitory computer readable medium comprising:

instructions to receive a request to create an object in a file store of the storage system, the file store operating under a primary protocol; and

instructions to, responsive to the request being of a secondary protocol:

create a primary access control list (ACL) in a format native to the primary protocol based on a parent object identified by the request, and

perform an atomic write operation that stores, to an extended attribute of the object, a multi-protocol ACL containing the primary ACL and no secondary ACL.

18. The non-transitory computer readable medium of claim 17 , further comprising instructions to process a first access request for the object via the secondary protocol by:

creation of the secondary ACL in a format associated with the secondary protocol by conversion from the primary ACL, and

an atomic write to the extended attribute of the multi-protocol ACL containing the primary ACL and the secondary ACL created from conversion of the primary ACL.

19. The non-transitory computer readable medium of claim 18 , wherein the conversion of the primary ACL includes conversion of an identity included in the primary ACL to an identity in the format associated with the secondary protocol by:

retrieval from an identity translation cache of the storage system of the identity in the format associated with the secondary protocol, and

if the identity cannot be retrieved from the identity translation cache, a lookup of the identity in the format associated with the secondary protocol from a source external to the storage system and addition of conversion information from the lookup to the identity translation cache.

20. The non-transitory computer readable medium of claim 17 , further comprising

instructions to generate an intermediate ACL to facilitate conversion between the primary ACL and secondary ACLs; and

instructions to atomically write the intermediate ACL, the primary ACL, and the secondary ACLs together as the multi-protocol ACL into the extended attribute.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2017
From: THANKAPPAN VARADAMMA, MANOJ; PALANISAMY, NANDESH; FERNANDEZ, ROSELLE N.; DUMM, MATTHEW B.; HITTLE, JONATHAN WESLEY
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 043297/0376 →
Priority Claims (1)
IN 201741011629 · Mar 31, 2017 · national
Continuity (1)
Related Publication 20180288057A1 · Oct 4, 2018
Cited By (2)
US 12,229,291 US 12,450,296