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/v2-oauth2-on-behalf-of-flow.md
+17-22Lines changed: 17 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ ms.workload: identity
14
14
ms.tgt_pltfrm: na
15
15
ms.devlang: na
16
16
ms.topic: conceptual
17
-
ms.date: 11/19/2019
17
+
ms.date: 1/3/2020
18
18
ms.author: ryanwi
19
19
ms.reviewer: hirsin
20
20
ms.custom: aaddev
@@ -31,22 +31,22 @@ This article describes how to program directly against the protocol in your appl
31
31
32
32
> [!NOTE]
33
33
>
34
-
> - The Microsoft identity platform endpoint doesn't support all scenarios and features. To determine whether you should use the Microsoft identity platform endpoint, read about [Microsoft identity platform limitations](active-directory-v2-limitations.md). Specifically, known client applications aren't supported for apps with Microsoft account (MSA) and Azure AD audiences. Thus, a common consent pattern for OBO will not work for clients that sign in both personal and work or school accounts. To learn more about how to handle this step of the flow, see [Gaining consent for the middle-tier application](#gaining-consent-for-the-middle-tier-application).
34
+
> - The Microsoft identity platform endpoint doesn't support all scenarios and features. To determine whether you should use the Microsoft identity platform endpoint, read about [Microsoft identity platform limitations](active-directory-v2-limitations.md).
35
35
> - As of May 2018, some implicit-flow derived `id_token` can't be used for OBO flow. Single-page apps (SPAs) should pass an **access** token to a middle-tier confidential client to perform OBO flows instead. For more info about which clients can perform OBO calls, see [limitations](#client-limitations).
36
36
37
37
## Protocol diagram
38
38
39
-
Assume that the user has been authenticated on an application using the [OAuth 2.0 authorization code grant flow](v2-oauth2-auth-code-flow.md). At this point, the application has an access token *for API A* (token A) with the user’s claims and consent to access the middle-tier web API (API A). Now, API A needs to make an authenticated request to the downstream web API (API B).
39
+
Assume that the user has been authenticated on an application using the [OAuth 2.0 authorization code grant flow](v2-oauth2-auth-code-flow.md) or another login flow. At this point, the application has an access token *for API A* (token A) with the user’s claims and consent to access the middle-tier web API (API A). Now, API A needs to make an authenticated request to the downstream web API (API B).
40
40
41
41
The steps that follow constitute the OBO flow and are explained with the help of the following diagram.
42
42
43
43

44
44
45
45
1. The client application makes a request to API A with token A (with an `aud` claim of API A).
46
46
1. API A authenticates to the Microsoft identity platform token issuance endpoint and requests a token to access API B.
47
-
1. The Microsoft identity platform token issuance endpoint validates API A's credentials with token A and issues the access token for API B (token B).
48
-
1. Token B is set in the authorization header of the request to API B.
49
-
1. Data from the secured resource is returned by API B.
47
+
1. The Microsoft identity platform token issuance endpoint validates API A's credentials along with token A and issues the access token for API B (token B) to API A.
48
+
1. Token B is set by API A in the authorization header of the request to API B.
49
+
1. Data from the secured resource is returned by API B to API A, and from there to the client.
50
50
51
51
> [!NOTE]
52
52
> In this scenario, the middle-tier service has no user interaction to obtain the user's consent to access the downstream API. Therefore, the option to grant access to the downstream API is presented upfront as a part of the consent step during authentication. To learn how to set this up for your app, see [Gaining consent for the middle-tier application](#gaining-consent-for-the-middle-tier-application).
@@ -70,7 +70,7 @@ When using a shared secret, a service-to-service access token request contains t
70
70
|`grant_type`| Required | The type of token request. For a request using a JWT, the value must be `urn:ietf:params:oauth:grant-type:jwt-bearer`. |
71
71
|`client_id`| Required | The application (client) ID that [the Azure portal - App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) page has assigned to your app. |
72
72
|`client_secret`| Required | The client secret that you generated for your app in the Azure portal - App registrations page. |
73
-
|`assertion`| Required | The value of the token used in the request. |
73
+
|`assertion`| Required | The value of the token used in the request. This token must have an audience of the app making this OBO request (the app denoted by the `client-id` field). |
74
74
|`scope`| Required | A space separated list of scopes for the token request. For more information, see [scopes](v2-permissions-and-consent.md). |
75
75
|`requested_token_use`| Required | Specifies how the request should be processed. In the OBO flow, the value must be set to `on_behalf_of`. |
76
76
@@ -157,7 +157,7 @@ The following example shows a success response to a request for an access token
157
157
```
158
158
159
159
> [!NOTE]
160
-
> The above access token is a v1.0-formatted token. This is because the token is provided based on the resource being accessed. The Microsoft Graph requests v1.0 tokens, so Microsoft identity platform produces v1.0 access tokens when a client requests tokens for Microsoft Graph. Only applications should look at access tokens. Clients should not need to inspect them.
160
+
> The above access token is a v1.0-formatted token. This is because the token is provided based on the **resource** being accessed. The Microsoft Graph is setup to accept v1.0 tokens, so Microsoft identity platform produces v1.0 access tokens when a client requests tokens for Microsoft Graph. Only applications should look at access tokens. Clients **must not** inspect them.
## Gaining consent for the middle-tier application
191
191
192
-
Depending on the audience for your application, you may consider different strategies for ensuring that the OBO flow is successful. In all cases, the ultimate goal is to ensure proper consent is given. How that occurs, however, depends on which users your application supports.
193
-
194
-
### Consent for Azure AD-only applications
192
+
Depending on the architecture or usage of your application, you may consider different strategies for ensuring that the OBO flow is successful. In all cases, the ultimate goal is to ensure proper consent is given so that the client app can call the middle-tier app, and the middle tier app has permission to call the back-end resource.
195
193
196
-
#### /.default and combined consent
194
+
> [!NOTE]
195
+
> Previously the Microsoft account system (personal accounts) did not support the "Known client application" field, nor could it show combined consent. This has been added and all apps in the Microsoft identity platform can use the known client application approach for gettign consent for OBO calls.
197
196
198
-
For applications that only need to sign in work or school accounts, the traditional "Known Client Applications" approach is sufficient. The middle tier application adds the client to the known client applications list in its manifest, and then the client can trigger a combined consent flow for both itself and the middle tier application. On the Microsoft identity platform endpoint, this is done using the [`/.default` scope](v2-permissions-and-consent.md#the-default-scope). When triggering a consent screen using known client applications and `/.default`, the consent screen will show permissions for both the client to the middle tier API, and also request whatever permissions are required by the middle-tier API. The user provides consent for both applications, and then the OBO flow works.
197
+
### /.defaultand combined consent
199
198
200
-
At this time, the personal Microsoft account system does not support combined consent and so this approach does not work for apps that want to specifically sign in personal accounts. Personal Microsoft accounts being used as guest accounts in a tenant are handled using the Azure AD system, and can go through combined consent.
199
+
The middle tier application adds the client to the known client applications list in its manifest, and then the client can trigger a combined consent flow for both itself and the middle tier application. On the Microsoft identity platform endpoint, this is done using the [`/.default` scope](v2-permissions-and-consent.md#the-default-scope). When triggering a consent screen using known client applications and `/.default`, the consent screen will show permissions for **both** the client to the middle tier API, and also request whatever permissions are required by the middle-tier API. The user provides consent for both applications, and then the OBO flow works.
201
200
202
-
####Pre-authorized applications
201
+
### Pre-authorized applications
203
202
204
-
A feature of the application portal is "pre-authorized applications". In this way, a resource can indicate that a given application always has permission to receive certain scopes. This is primarily useful to make connections between a front-end client and a back-end resource more seamless. A resource can declare multiple pre-authorized applications - any such application can request these permissions in an OBO flow and receive them without the user providing consent.
203
+
Resources can indicate that a given application always has permission to receive certain scopes. This is primarily useful to make connections between a front-end client and a back-end resource more seamless. A resource can declare multiple pre-authorized applications - any such application can request these permissions in an OBO flow and receive them without the user providing consent.
205
204
206
-
####Admin consent
205
+
### Admin consent
207
206
208
207
A tenant admin can guarantee that applications have permission to call their required APIs by providing admin consent for the middle tier application. To do this, the admin can find the middle tier application in their tenant, open the required permissions page, and choose to give permission for the app. To learn more about admin consent, see the [consent and permissions documentation](v2-permissions-and-consent.md).
209
208
210
-
### Consent for Azure AD + Microsoft account applications
211
-
212
-
Because of restrictions in the permissions model for personal accounts and the lack of a governing tenant, the consent requirements for personal accounts are a bit different from Azure AD. There is no tenant to provide tenant-wide consent for, nor is there the ability to do combined consent. Thus, other strategies present themselves - note that these work for applications that only need to support Azure AD accounts as well.
213
-
214
-
#### Use of a single application
209
+
### Use of a single application
215
210
216
211
In some scenarios, you may only have a single pairing of middle-tier and front-end client. In this scenario, you may find it easier to make this a single application, negating the need for a middle-tier application altogether. To authenticate between the front-end and the web API, you can use cookies, an id_token, or an access token requested for the application itself. Then, request consent from this single application to the back-end resource.
Copy file name to clipboardExpand all lines: articles/active-directory/devices/troubleshoot-hybrid-join-windows-current.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -101,7 +101,7 @@ This field indicates whether the device is registered with Azure AD as a persona
101
101
102
102
#### AzureAdJoined : YES
103
103
104
-
This field indicates whether the device is joined with Azure AD.
104
+
This field indicates whether the device is joined. The value will be **YES** if the device is either an Azure AD joined device or a hybrid Azure AD joined device.
105
105
If the value is **NO**, the join to Azure AD has not completed yet.
106
106
107
107
Proceed to next steps for further troubleshooting.
Copy file name to clipboardExpand all lines: articles/active-directory/manage-apps/application-provisioning-when-will-provisioning-finish-specific-user.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,7 +32,7 @@ When you first configure automatic provisioning, the **Current Status** section
32
32
- The type of provisioning cycle (initial or incremental) that is currently running or was last completed.
33
33
- A **progress bar** showing the percentage of the provisioning cycle that has completed. The percentage reflects the count of pages provisioned. Note that each page could contain multiple users or groups, so the percentage doesn't directly correlate to the number of users, groups, or roles provisioned.
34
34
- A **Refresh** button you can use to keep the view updated.
35
-
- The number of **Users** and **Groups**provisioned, and the number of roles created. During the initial cycle, the **Users** number counts up by 1 when a user is created or updated, and it counts down by 1 when a user is deleted. During an incremental cycle, user updates don’t affect the **Users**count; the number changes only when users are created or deleted.
35
+
- The number of **Users** and **Groups**in the connector data store. The count increases anytime an object is added to the scope of provisioning. The count will not go down if a user is soft-deleted or hard-deleted as this does not remove the object from the connector data store. The count will be re-caculated the first sync after the CDS is [reset](https://docs.microsoft.com/graph/api/synchronization-synchronizationjob-restart?view=graph-rest-beta&tabs=http)
36
36
- A **View Audit Logs** link, which opens the Azure AD provisioning logs for details about all operations run by the user provisioning service, including provisioning status for individual users (see the [Use provisioning logs](#use-provisioning-logs-to-check-a-users-provisioning-status) section below).
37
37
38
38
After a provisioning cycle is complete, the **Statistics to date** section shows the cumulative numbers of users and groups that have been provisioned to date, along with the completion date and duration of the last cycle. The **Activity ID** uniquely identifies the most recent provisioning cycle. The **Job ID** is a unique identifier for the provisioning job, and is specific to the app in your tenant.
Copy file name to clipboardExpand all lines: articles/active-directory/saas-apps/amazon-web-service-tutorial.md
+9-7Lines changed: 9 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -71,10 +71,10 @@ In this tutorial, you configure and test Azure AD SSO in a test environment.
71
71
72
72
To configure the integration of Amazon Web Services (AWS) into Azure AD, you need to add Amazon Web Services (AWS) from the gallery to your list of managed SaaS apps.
73
73
74
-
1. Sign in to the [Azure portal](https://portal.azure.com) using either a work or school account, or a personal Microsoft account.
75
-
1.On the left navigation pane, select the **Azure Active Directory** service.
76
-
1.Navigate to **Enterprise Applications**and then select **All Applications**.
77
-
1.To add new application, select **New application**.
74
+
1. Sign in to the [Azure portal](https://portal.azure.com) using a work account, school account, or personal Microsoft account.
75
+
1.In the Azure portal, search for and select **Azure Active Directory**.
76
+
1.Within the Azure Active Directory overview menu, choose **Enterprise Applications**> **All applications**.
77
+
1.Select **New application** to add an application.
78
78
1. In the **Add from the gallery** section, type **Amazon Web Services (AWS)** in the search box.
79
79
1. Select **Amazon Web Services (AWS)** from results panel and then add the app. Wait a few seconds while the app is added to your tenant.
80
80
@@ -120,7 +120,8 @@ Follow these steps to enable Azure AD SSO in the Azure portal.
120
120
121
121
In this section, you'll create a test user in the Azure portal called B.Simon.
122
122
123
-
1. From the left pane in the Azure portal, select **Azure Active Directory**, select **Users**, and then select **All users**.
123
+
1. In the Azure portal, search for and select **Azure Active Directory**.
124
+
1. Within the Azure Active Directory overview menu, choose **Users** > **All users**.
124
125
1. Select **New user** at the top of the screen.
125
126
1. In the **User** properties, follow these steps:
126
127
1. In the **Name** field, enter `B.Simon`.
@@ -132,8 +133,9 @@ In this section, you'll create a test user in the Azure portal called B.Simon.
132
133
133
134
In this section, you'll enable B.Simon to use Azure single sign-on by granting access to Amazon Web Services (AWS).
134
135
135
-
1. In the Azure portal, select **Enterprise Applications**, and then select **All applications**.
136
-
1. In the applications list, select **Amazon Web Services (AWS)**.
136
+
1. In the Azure portal, search for and select **Azure Active Directory**.
137
+
1. Within the Azure Active Directory overview menu, choose **Enterprise Applications** > **All applications**.
138
+
1. In the application list, select **Amazon Web Services (AWS)**.
137
139
1. In the app's overview page, find the **Manage** section and select **Users and groups**.
138
140
139
141

0 commit comments