IP Library › Granted Patent US 11,552,956
Granted Patent B2
US 11,552,956 · App. 17/536,816 · Granted Jan 10, 2023

Secure resource authorization for external identities using remote principal objects

Inventors: Charles Prakash Rao Dasari (Redmond, WA); Maksym Yaryn (Sammamish, WA); Debashis Choudhury (Redmond, WA); Jeffrey A. Staiman (Bellevue, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
H04L63/102H04L41/0686H04L63/108H04L63/20H04L67/1097
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 11,552,956
App. No.
17/536,816
Granted
Jan 10, 2023
Kind
B2
Abstract

Methods of secure resource authorization for external identities using remote principal objects are performed by systems and devices. An external entity creates a user group and defines entitlements to an owning entity's secure resource as a set of permissions for the group. An immutable access template with the permissions and an access policy for the secure resource are provided to the owning entity for approval. On approval, a remote principal object is created in the owner directory according to the permissions and access policy. A remote principal that is a group member requests access via an interface to the owner domain using external domain credentials. The identity of the remote principal is verified against the remote principal object by a token service. Verification causes generation and issuance of a token, with the enumerated entitlements, to the remote principal interface affecting a redirect for access to the secure resource.

Claims (86)

1. A system for authorizing access by a remote principal of a second domain to a secure data resource in a first domain, the system comprising:

a memory that stores program code; and

a processing system, comprising one or more processors, configured to receive the program code from the memory and, in response to at least receiving the program code, to:

generate, at the second domain, an access policy of the secure data resource, the access policy being associated with the set of permissions and including an entitlement to the secure data resource for one or more members of the second domain;

provide the set of permissions and the access policy to the domain host for the first domain, the set of permissions and the access policy being immutable from the first domain; and

provide to the first domain on behalf of the remote principal, as a member of the second domain, an access permission approval request for the secure data resource that causes generation in a directory of the first domain at the domain host of a remote principal object based at least on an indication of an approval of the access permission approval request from the first domain, the remote principal object that links the one or more members of the second domain to the at least one entitlement for the secure data resource as enumerated in the set of permissions and specified by the access policy.

2. The system of claim 1 , wherein the processing system is configured, in response to the at least receiving the program code, to:

receive a subsequent access permission approval request from the remote principal or another member of the second domain subsequent to said providing to the first domain on behalf of the remote principal the access permission approval request;

determine at least one of:

the approval remaining valid, or

the remote principal object remaining valid in the directory; and

notify the remote principal or the other member of the second domain of an effective approval for the subsequent access permission approval request.

3. The system of claim 1 , wherein the processing system is configured, in response to the at least receiving the program code, to:

receive a subsequent access permission approval request from the remote principal or another member of the second domain subsequent to said providing to the first domain on behalf of the remote principal the access permission approval request;

determine at least one of:

the approval being revoked from the first domain, or

the access policy being expired; and

perform at least one of:

notify the remote principal or the other member of the second domain of a denial for the subsequent access permission approval request, or

deny access to the secure data resource.

4. The system of claim 1 , wherein the processing system is configured, in response to the at least receiving the program code, to:

receive a subsequent access permission approval request from the remote principal or another member of the second domain subsequent to said providing to the first domain on behalf of the remote principal the access permission approval request, the subsequent access permission approval request being for another task that is different than a task for the access permission approval request;

determine that the subsequent access permission approval request has been denied from the first domain;

notify the remote principal or the other member of the second domain of a denial for the subsequent access permission approval request; and

allow access to the secure data resource in association with the task of the access permission approval request.

5. The system of claim 1 , wherein the one or more members of the second domain comprises a software application or a service of the second domain.

6. The system of claim 1 , wherein the first domain is a tenancy hosted by a cloud-based platform; and

wherein the second domain is a different tenancy associated with the cloud-based platform or an external domain with respect to the cloud-based platform.

7. The system of claim 1 , wherein the directory of the first domain at the domain host in which the remote principal object is generated is a platform directory across the cloud-based platform.

8. A method for authorizing access by a remote principal of a second domain to a secure data resource in a first domain, the method comprising:

generating, at the second domain, an access policy of the secure data resource, the access policy being associated with the set of permissions and including an entitlement to the secure data resource for one or more members of the second domain;

providing the set of permissions and the access policy to the domain host for the first domain, the set of permissions and the access policy being immutable from the first domain; and

providing to the first domain on behalf of the remote principal, as a member of the second, an access permission approval request for the secure data resource causing generation in a directory of the first domain at the domain host of a remote principal object based at least on an indication of an approval of the access permission approval request from the first domain, the remote principal object linking the one or more members of the second domain to the at least one entitlement for the secure data resource as enumerated in the set of permissions and specified by the access policy.

9. The method of claim 8 , further comprising:

receiving a subsequent access permission approval request from the remote principal or another member of the second domain subsequent to said providing to the first domain on behalf of the remote principal the access permission approval request;

determining at least one of:

the approval remaining valid, or

the remote principal object remaining valid in the directory; and

notifying the remote principal or the other member of the second domain of an effective approval for the subsequent access permission approval request.

10. The method of claim 8 , further comprising:

receiving a subsequent access permission approval request from the remote principal or another member of the second domain subsequent to said providing to the first domain on behalf of the remote principal the access permission approval request;

determining at least one of:

the approval being revoked from the first domain, or

the access policy being expired; and

performing at least one of:

notifying the remote principal or the other member of the second domain of a denial for the subsequent access permission approval request, or

denying access to the secure data resource.

11. The method of claim 8 , further comprising:

receiving a subsequent access permission approval request from the remote principal or another member of the second domain subsequent to said providing to the first domain on behalf of the remote principal the access permission approval request, the subsequent access permission approval request being for another task that is different than a task for the access permission approval request;

determining that the subsequent access permission approval request has been denied from the first domain;

notifying the remote principal or the other member of the second domain of a denial for the subsequent access permission approval request; and

allowing access to the secure data resource in association with the task of the access permission approval request.

12. The method of claim 8 , wherein the one or more members of the second domain comprises a software application or a service of the second domain.

13. The method of claim 8 , wherein the first domain is a tenancy hosted by a cloud-based platform; and

wherein the second domain is a different tenancy associated with the cloud-based platform or an external domain with respect to the cloud-based platform.

14. The method of claim 8 , wherein the directory of the first domain at the domain host in which the remote principal object is generated is a platform directory across the cloud-based platform.

15. At least one computer-readable storage medium that stores program instructions that, when executed by one or more processing devices, performs a method for authorizing access by a remote principal of a second domain to a secure data resource of a first domain and at a domain host thereof, the method comprising:

generating a permissions template, at the second domain, which includes identity data for members of the group and which defines a set of permissions that include at least one entitlement for the members of the group to the secure data resource;

generating an access policy of the secure data resource that is based at least on the identity data and that is associated with the set of permissions, the set of permissions and the access policy being immutable from the first domain; and

accessing the secure data resource via a remote principal object that is caused to be generated in a directory of the first domain at the domain host based at least on a request from the second domain, the remote principal object linking the group to the at least one entitlement for the secure data resource as enumerated in the set of permissions and specified by the access policy that are provided to the first domain.

16. The at least one computer-readable storage medium of claim 15 , wherein remote principal object is caused to be generated based at least on an access permission approval request that is provided to the first domain;

wherein the method further comprises:

receiving a subsequent access permission approval request from the remote principal or another member of the second domain subsequent to the access permission approval request being provided to the first domain;

determining at least one of:

an approval of the access permission approval request remaining valid, or

the remote principal object remaining valid in the directory; and

notifying the remote principal or the other member of the second domain of an effective approval for the subsequent access permission approval request.

17. The at least one computer-readable storage medium of claim 15 , wherein remote principal object is caused to be generated based at least on an access permission approval request that is provided to the first domain;

wherein the method further comprises:

receiving a subsequent access permission approval request from the remote principal or another member of the second domain subsequent to the access permission approval request being provided to the first domain;

determining at least one of:

the approval being revoked from the first domain, or

the access policy being expired; and

performing at least one of:

notifying the remote principal or the other member of the second domain of a denial for the subsequent access permission approval request, or

denying access to the secure data resource.

18. The at least one computer-readable storage medium of claim 15 , wherein remote principal object is caused to be generated based at least on an access permission approval request that is provided to the first domain;

wherein the method further comprises:

receiving a subsequent access permission approval request from the remote principal or another member of the second domain subsequent to the access permission approval request being provided to the first domain, the subsequent access permission approval request being for another task that is different than a task for the access permission approval request;

determining that the subsequent access permission approval request has been denied from the first domain;

notifying the remote principal or the other member of the second domain of a denial for the subsequent access permission approval request; and

allowing access to the secure data resource in association with the task of the access permission approval request.

19. The at least one computer-readable storage medium of claim 15 , wherein the one or more members of the second domain comprises a software application or a service of the second domain; or

wherein the first domain is a tenancy hosted by a cloud-based platform and the directory of the first domain at the domain host in which the remote principal object is generated is a platform directory across the cloud-based platform.

20. The at least one computer-readable storage medium of claim 15 , wherein the first domain is a tenancy hosted by a cloud-based platform; and

wherein the second domain is a different tenancy associated with the cloud-based platform or an external domain with respect to the cloud-based platform.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2021
From: DASARI, CHARLES PRAKASH RAO; YARYN, MAKSYM; CHOUDHURY, DEBASHIS; STAIMAN, JEFFREY A.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 058229/0644 →
Continuity (2)
Continuation 16887985 · May 29, 2020
Related Publication 20220086165A1 · Mar 17, 2022