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-b2c/active-directory-b2c-apps.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
@@ -120,7 +120,7 @@ To set up client credential flow, see [Azure Active Directory v2.0 and the OAuth
120
120
121
121
#### Web API chains (on-behalf-of flow)
122
122
123
-
Many architectures include a web API that needs to call another downstream web API, where both are secured by Azure AD B2C. This scenario is common in native clients that have a Web API back-end and calls a Microsoft online service such as the Azure AD Graph API.
123
+
Many architectures include a web API that needs to call another downstream web API, where both are secured by Azure AD B2C. This scenario is common in native clients that have a Web API back-end and calls a Microsoft online service such as the Microsoft Graph API or Azure AD Graph API.
124
124
125
125
This chained web API scenario can be supported by using the OAuth 2.0 JWT bearer credential grant, also known as the on-behalf-of flow. However, the on-behalf-of flow is not currently implemented in the Azure AD B2C.
Copy file name to clipboardExpand all lines: articles/active-directory/develop/about-microsoft-identity-platform.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
@@ -49,7 +49,7 @@ The following diagram shows the Microsoft identity experience at a high level, i
49
49
50
50
The Azure portal **[App registrations](https://go.microsoft.com/fwlink/?linkid=2083908)** experience is the one portal experience for managing all applications you’ve integrated with Microsoft identity platform. If you have been using the Application Registration Portal, start using the Azure portal app registration experience instead.
51
51
52
-
For integration with Azure AD B2C (when authenticating social or local identities), you’ll need to register your application in a B2C tenant. This experience is also part of the Azure portal.
52
+
For integration with Azure AD B2C (when authenticating social or local identities), you’ll need to register your application in an Azure AD B2C tenant. This experience is also part of the Azure portal.
53
53
54
54
The **application API in Microsoft Graph** is currently in preview. Use this API to programmatically configure your applications integrated with Microsoft identity platform for authenticating any Microsoft identity. However, until this API reaches general availability, you should use the Azure AD Graph 1.6 API and the application manifest.
> We strongly recommend that you use [Microsoft Graph](https://developer.microsoft.com/graph) instead of Azure AD Graph API to access Azure Active Directory resources. Our development efforts are now concentrated on Microsoft Graph and no further enhancements are planned for Azure AD Graph API. There are a very limited number of scenarios for which Azure AD Graph API might still be appropriate; for more information, see the [Microsoft Graph or the Azure AD Graph](https://dev.office.com/blogs/microsoft-graph-or-azure-ad-graph) blog post and [Migrate Azure AD Graph apps to Microsoft Graph](https://docs.microsoft.com/graph/migrate-azure-ad-graph-overview).
28
+
> We strongly recommend that you use [Microsoft Graph](https://developer.microsoft.com/graph) instead of Azure AD Graph API to access Azure Active Directory (Azure AD) resources. Our development efforts are now concentrated on Microsoft Graph and no further enhancements are planned for Azure AD Graph API. There are a very limited number of scenarios for which Azure AD Graph API might still be appropriate; for more information, see the [Microsoft Graph or the Azure AD Graph](https://dev.office.com/blogs/microsoft-graph-or-azure-ad-graph) blog post and [Migrate Azure AD Graph apps to Microsoft Graph](https://docs.microsoft.com/graph/migrate-azure-ad-graph-overview).
29
29
30
-
The Azure Active Directory (Azure AD) Graph API provides programmatic access to Azure AD through OData REST API endpoints. Applications can use Azure AD Graph API to perform create, read, update, and delete (CRUD) operations on directory data and objects. For example, you can use Azure AD Graph API to create a new user, view or update user’s properties, change user’s password, check group membership for role-based access, disable, or delete the user. For more information on Azure AD Graph API features and application scenarios, see [Azure AD Graph API](https://msdn.microsoft.com/Library/Azure/Ad/Graph/api/api-catalog) and [Azure AD Graph API prerequisites](https://msdn.microsoft.com/library/hh974476.aspx). Azure AD Graph API only works with work or school/organization accounts.
30
+
The Azure AD Graph API provides programmatic access to Azure AD through OData REST API endpoints. Applications can use Azure AD Graph API to perform create, read, update, and delete (CRUD) operations on directory data and objects. For example, you can use Azure AD Graph API to create a new user, view or update user’s properties, change user’s password, check group membership for role-based access, disable, or delete the user. For more information on Azure AD Graph API features and application scenarios, see [Azure AD Graph API](https://msdn.microsoft.com/Library/Azure/Ad/Graph/api/api-catalog) and [Azure AD Graph API prerequisites](https://msdn.microsoft.com/library/hh974476.aspx). Azure AD Graph API only works with work or school/organization accounts.
31
31
32
32
This article applies to Azure AD Graph API. For similar info related to Microsoft Graph API, see [Use the Microsoft Graph API](https://developer.microsoft.com/graph/docs/concepts/use_the_api).
> As of February 2019, we started the process to deprecate some earlier versions of Azure Active Directory Graph API in favor of the Microsoft Graph API.
28
-
>
29
-
> For details, updates, and time frames, see [Microsoft Graph or the Azure AD Graph](https://dev.office.com/blogs/microsoft-graph-or-azure-ad-graph) in the Office Dev Center.
30
-
>
31
-
> Moving forward, applications should use the Microsoft Graph API.
26
+
> We strongly recommend that you use [Microsoft Graph](https://developer.microsoft.com/graph) instead of Azure AD Graph API to access Azure Active Directory (Azure AD) resources. Our development efforts are now concentrated on Microsoft Graph and no further enhancements are planned for Azure AD Graph API. There are a very limited number of scenarios for which Azure AD Graph API might still be appropriate; for more information, see the [Microsoft Graph or the Azure AD Graph](https://dev.office.com/blogs/microsoft-graph-or-azure-ad-graph) blog post and [Migrate Azure AD Graph apps to Microsoft Graph](https://docs.microsoft.com/graph/migrate-azure-ad-graph-overview).
32
27
33
-
34
-
35
-
This article applies to Azure AD Graph API. For similar info related to Microsoft Graph API, see [Use the Microsoft Graph API](https://docs.microsoft.com/graph/use-the-api).
28
+
This article applies to Azure AD Graph API. For similar info related to Microsoft Graph API, see [Use the Microsoft Graph API](https://docs.microsoft.com/graph/use-the-api).
36
29
37
30
The Azure Active Directory Graph API provides programmatic access to Azure AD through REST API endpoints. Applications can use Azure AD Graph API to perform create, read, update, and delete (CRUD) operations on directory data and objects. For example, Azure AD Graph API supports the following common operations for a user object:
Copy file name to clipboardExpand all lines: articles/active-directory/develop/active-directory-how-applications-are-added.md
+9-4Lines changed: 9 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,22 +15,25 @@ ms.devlang: na
15
15
ms.topic: conceptual
16
16
ms.tgt_pltfrm: na
17
17
ms.workload: identity
18
-
ms.date: 06/04/2019
18
+
ms.date: 11/26/2019
19
19
ms.author: ryanwi
20
20
ms.custom: aaddev
21
-
ms.reviewer: elisol, lenalepa
21
+
ms.reviewer: lenalepa, sureshja
22
22
ms.collection: M365-identity-device-management
23
23
---
24
24
25
25
# How and why applications are added to Azure AD
26
26
27
-
There are two representations of applications in Azure AD:
27
+
There are two representations of applications in Azure AD:
28
+
28
29
*[Application objects](app-objects-and-service-principals.md#application-object) - Although there are [exceptions](#notes-and-exceptions), application objects can be considered the definition of an application.
29
30
*[Service principals](app-objects-and-service-principals.md#service-principal-object) - Can be considered an instance of an application.
30
31
Service principals generally reference an application object, and one application object can be referenced by multiple service principals across directories.
31
32
32
33
## What are application objects and where do they come from?
34
+
33
35
You can manage [application objects](app-objects-and-service-principals.md#application-object) in the Azure portal through the [App Registrations](https://aka.ms/appregistrations) experience. Application objects describe the application to Azure AD and can be considered the definition of the application, allowing the service to know how to issue tokens to the application based on its settings. The application object will only exist in its home directory, even if it's a multi-tenant application supporting service principals in other directories. The application object may include any of the following (as well as additional information not mentioned here):
36
+
34
37
* Name, logo, and publisher
35
38
* Redirect URIs
36
39
* Secrets (symmetric and/or asymmetric keys used to authenticate the application)
@@ -42,13 +45,15 @@ You can manage [application objects](app-objects-and-service-principals.md#appli
42
45
* Proxy metadata and configuration
43
46
44
47
Application objects can be created through multiple pathways, including:
48
+
45
49
* Application registrations in the Azure portal
46
50
* Creating a new application using Visual Studio and configuring it to use Azure AD authentication
47
51
* When an admin adds an application from the app gallery (which will also create a service principal)
48
-
* Using the Microsoft Graph API, Azure AD Graph API, or PowerShell to create a new application
52
+
* Using the Microsoft Graph API or PowerShell to create a new application
49
53
* Many others including various developer experiences in Azure and in API explorer experiences across developer centers
50
54
51
55
## What are service principals and where do they come from?
56
+
52
57
You can manage [service principals](app-objects-and-service-principals.md#service-principal-object) in the Azure portal through the [Enterprise Applications](https://portal.azure.com/#blade/Microsoft_AAD_IAM/StartboardApplicationsMenuBlade/AllApps/menuId/) experience. Service principals are what govern an application connecting to Azure AD and can be considered the instance of the application in your directory. For any given application, it can have at most one application object (which is registered in a "home" directory) and one or more service principal objects representing instances of the application in every directory in which it acts.
@@ -58,9 +58,9 @@ Admin consent done on behalf of an organization still requires the static permis
58
58
59
59
## Scopes, not resources
60
60
61
-
For apps using the v1.0 endpoint, an app can behave as a **resource**, or a recipient of tokens. A resource can define a number of **scopes** or **oAuth2Permissions** that it understands, allowing client apps to request tokens from that resource for a certain set of scopes. Consider the Azure AD Graph API as an example of a resource:
61
+
For apps using the v1.0 endpoint, an app can behave as a **resource**, or a recipient of tokens. A resource can define a number of **scopes** or **oAuth2Permissions** that it understands, allowing client apps to request tokens from that resource for a certain set of scopes. Consider the Microsoft Graph API as an example of a resource:
62
62
63
-
* Resource identifier, or `AppID URI`: `https://graph.windows.net/`
63
+
* Resource identifier, or `AppID URI`: `https://graph.microsoft.com/`
64
64
* Scopes, or `oAuth2Permissions`: `Directory.Read`, `Directory.Write`, and so on.
65
65
66
66
This holds true for the Microsoft identity platform endpoint. An app can still behave as a resource, define scopes, and be identified by a URI. Client apps can still request access to those scopes. However, the way that a client requests those permissions have changed.
OAuth2 permissions are permission scopes that a Azure AD for developers (v1.0) web API (resource) application exposes to client applications. These permission scopes may be granted to client applications during consent. See the section about `oauth2Permissions` in the [Azure Active Directory application manifest reference](reference-app-manifest.md#manifest-reference).
26
+
OAuth2 permissions are permission scopes that a Azure Active Directory (Azure AD) for developers (v1.0) web API (resource) application exposes to client applications. These permission scopes may be granted to client applications during consent. See the section about `oauth2Permissions` in the [Azure Active Directory application manifest reference](reference-app-manifest.md#manifest-reference).
27
27
28
28
## Scopes to request access to specific OAuth2 permissions of a v1.0 application
29
-
If you want to acquire tokens for specific scopes of a v1.0 application (for example the Azure AD graph, which is https:\//graph.windows.net), you need to create scopes by concatenating a desired resource identifier with a desired OAuth2 permission for that resource.
29
+
30
+
To acquire tokens for specific scopes of a v1.0 application (for example the Azure AD graph, which is https:\//graph.windows.net), you need to create scopes by concatenating a desired resource identifier with a desired OAuth2 permission for that resource.
30
31
31
32
For example, to access on behalf of the user a v1.0 web API where the app ID URI is `ResourceId`:
32
33
@@ -38,7 +39,7 @@ var scopes = new [] { ResourceId+"/user_impersonation"};
38
39
var scopes = [ ResourceId +"/user_impersonation"];
39
40
```
40
41
41
-
If you want to read and write with MSAL.NET Azure Active Directory using the Azure AD graph API (https:\//graph.windows.net/), you would create a list of scopes as in the following:
42
+
To read and write with MSAL.NET Azure AD using the Azure AD Graph API (https:\//graph.windows.net/), you need to create a list of scopes as shown in the following examples:
42
43
43
44
```csharp
44
45
stringResourceId="https://graph.windows.net/";
@@ -50,7 +51,7 @@ var ResourceId = "https://graph.windows.net/";
If you want to write the scope corresponding to the Azure Resource Manager API (https:\//management.core.windows.net/), you need to request the following scope (note the two slashes):
54
+
To write the scope corresponding to the Azure Resource Manager API (https:\//management.core.windows.net/), you need to request the following scope (note the two slashes):
@@ -64,11 +65,12 @@ var result = await app.AcquireTokenInteractive(scopes).ExecuteAsync();
64
65
65
66
The logic used by Azure AD is the following:
66
67
67
-
- For ADAL (v1.0) endpoint with a v1.0 access token (the only possible), aud=resource
68
-
- For MSAL (Microsoft identity platform (v2.0) endpoint) asking an access token for a resource accepting v2.0 tokens, aud=resource.AppId
69
-
- For MSAL (v2.0 endpoint) asking an access token for a resource accepting a v1.0 access token (which is the case above), Azure AD parses the desired audience from the requested scope by taking everything before the last slash and using it as the resource identifier. Therefore if https:\//database.windows.net expects an audience of "https:\//database.windows.net/", you'll need to request a scope of "https:\//database.windows.net//.default". See also GitHub issue [#747: Resource url's trailing slash is omitted, which caused sql auth failure](https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/747).
68
+
- For ADAL (Azure AD v1.0) endpoint with a v1.0 access token (the only possible), aud=resource
69
+
- For MSAL (Microsoft identity platform (v2.0)) endpoint asking an access token for a resource accepting v2.0 tokens, `aud=resource.AppId`
70
+
- For MSAL (v2.0 endpoint) asking an access token for a resource that accepts a v1.0 access token (which is the case above), Azure AD parses the desired audience from the requested scope by taking everything before the last slash and using it as the resource identifier. Therefore, if https:\//database.windows.net expects an audience of "https:\//database.windows.net/", you'll need to request a scope of "https:\//database.windows.net//.default". See also GitHub issue [#747: Resource url's trailing slash is omitted, which caused sql auth failure](https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/747).
70
71
71
72
## Scopes to request access to all the permissions of a v1.0 application
73
+
72
74
If you want to acquire a token for all the static scopes of a v1.0 application, append ".default" to the app ID URI of the API:
73
75
74
76
```csharp
@@ -81,5 +83,6 @@ var ResourceId = "someAppIDURI";
81
83
var scopes = [ ResourceId +"/.default"];
82
84
```
83
85
84
-
## Scopes to request for client credential flow / daemon app
86
+
## Scopes to request for a client credential flow/daemon app
87
+
85
88
In the case of client credential flow, the scope to pass would also be `/.default`. This tells to Azure AD: "all the app-level permissions that the admin has consented to in the application registration.
Copy file name to clipboardExpand all lines: articles/active-directory/develop/reference-saml-tokens.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -152,6 +152,7 @@ This is a sample of a typical SAML token.
152
152
</t:RequestSecurityTokenResponse>
153
153
154
154
## Related content
155
+
155
156
* See the Azure AD Graph [Policy operations](https://msdn.microsoft.com/library/azure/ad/graph/api/policy-operations) and the [Policy entity](https://msdn.microsoft.com/library/azure/ad/graph/api/entity-and-complex-type-reference#policy-entity), to learn more about managing token lifetime policy via the Azure AD Graph API.
156
157
* For more information and samples on managing policies via PowerShell cmdlets, including samples, see [Configurable token lifetimes in Azure AD](active-directory-configurable-token-lifetimes.md).
157
158
* Add [custom and optional claims](active-directory-optional-claims.md) to the tokens for your application.
0 commit comments