Skip to content

Commit 0ca8874

Browse files
Merge branch 'MicrosoftDocs:main' into docs-editor/how-to-data-encryption-portal-1692348994
2 parents eb0230b + 3452fea commit 0ca8874

9 files changed

+61
-58
lines changed

articles/active-directory/develop/authentication-flows-app-scenarios.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,30 @@
11
---
2-
title: Microsoft identity platform authentication flows & app scenarios
2+
title: Microsoft identity platform app types and authentication flows
33
description: Learn about application scenarios for the Microsoft identity platform, including authenticating identities, acquiring tokens, and calling protected APIs.
44
services: active-directory
55
author: cilwerner
66
manager: CelesteDG
77

8-
ms.assetid:
98
ms.service: active-directory
109
ms.subservice: develop
1110
ms.topic: conceptual
1211
ms.workload: identity
13-
ms.date: 05/05/2022
12+
ms.date: 08/11/2023
1413
ms.author: cwerner
1514
ms.reviewer: jmprieur
1615
ms.custom: aaddev, identityplatformtop40, scenarios:getting-started, has-adal-ref
17-
#Customer intent: As an app developer, I want to learn about authentication flows and application scenarios so I can create applications protected by the Microsoft identity platform.
16+
# Customer intent: As an app developer, I want to learn about authentication flows and application scenarios so I can create applications protected by the Microsoft identity platform.
1817
---
1918

20-
# Authentication flows and application scenarios
19+
# Microsoft identity platform app types and authentication flows
2120

2221
The Microsoft identity platform supports authentication for different kinds of modern application architectures. All of the architectures are based on the industry-standard protocols [OAuth 2.0 and OpenID Connect](./v2-protocols.md). By using the [authentication libraries for the Microsoft identity platform](reference-v2-libraries.md), applications authenticate identities and acquire tokens to access protected APIs.
2322

2423
This article describes authentication flows and the application scenarios that they're used in.
2524

2625
## Application categories
2726

28-
Tokens can be acquired from several types of applications, including:
27+
[Security tokens](./security-tokens.md) can be acquired from several types of applications, including:
2928

3029
- Web apps
3130
- Mobile apps
@@ -40,7 +39,7 @@ The following sections describe the categories of applications.
4039

4140
Authentication scenarios involve two activities:
4241

43-
- **Acquiring security tokens for a protected web API**: We recommend that you use the [Microsoft Authentication Library (MSAL)](reference-v2-libraries.md), developed and supported by Microsoft.
42+
- **Acquiring security tokens for a protected web API**: We recommend that you use the [Microsoft Authentication Library (MSAL)](msal-overview.md), developed and supported by Microsoft.
4443
- **Protecting a web API or a web app**: One challenge of protecting these resources is validating the security token. On some platforms, Microsoft offers [middleware libraries](reference-v2-libraries.md).
4544

4645
### With users or without users
@@ -75,7 +74,7 @@ The available authentication flows differ depending on the sign-in audience. Som
7574

