You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/active-directory/develop/Delegated-access.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,8 +58,8 @@ For client app authorization, OneDrive will check whether the client making the
58
58
59
59
| GET /drives/{id}/files/{id} | Client app granted `Files.Read` scope for Alice | Client app not granted `Files.Read` scope for Alice |
60
60
| ----- | ----- | ----- |
61
-
| The document is in Alice’s OneDrive | 200 – Access granted | Unauthorized. Alice (or her admin) hasn’t allowed this client to read her files. |
62
-
| The document is in another user’s OneDrive*| Unauthorized. Alice doesn’t have rights to read this file. Even though the client has been granted `Files.Read` it should be denied when acting on Alice’s behalf. | 403 – Unauthorized. Alice doesn’t have rights to read this file, and the client isn’t allowed to read files she has access to either. |
61
+
| The document is in Alice’s OneDrive | 200 – Access granted |403 - Unauthorized. Alice (or her admin) hasn’t allowed this client to read her files. |
62
+
| The document is in another user’s OneDrive*|403 - Unauthorized. Alice doesn’t have rights to read this file. Even though the client has been granted `Files.Read` it should be denied when acting on Alice’s behalf. | 403 – Unauthorized. Alice doesn’t have rights to read this file, and the client isn’t allowed to read files she has access to either. |
63
63
64
64
The example given is simplified to illustrate delegated authorization. The production OneDrive service supports many other access scenarios, such as shared files.
Copy file name to clipboardExpand all lines: articles/active-directory/develop/application-consent-experience.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -50,27 +50,27 @@ The following diagram and table provide information about the building blocks of
50
50
## Common scenarios and consent experiences
51
51
52
52
The following section describes the common scenarios and the expected consent experience for each of them.
53
-
### App requires a permission within the user's scope of authority
53
+
### App requires a permission that the user has the right to grant
54
54
55
55
In this consent scenario, the user accesses an app that requires a permission set that is within the user's scope of authority. The user is directed to the user consent flow.
56
56
57
-
Admins will see an additional control on the traditional consent prompt that will allow them consent on behalf of the entire tenant. The control will be defaulted to off, so only when admins explicitly check the box will consent be granted on behalf of the entire tenant. The check box will only show for the Global Admin role, so Cloud Admin and App Admin won't see this checkbox.
57
+
Admins will see an additional control on the traditional consent prompt that will allow to give consent on behalf of the entire tenant. The control will be defaulted to off, so only when admins explicitly check the box will consent be granted on behalf of the entire tenant. The check box will only show for the Global Admin role, so Cloud Admin and App Admin won't see this checkbox.
58
58
59
59
:::image type="content" source="./media/application-consent-experience/consent_prompt_1a.png" alt-text="Consent prompt for scenario 1a":::
60
60
61
61
Users will see the traditional consent prompt.
62
62
63
63
:::image type="content" source="./media/application-consent-experience/consent_prompt_1b.png" alt-text="Screenshot that shows the traditional consent prompt.":::
64
64
65
-
### App requires a permission outside of the user's scope of authority
65
+
### App requires a permission that the user has no right to grant
66
66
67
67
In this consent scenario, the user accesses an app that requires at least one permission that is outside the user's scope of authority.
68
68
69
69
Admins will see an additional control on the traditional consent prompt that will allow them consent on behalf of the entire tenant.
70
70
71
71
:::image type="content" source="./media/application-consent-experience/consent_prompt_1a.png" alt-text="Consent prompt for scenario 1a":::
72
72
73
-
Non-admin users will be blocked from granting consent to the application, and they'll be told to ask their admin for access to the app.
73
+
Non-admin users will be blocked from granting consent to the application, and they'll be told to ask their admin for access to the app. If admin consent workflow is enabled in the user's tenant, non-admin users are able to submit a request for admin approval from the consent prompt. For more information on admin consent workflow, see [Admin consent workflow](../manage-apps/admin-consent-workflow-overview.md)
74
74
75
75
:::image type="content" source="./media/application-consent-experience/consent_prompt_2b.png" alt-text="Screenshot of the consent prompt telling the user to ask an admin for access to the app.":::
76
76
@@ -88,7 +88,7 @@ Non-admin users will be blocked from granting consent to the application, and th
88
88
89
89
### Admin consent through the Azure portal
90
90
91
-
In this scenario, an administrator consents to an application's delegated permissions on behalf of all the users in the tenant. The Administrator grants consent through the **API permissions** page of the application registration in the [Azure portal](https://portal.azure.com).
91
+
In this scenario, an administrator consents to all of the permissions that an application requests, which can include delegated permissions on behalf of all users in the tenant. The Administrator grants consent through the **API permissions** page of the application registration in the [Azure portal](https://portal.azure.com).
92
92
93
93
:::image type="content" source="./media/consent-framework/grant-consent.png" alt-text="Grant permissions for explicit admin consent" lightbox="./media/consent-framework/grant-consent.png":::
Copy file name to clipboardExpand all lines: articles/active-directory/develop/consent-types-developer.md
+4-8Lines changed: 4 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,10 +13,10 @@ ms.date: 10/17/2022
13
13
ms.author: jomondi
14
14
ms.reviewer: jawoods, ludwignick, phsignor
15
15
---
16
-
# Requesting for permissions through consent
16
+
# Requesting permissions through consent
17
17
18
18
19
-
Applications in Microsoft identity platform rely on consent in order to gain access to necessary resources or APIs. There are consent types that your application may need to know about in order to be successful. If you're defining permissions, you'll also need to understand how your users will consent to these permissions for your application or API to access their data.
19
+
Applications in the Microsoft identity platform rely on consent in order to gain access to necessary resources or APIs. Different types of consent are better for different application scenarios. Choosing the best approach to consent for your app will help it be more successful with users and organizations.
20
20
21
21
In this article, you'll learn about the different types of consent and how to request permissions for your application through consent.
22
22
@@ -26,11 +26,7 @@ In the static user consent scenario, you must specify all the permissions it nee
26
26
27
27
Static permissions also enable administrators to consent on behalf of all users in the organization.
28
28
29
-
While static permissions of the application defined in the Azure portal keep the code nice and simple, it presents some possible issues for developers:
30
-
31
-
- The application needs to request all the permissions it would ever need upon the user's first sign-in. This can lead to a long list of permissions that discourages end users from approving the app's access on initial sign-in.
32
-
33
-
- The application needs to know all of the resources it would ever access ahead of time. It's difficult to create apps that could access an arbitrary number of resources.
29
+
While relying on static consent and a single permissions list keeps the code nice and simple, it also means that your app will request all of the permissions it might ever need up front. This can discourage users and admins from approving your app's access request.
34
30
35
31
## Incremental and dynamic user consent
36
32
@@ -97,7 +93,7 @@ Some organizations may change the default user consent policy for the tenant. Wh
97
93
98
94
Application permissions always require admin consent. Application permissions don't have a user context and the consent grant isn't done on behalf of any specific user. Instead, the client application is granted permissions directly, these types of permissions are used only by daemon services and other non-interactive applications that run in the background. Administrators need to configure the permissions upfront and [grant admin consent](../manage-apps/grant-admin-consent.md) through the Azure portal.
99
95
100
-
### Admin consent Multi-tenant applications
96
+
### Admin consent for Multi-tenant applications
101
97
102
98
In case the application requesting the permission is a multi-tenant application, its application registration only exists in the tenant where it was created, therefore permissions can't be configured in the local tenant. If the application requests permissions that require admin consent, the administrator needs to consent on behalf of the users. To consent to these permissions, the administrators need to log in to the application themselves, so the admin consent sign-in experience is triggered. To learn how to set up the admin consent experience for multi-tenant applications, see [Enable multi-tenant log-ins](howto-convert-app-to-be-multi-tenant.md#understand-user-and-admin-consent)
Copy file name to clipboardExpand all lines: articles/active-directory/develop/permissions-consent-overview.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,23 +30,23 @@ As an application developer, you must identify how your application will access
30
30
31
31
In this access scenario, a user has signed into a client application. The client application accesses the resource on behalf of the user. Delegated access requires delegated permissions. Both the client and the user must be authorized separately to make the request. For more information about the delegated access scenario, see [delegated access scenario](delegated-access.md).
32
32
33
-
For the client app, the correct delegated permissions must be granted. Delegated permissions can also be referred to as scopes. Scopes are permissions of a given resource that the client application exercises on behalf of a user. They're strings that represent what the application wants to do on behalf of the user.For more information about scopes, see [scopes and permissions](v2-permissions-and-consent.md#scopes-and-permissions).
33
+
For the client app, the correct delegated permissions must be granted. Delegated permissions can also be referred to as scopes. Scopes are permissions for a given resource that represent what a client application can access on behalf of the user.For more information about scopes, see [scopes and permissions](v2-permissions-and-consent.md#scopes-and-permissions).
34
34
35
-
For the user, the authorization relies on the privileges that the user has been granted for them to access the resource. For example, the user could be authorized to access directory resources by [Azure Active Directory (Azure AD) role-based access control (RBAC)](../roles/custom-overview.md) or to access mail and calendar resources by [Exchange Online RBAC](/exchange/permissions-exo/permissions-exo).
35
+
For the user, the authorization relies on the privileges that the user has been granted for them to access the resource. For example, the user could be authorized to access directory resources by [Azure Active Directory (Azure AD) role-based access control (RBAC)](../roles/custom-overview.md) or to access mail and calendar resources by Exchange Online RBAC. For more information on RBAC for applications, see [RBAC for applications](custom-rbac-for-developers.md)
36
36
37
37
### App-only access (Access without a user)
38
38
39
39
In this access scenario, the application acts on its own with no user signed in. Application access is used in scenarios such as automation, and backup. This scenario includes apps that run as background services or daemons. It's appropriate when it's undesirable to have a specific user signed in, or when the data required can't be scoped to a single user.
40
40
41
-
App-only access may require application permissions but that isn't the only way for granting app-only access. Application permissions can be referred to as app roles. When app roles are granted to other applications, they're called applications permissions. The appropriate application permissions or app roles must be granted to the application for itto access the resource. For more information about assigning app roles to applications, see [App roles for applications](howto-add-app-roles-in-azure-ad-apps.md).
41
+
App-only access uses app roles instead of delegated scopes. When granted through consent, app roles may also be called applications permissions. For app-only access, the client app must be granted appropriate app roles of the resource app it's calling in order to access the requested data. For more information about assigning app roles to client applications, see [Assigning app roles to applications](howto-add-app-roles-in-azure-ad-apps.md#assign-app-roles-to-applications).
42
42
43
43
## Types of permissions
44
44
45
-
**Delegated permissions** are used in the delegated access scenario. They're permissions that allow the application to act on a user's behalf. The application will never be able to access anything users themselves couldn't access
45
+
**Delegated permissions** are used in the delegated access scenario. They're permissions that allow the application to act on a user's behalf. The application will never be able to access anything the signed in user themselves couldn't access.
46
46
47
47
For example, imagine an application that has been granted the Files.Read.All delegated permission on behalf of Tom, the user. The application will only be able to read files that Tom can personally access.
48
48
49
-
**Application permissions** are used in the app-only access scenario, without a signed-in user present. The application will be able to access any data that the permission is associated with. For example, an application granted the Files.Read.All application permission will be able to read any file in the tenant. Only an administrator or owner of the service principal can consent to application permissions.
49
+
**Application permissions**, sometimes called app roles are used in the app-only access scenario, without a signed-in user present. The application will be able to access any data that the permission is associated with. For example, an application granted the Files.Read.All application permission will be able to read any file in the tenant. Only an administrator or owner of the service principal can consent to application permissions.
50
50
51
51
There are other ways in which applications can be granted authorization for app-only access. For example, an application can be assigned an Azure AD RBAC role.
52
52
@@ -57,14 +57,14 @@ There are other ways in which applications can be granted authorization for app-
57
57
| Types of apps | Web / Mobile / single-page app (SPA) | Web / Daemon |
58
58
| Access context | Get access on behalf of a user | Get access without a user |
59
59
| Who can consent | <li> Users can consent for their data <li> Admins can consent for all users | Only admin can consent |
| Result of consent (specific to Microsoft Graph) |[oAuth2PermissionGrant](/graph/api/resources/oauth2permissiongrant)|[appRoleAssignment](/graph/api/resources/approleassignment)|
62
62
63
63
## Consent
64
64
One way that applications are granted permissions is through consent. Consent is a process where users or admins authorize an application to access a protected resource. For example, when a user attempts to sign into an application for the first time, the application can request permission to see the user's profile and read the contents of the user's mailbox. The user sees the list of permissions the app is requesting through a consent prompt. Other scenarios where users may see a consent prompt include:
65
65
66
-
- When previously granted consent is revoked
67
-
- When the application is coded to specifically prompt for consent during every sign-in
66
+
- When previously granted consent is revoked.
67
+
- When the application is coded to specifically prompt for consent during every sign-in.
68
68
- When the application uses incremental or dynamic consent to ask for some permissions upfront and more permission later as needed.
69
69
70
70
The key details of a consent prompt are the list of permissions the application requires and the publisher information. For more information about the consent prompt and the consent experience for both admins and end-users, see [application consent experience](application-consent-experience.md).
@@ -75,7 +75,7 @@ User consent happens when a user attempts to sign into an application. The user
75
75
76
76
### Administrator consent
77
77
78
-
Depending on the permissions they require, some applications might require an administrator to be the one who grants consent. Application permissions can only be consented to by an administrator. Administrators can grant consent for themselves or for the entire organization. For more information about user and admin consent, see [user and admin consent overview](../manage-apps/consent-and-permissions-overview.md)
78
+
Depending on the permissions they require, some applications might require an administrator to be the one who grants consent. For example, application permissions and many high-privilege delegated permissions can only be consented to by an administrator. Administrators can grant consent for themselves or for the entire organization. For more information about user and admin consent, see [user and admin consent overview](../manage-apps/consent-and-permissions-overview.md)
0 commit comments