7675
For more information, see [Supported account types](v2-supported-account-types.md#account-type-support-in-authentication-flows).
7776

78-
## Application scenarios
77+
## Application types
7978

8079
The Microsoft identity platform supports authentication for these app architectures:
8180

@@ -127,7 +126,7 @@ For a desktop app to call a web API that signs in users, use the interactive tok
127126

128127
There's another possibility for Windows-hosted applications on computers joined either to a Windows domain or by Azure Active Directory (Azure AD). These applications can silently acquire a token by using [integrated Windows authentication](https://aka.ms/msal-net-iwa).
129128

130-
Applications running on a device without a browser can still call an API on behalf of a user. To authenticate, the user must sign in on another device that has a web browser. This scenario requires that you use the [device code flow](https://aka.ms/msal-net-device-code-flow).
129+
Applications running on a device without a browser can still call an API on behalf of a user. To authenticate, the user must sign in on another device that has a web browser. This scenario requires that you use the [device code flow](v2-oauth2-device-code.md).
131130

132131
![Device code flow](media/scenarios/device-code-flow-app.svg)
133132

@@ -147,7 +146,7 @@ Similar to a desktop app, a mobile app calls the interactive token-acquisition m
147146

148147
MSAL iOS and MSAL Android use the system web browser by default. However, you can direct them to use the embedded web view instead. There are specificities that depend on the mobile platform: Universal Windows Platform (UWP), iOS, or Android.
149148

150-
Some scenarios, like those that involve Conditional Access related to a device ID or a device enrollment, require a broker to be installed on the device. Examples of brokers are Microsoft Company Portal on Android and Microsoft Authenticator on Android and iOS. MSAL can now interact with brokers. For more information about brokers, see [Leveraging brokers on Android and iOS](https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/wiki/leveraging-brokers-on-Android-and-iOS).
149+
Some scenarios, like those that involve Conditional Access related to a device ID or a device enrollment, require a broker to be installed on the device. Examples of brokers are Microsoft Company Portal on Android and Microsoft Authenticator on Android and iOS. MSAL can now interact with brokers. For more information about brokers, see [Leveraging brokers on Android and iOS](msal-net-use-brokers-with-xamarin-apps.md).
151150

152151
For more information, see [Mobile app that calls web APIs](scenario-mobile-overview.md).
153152

articles/active-directory/develop/msal-client-application-configuration.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.service: active-directory
99
ms.subservice: develop
1010
ms.topic: conceptual
1111
ms.workload: identity
12-
ms.date: 07/15/2022
12+
ms.date: 08/11/2023
1313
ms.author: cwerner
1414
ms.reviewer: saeeda
1515
ms.custom: aaddev, has-adal-ref
@@ -45,8 +45,8 @@ The authority you specify in your code needs to be consistent with the **Support
4545
The authority can be:
4646

4747
- An Azure AD cloud authority.
48-
- An Azure AD B2C authority. See [B2C specifics](https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/wiki/AAD-B2C-specifics).
49-
- An Active Directory Federation Services (AD FS) authority. See [AD FS support](https://aka.ms/msal-net-adfs-support).
48+
- An Azure AD B2C authority. See [B2C specifics](msal-net-b2c-considerations.md).
49+
- An Active Directory Federation Services (AD FS) authority. See [AD FS support](msal-net-adfs-support.md).
5050

5151
Azure AD cloud authorities have two parts:
5252

@@ -129,7 +129,7 @@ You can override the redirect URI by using the `RedirectUri` property (for examp
129129
- `RedirectUriOnAndroid` = "msauth-5a434691-ccb2-4fd1-b97b-b64bcfbc03fc://com.microsoft.identity.client.sample";
130130
- `RedirectUriOnIos` = $"msauth.{Bundle.ID}://auth";
131131

132-
For more iOS details, see [Migrate iOS applications that use Microsoft Authenticator from ADAL.NET to MSAL.NET](msal-net-migration-ios-broker.md) and [Leveraging the broker on iOS](https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/wiki/Leveraging-the-broker-on-iOS).
132+
For more iOS details, see [Migrate iOS applications that use Microsoft Authenticator from ADAL.NET to MSAL.NET](msal-net-migration-ios-broker.md) and [Leveraging the broker on iOS](msal-net-use-brokers-with-xamarin-apps.md).
133133
For more Android details, see [Brokered auth in Android](msal-android-single-sign-on.md).
134134

135135
### Redirect URI for confidential client apps

articles/active-directory/develop/scenario-web-app-call-api-acquire-token.md

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.service: active-directory
99
ms.subservice: develop
1010
ms.topic: conceptual
1111
ms.workload: identity
12-
ms.date: 05/06/2022
12+
ms.date: 08/11/2023
1313
ms.author: cwerner
1414
ms.reviewer: jmprieur
1515
ms.custom: aaddev
@@ -81,19 +81,15 @@ These advanced steps are covered in chapter 3 of the [3-WebApp-multi-APIs](https
8181

8282
The code for ASP.NET is similar to the code shown for ASP.NET Core:
8383

84-
- A controller action, protected by an [Authorize] attribute, extracts the tenant ID and user ID of the `ClaimsPrincipal` member of the controller. (ASP.NET uses `HttpContext.User`.)
85-
*Microsoft.Identity.Web* adds extension methods to the Controller that provide convenience services to call Microsoft Graph or a downstream web API, or to get an authorization header, or even a token. The methods used to call an API directly are explained in detail in [A web app that calls web APIs: Call an API](scenario-web-app-call-api-call-api.md). With these helper methods, you don't need to manually acquire a token.
84+
- A controller action, protected by an `[Authorize]` attribute, extracts the tenant ID and user ID of the `ClaimsPrincipal` member of the controller (ASP.NET uses `HttpContext.User`). This ensures that only authenticated users can use the app.
85+
**Microsoft.Identity.Web** adds extension methods to the Controller that provide convenience services to call Microsoft Graph or a downstream web API, or to get an authorization header, or even a token. The methods used to call an API directly are explained in detail in [A web app that calls web APIs: Call an API](scenario-web-app-call-api-call-api.md). With these helper methods, you don't need to manually acquire a token.
8686

87-
If, however, you do want to manually acquire a token or build an authorization header, the following code shows how to use *Microsoft.Identity.Web* to do so in a controller. It calls an API (Microsoft Graph) using the REST API instead of the Microsoft Graph SDK.
87+
If, however, you do want to manually acquire a token or build an authorization header, the following code shows how to use Microsoft.Identity.Web to do so in a controller. It calls an API (Microsoft Graph) using the REST API instead of the Microsoft Graph SDK.
8888

8989
To get an authorization header, you get an `IAuthorizationHeaderProvider` service from the controller using an extension method `GetAuthorizationHeaderProvider`. To get an authorization header to call an API on behalf of the user, use `CreateAuthorizationHeaderForUserAsync`. To get an authorization header to call a downstream API on behalf of the application itself, in a daemon scenario, use `CreateAuthorizationHeaderForAppAsync`.
9090

91-
The controller methods are protected by an `[Authorize]` attribute that ensures only authenticated users can use the web app.
92-
93-
9491
The following snippet shows the action of the `HomeController`, which gets an authorization header to call Microsoft Graph as a REST API:
9592

96-
9793
```csharp
9894
[Authorize]
9995
public class HomeController : Controller
@@ -139,7 +135,7 @@ public class HomeController : Controller
139135

140136
# [Java](#tab/java)
141137

142-
In the Java sample, the code that calls an API is in the getUsersFromGraph method in [AuthPageController.java#L62](https://github.com/Azure-Samples/ms-identity-java-webapp/blob/d55ee4ac0ce2c43378f2c99fd6e6856d41bdf144/src/main/java/com/microsoft/azure/msalwebsample/AuthPageController.java#L62).
138+
In the Java sample, the code that calls an API is in the `getUsersFromGraph` method in [AuthPageController.java#L62](https://github.com/Azure-Samples/ms-identity-java-webapp/blob/d55ee4ac0ce2c43378f2c99fd6e6856d41bdf144/src/main/java/com/microsoft/azure/msalwebsample/AuthPageController.java#L62).
143139

144140
The method attempts to call `getAuthResultBySilentFlow`. If the user needs to consent to more scopes, the code processes the `MsalInteractionRequiredException` object to challenge the user.
145141

@@ -201,7 +197,7 @@ public ModelAndView getUserFromGraph(HttpServletRequest httpRequest, HttpServlet
201197

202198
# [Node.js](#tab/nodejs)
203199

204-
In the Node.js sample, the code that acquires a token is in the *acquireToken* method of the **AuthProvider** class.
200+
In the Node.js sample, the code that acquires a token is in the `acquireToken` method of the `AuthProvider` class.
205201

206202
:::code language="js" source="~/ms-identity-node/App/auth/AuthProvider.js" range="79-121":::
207203

@@ -211,7 +207,7 @@ This access token is then used to handle requests to the `/profile` endpoint:
211207

212208
# [Python](#tab/python)
213209

214-
In the Python sample, the code that calls the API is in `app.py`.
210+
In the Python sample, the code that calls the API is in *app.py*.
215211

216212
The code attempts to get a token from the token cache. If it can't get a token, it redirects the user to the sign-in route. Otherwise, it can proceed to call the API.
217213

@@ -246,4 +242,4 @@ Move on to the next article in this scenario,
246242
Move on to the next article in this scenario,
247243
[Call a web API](scenario-web-app-call-api-call-api.md?tabs=python).
248244

249-
---
245+
---

articles/active-directory/develop/single-sign-on-saml-protocol.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Azure single sign-on SAML protocol
2+
title: Single sign-on SAML protocol
33
description: This article describes the single sign-on (SSO) SAML protocol in Azure Active Directory
44
services: active-directory
55
documentationcenter: .net
@@ -10,7 +10,7 @@ ms.service: active-directory
1010
ms.subservice: develop
1111
ms.workload: identity
1212
ms.topic: conceptual
13-
ms.date: 08/31/2022
13+
ms.date: 08/11/2023
1414
ms.author: owenrichards
1515
ms.reviewer: kenwith
1616
ms.custom: aaddev
@@ -44,14 +44,14 @@ To request a user authentication, cloud services send an `AuthnRequest` element
4444

4545
| Parameter | Type | Description |
4646
| --- | --- | --- |
47-
| ID | Required | Azure AD uses this attribute to populate the `InResponseTo` attribute of the returned response. ID must not begin with a number, so a common strategy is to prepend a string like "ID" to the string representation of a GUID. For example, `id6c1c178c166d486687be4aaf5e482730` is a valid ID. |
48-
| Version | Required | This parameter should be set to **2.0**. |
49-
| IssueInstant | Required | This is a DateTime string with a UTC value and [round-trip format ("o")](/dotnet/standard/base-types/standard-date-and-time-format-strings). Azure AD expects a DateTime value of this type, but doesn't evaluate or use the value. |
50-
| AssertionConsumerServiceURL | Optional | If provided, this parameter must match the `RedirectUri` of the cloud service in Azure AD. |
51-
| ForceAuthn | Optional | This is a boolean value. If true, it means that the user will be forced to re-authenticate, even if they have a valid session with Azure AD. |
52-
| IsPassive | Optional | This is a boolean value that specifies whether Azure AD should authenticate the user silently, without user interaction, using the session cookie if one exists. If this is true, Azure AD will attempt to authenticate the user using the session cookie. |
53-
54-
All other `AuthnRequest` attributes, such as Consent, Destination, AssertionConsumerServiceIndex, AttributeConsumerServiceIndex, and ProviderName are **ignored**.
47+
| `ID` | Required | Azure AD uses this attribute to populate the `InResponseTo` attribute of the returned response. ID must not begin with a number, so a common strategy is to prepend a string like "ID" to the string representation of a GUID. For example, `id6c1c178c166d486687be4aaf5e482730` is a valid ID. |
48+
| `Version` | Required | This parameter should be set to `2.0`. |
49+
| `IssueInstant` | Required | This is a DateTime string with a UTC value and [round-trip format ("o")](/dotnet/standard/base-types/standard-date-and-time-format-strings). Azure AD expects a DateTime value of this type, but doesn't evaluate or use the value. |
50+
| `AssertionConsumerServiceURL` | Optional | If provided, this parameter must match the `RedirectUri` of the cloud service in Azure AD. |
51+
| `ForceAuthn` | Optional | This is a boolean value. If true, it means that the user will be forced to re-authenticate, even if they have a valid session with Azure AD. |
52+
| `IsPassive` | Optional | This is a boolean value that specifies whether Azure AD should authenticate the user silently, without user interaction, using the session cookie if one exists. If this is true, Azure AD will attempt to authenticate the user using the session cookie. |
53+
54+
All other `AuthnRequest` attributes, such as `Consent`, `Destination`, `AssertionConsumerServiceIndex`, `AttributeConsumerServiceIndex`, and `ProviderName` are **ignored**.
5555

5656
Azure AD also ignores the `Conditions` element in `AuthnRequest`.
5757

articles/active-directory/develop/v2-app-types.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ ms.custom: aaddev, fasttrack-edit, contperf-fy21q2, devx-track-js
1717

1818
# Application types for the Microsoft identity platform
1919

20-
The Microsoft identity platform supports authentication for various modern app architectures, all of them based on industry-standard protocols [OAuth 2.0 or OpenID Connect](./v2-protocols.md). This article describes the types of apps that you can build by using Microsoft identity platform, regardless of your preferred language or platform. The information is designed to help you understand high-level scenarios before you start working with the code in the [application scenarios](authentication-flows-app-scenarios.md#application-scenarios).
20+
The Microsoft identity platform supports authentication for various modern app architectures, all of them based on industry-standard protocols [OAuth 2.0 or OpenID Connect](./v2-protocols.md). This article describes the types of apps that you can build by using Microsoft identity platform, regardless of your preferred language or platform. The information is designed to help you understand high-level scenarios before you start working with the code in the [application scenarios](authentication-flows-app-scenarios.md#application-types).
2121

2222
## The basics
2323

articles/active-directory/develop/v2-oauth-ropc.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Sign in with resource owner password credentials grant
2+
title: Microsoft identity platform and OAuth 2.0 Resource Owner Password Credentials
33
description: Support browser-less authentication flows using the resource owner password credential (ROPC) grant.
44
services: active-directory
55
author: OwenRichards1
@@ -9,7 +9,7 @@ ms.service: active-directory
99
ms.subservice: develop
1010
ms.workload: identity
1111
ms.topic: conceptual
12-
ms.date: 08/26/2022
12+
ms.date: 08/11/2023
1313
ms.author: owenrichards
1414
ms.reviewer: ludwignick
1515
ms.custom: aaddev
@@ -22,7 +22,6 @@ The Microsoft identity platform supports the [OAuth 2.0 Resource Owner Password
2222
> [!WARNING]
2323
> Microsoft recommends you do _not_ use the ROPC flow. In most scenarios, more secure alternatives are available and recommended. This flow requires a very high degree of trust in the application, and carries risks that are not present in other flows. You should only use this flow when other more secure flows aren't viable.
2424
25-
2625
> [!IMPORTANT]
2726
>
2827
> * The Microsoft identity platform only supports the ROPC grant within Azure AD tenants, not personal accounts. This means that you must use a tenant-specific endpoint (`https://login.microsoftonline.com/{TenantId_or_Name}`) or the `organizations` endpoint.

0 commit comments

Comments
 (0)