Skip to content

Commit 76fddc9

Browse files
committed
Merge branch 'release-cogsvcs-custom-health' of https://github.com/MicrosoftDocs/azure-docs-pr into ta4h-article-fixes-2
2 parents 14fe9bf + 7a50e62 commit 76fddc9

File tree

236 files changed

+2816
-1680
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

236 files changed

+2816
-1680
lines changed

articles/active-directory-b2c/quickstart-web-app-dotnet.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ In this quickstart, you use an ASP.NET application to sign in using a social ide
3939
## Run the application in Visual Studio
4040
4141
1. In the sample application project folder, open the **B2C-WebAPI-DotNet.sln** solution in Visual Studio.
42-
1. For this quickstart, you run both the **TaskWebApp** and **TaskService** projects at the same time. Right-click the **B2C-WebAPI-DotNet** solution in Solution Explorer, and then select **Set StartUp Projects**.
42+
1. For this quickstart, you run both the **TaskWebApp** and **TaskService** projects at the same time. Right-click the **B2C-WebAPI-DotNet** solution in Solution Explorer, and then select **Configure StartUp Projects...**.
4343
1. Select **Multiple startup projects** and change the **Action** for both projects to **Start**.
4444
1. Select **OK**.
4545
1. Press **F5** to debug both applications. Each application opens in its own browser tab:

articles/active-directory/app-provisioning/plan-auto-user-provisioning.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.service: active-directory
88
ms.subservice: app-provisioning
99
ms.topic: conceptual
1010
ms.workload: identity
11-
ms.date: 04/14/2023
11+
ms.date: 04/17/2023
1212
ms.author: kenwith
1313
ms.reviewer: arvinh
1414
---

articles/active-directory/develop/authorization-basics.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ One method for achieving ABAC with Azure Active Directory is using [dynamic grou
5858

5959
Authorization logic is often implemented within the applications or solutions where access control is required. In many cases, application development platforms offer middleware or other API solutions that simplify the implementation of authorization. Examples include use of the [AuthorizeAttribute](/aspnet/core/security/authorization/simple?view=aspnetcore-5.0&preserve-view=true) in ASP.NET or [Route Guards](./scenario-spa-sign-in.md?tabs=angular2#sign-in-with-a-pop-up-window) in Angular.
6060

61-
For authorization approaches that rely on information about the authenticated entity, an application evaluates information exchanged during authentication. For example, by using the information that was provided within a [security token](./security-tokens.md)). For information not contained in a security token, an application might make extra calls to external resources.
61+
For authorization approaches that rely on information about the authenticated entity, an application evaluates information exchanged during authentication. For example, by using the information that was provided within a [security token](./security-tokens.md). For information not contained in a security token, an application might make extra calls to external resources.
6262

6363
It's not strictly necessary for developers to embed authorization logic entirely within their applications. Instead, dedicated authorization services can be used to centralize authorization implementation and management.
6464

@@ -67,4 +67,4 @@ It's not strictly necessary for developers to embed authorization logic entirely
6767

6868
- To learn about custom role-based access control implementation in applications, see [Role-based access control for application developers](./custom-rbac-for-developers.md).
6969
- To learn about the process of registering your application so it can integrate with the Microsoft identity platform, see [Application model](./application-model.md).
70-
- For an example of configuring simple authentication-based authorization, see [Configure your App Service or Azure Functions app to use Azure AD login](../../app-service/configure-authentication-provider-aad.md).
70+
- For an example of configuring simple authentication-based authorization, see [Configure your App Service or Azure Functions app to use Azure AD login](../../app-service/configure-authentication-provider-aad.md).

articles/active-directory/develop/developer-glossary.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ An identity used by a software workload like an application, service, script, or
238238

239239
## Workload identity federation
240240

241-
Allows you to securely access Azure AD protected resources from external apps and services without needing to manage secrets (for supported scenarios). For more information, see [workload identity federation](workload-identity-federation.md).)
241+
Allows you to securely access Azure AD protected resources from external apps and services without needing to manage secrets (for supported scenarios). For more information, see [workload identity federation](workload-identity-federation.md).
242242

243243
## Next steps
244244

articles/active-directory/develop/howto-build-services-resilient-to-metadata-refresh.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ services.Configure<JwtBearerOptions>(AzureADDefaults.JwtBearerAuthenticationSche
3535
// shouldn’t be necessary as it’s true by default
3636
options.RefreshOnIssuerKeyNotFound = true;
3737
38-
};
38+
});
3939
```
4040

4141
## ASP.NET/ OWIN

articles/active-directory/develop/includes/mobile-app/quickstart-ios.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ self.applicationContext!.acquireToken(with: parameters) { (result, error) in /*
218218

219219
> |Where:| Description |
220220
> |---------|---------|
221-
> | `scopes` | Contains the scopes being requested (that is, `[ "user.read" ]` for Microsoft Graph or `[ "<Application ID URL>/scope" ]` for custom web APIs (`api://<Application ID>/access_as_user`) |
221+
> | `scopes` | Contains the scopes being requested (that is, `[ "user.read" ]` for Microsoft Graph or `[ "<Application ID URL>/scope" ]` for custom web APIs (`api://<Application ID>/access_as_user`)) |
222222
223223
#### acquireTokenSilent: Get an access token silently
224224

@@ -238,7 +238,7 @@ self.applicationContext!.getCurrentAccount(with: nil) { (currentAccount, previou
238238

239239
> |Where: | Description |
240240
> |---------|---------|
241-
> | `scopes` | Contains the scopes being requested (that is, `[ "user.read" ]` for Microsoft Graph or `[ "<Application ID URL>/scope" ]` for custom web APIs (`api://<Application ID>/access_as_user`) |
241+
> | `scopes` | Contains the scopes being requested (that is, `[ "user.read" ]` for Microsoft Graph or `[ "<Application ID URL>/scope" ]` for custom web APIs (`api://<Application ID>/access_as_user`)) |
242242
> | `account` | The account a token is being requested for. This quickstart is about a single account application. If you want to build a multi-account app you'll need to define logic to identify which account to use for token requests using `accountsFromDeviceForParameters:completionBlock:` and passing correct `accountIdentifier` |
243243
244244
[!INCLUDE [Help and support](../../../../../includes/active-directory-develop-help-support-include.md)]

articles/active-directory/develop/includes/web-api/quickstart-aspnet-core.md

Lines changed: 5 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.service: active-directory
88
ms.subservice: develop
99
ms.topic: include
1010
ms.workload: identity
11-
ms.date: 12/09/2022
11+
ms.date: 04/16/2023
1212
ms.author: cwerner
1313
ms.reviewer: jmprieur
1414
ms.custom: devx-track-csharp, "scenarios:getting-started", "languages:aspnet-core", mode-api, engagement-fy23
@@ -48,10 +48,6 @@ First, register the web API in your Azure AD tenant and add a scope by following
4848

4949
[Download the ASP.NET Core solution](https://github.com/Azure-Samples/active-directory-dotnet-native-aspnetcore-v2/archive/aspnetcore3-1.zip) from GitHub.
5050

51-
> [!Note]
52-
> The code sample currently targets ASP.NET Core 3.1. The sample can be updated to use .NET Core 6.0 and is covered in the following steps: [Update the sample code to ASP.NET Core 6.0](#step-4-update-the-sample-code-to-aspnet-core-60)
53-
This quickstart will be deprecated in the near future and will be updated to use .NET 6.0.
54-
5551
## Step 3: Configure the ASP.NET Core project
5652

5753
In this step, the sample code will be configured to work with the app registration that was created earlier.
@@ -74,26 +70,7 @@ In this step, the sample code will be configured to work with the app registrati
7470

7571
For this quickstart, don't change any other values in the *appsettings.json* file.
7672

77-
### Step 4: Update the sample code to ASP.NET Core 6.0
78-
79-
To update this code sample to target ASP.NET Core 6.0, follow these steps:
80-
81-
1. Open webapi.csproj
82-
1. Remove the following line:
83-
84-
```xml
85-
<TargetFramework>netcoreapp3.1</TargetFramework>
86-
```
87-
88-
1. Add the following line in its place:
89-
90-
```xml
91-
<TargetFramework>netcoreapp6.0</TargetFramework>
92-
```
93-
94-
This step will ensure that the sample is targeting the .NET Core 6.0 framework.
95-
96-
### Step 5: Run the sample
73+
### Step 4: Run the sample
9774

9875
1. Open a terminal and change directory to the project folder.
9976

@@ -167,31 +144,28 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env)
167144
namespace webapi.Controllers
168145
{
169146
[Authorize]
147+
[RequiredScope("access_as_user")]
170148
[ApiController]
171149
[Route("[controller]")]
172150
public class WeatherForecastController : ControllerBase
173151
```
174152

175153
### Validation of scope in the controller
176154

177-
The code in the API verifies that the required scopes are in the token by using `HttpContext.VerifyUserHasAnyAcceptedScope(scopeRequiredByApi);`:
155+
The code in the API verifies that the required scopes are in the token by using `[RequiredScope("access_as_user")]` attribute:
178156

179157
```csharp
180158
namespace webapi.Controllers
181159
{
182160
[Authorize]
161+
[RequiredScope("access_as_user")]
183162
[ApiController]
184163
[Route("[controller]")]
185164
public class WeatherForecastController : ControllerBase
186165
{
187-
// The web API will only accept tokens 1) for users, and 2) having the "access_as_user" scope for this API
188-
static readonly string[] scopeRequiredByApi = new string[] { "access_as_user" };
189-
190166
[HttpGet]
191167
public IEnumerable<WeatherForecast> Get()
192168
{
193-
HttpContext.VerifyUserHasAnyAcceptedScope(scopeRequiredByApi);
194-
195169
// some code here
196170
}
197171
}

articles/active-directory/develop/includes/web-app/quickstart-aspnet-core.md

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ms.subservice: develop
1010
ms.topic: quickstart
1111
ms.workload: identity
1212

13-
ms.date: 12/19/2022
13+
ms.date: 04/16/2023
1414
ms.author: cwerner
1515

1616
ms.reviewer: jmprieur
@@ -50,10 +50,6 @@ See [How the sample works](#how-the-sample-works) for an illustration.
5050

5151
[Download the ASP.NET Core solution](https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/archive/aspnetcore3-1-callsgraph.zip)
5252

53-
> [!Note]
54-
> The code sample currently targets ASP.NET Core 3.1. The sample can be updated to use .NET Core 6.0 and is covered in the following steps: [Update the sample code to ASP.NET Core 6.0](#step-4-update-the-sample-code-to-aspnet-core-60)
55-
This quickstart will be deprecated in the near future and will be updated to use .NET 6.0.
56-
5753
### Step 3: Configure your ASP.NET Core project
5854

5955
1. Extract the *.zip* file to a local folder that's close to the root of the disk to avoid errors caused by path length limitations on Windows. For example, extract to *C:\Azure-Samples*.
@@ -74,27 +70,8 @@ This quickstart will be deprecated in the near future and will be updated to use
7470
- Replace `Enter_the_Client_Secret_Here` with the **Client secret** that was created and recorded in an earlier step.
7571

7672
For this quickstart, don't change any other values in the *appsettings.json* file.
77-
78-
### Step 4: Update the sample code to ASP.NET Core 6.0
79-
80-
To update this code sample to target ASP.NET Core 6.0, follow these steps:
81-
82-
1. Open WebApp-OpenIDConnect-DotNet.csproj
83-
1. Remove the following line:
84-
85-
```xml
86-
<TargetFramework>netcoreapp3.1</TargetFramework>
87-
```
88-
89-
1. Add the following line in its place:
90-
91-
```xml
92-
<TargetFramework>netcoreapp6.0</TargetFramework>
93-
```
94-
95-
This step will ensure that the sample is targeting the .NET Core 6.0 framework.
9673

97-
### Step 5: Build and run the application
74+
### Step 4: Build and run the application
9875

9976
Build and run the app in Visual Studio by selecting the **Debug** menu > **Start Debugging**, or by pressing the F5 key.
10077

articles/active-directory/develop/mobile-app-quickstart-portal-ios.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ ms.custom: aaddev, identityplatformtop40, "scenarios:getting-started", "language
209209
>
210210
> > |Where:| Description |
211211
> > |---------|---------|
212-
> > | `scopes` | Contains the scopes being requested (that is, `[ "user.read" ]` for Microsoft Graph or `[ "<Application ID URL>/scope" ]` for custom web APIs (`api://<Application ID>/access_as_user`) |
212+
> > | `scopes` | Contains the scopes being requested (that is, `[ "user.read" ]` for Microsoft Graph or `[ "<Application ID URL>/scope" ]` for custom web APIs (`api://<Application ID>/access_as_user`)) |
213213
>
214214
> #### acquireTokenSilent: Get an access token silently
215215
>
@@ -229,7 +229,7 @@ ms.custom: aaddev, identityplatformtop40, "scenarios:getting-started", "language
229229
>
230230
> > |Where: | Description |
231231
> > |---------|---------|
232-
> > | `scopes` | Contains the scopes being requested (that is, `[ "user.read" ]` for Microsoft Graph or `[ "<Application ID URL>/scope" ]` for custom web APIs (`api://<Application ID>/access_as_user`) |
232+
> > | `scopes` | Contains the scopes being requested (that is, `[ "user.read" ]` for Microsoft Graph or `[ "<Application ID URL>/scope" ]` for custom web APIs (`api://<Application ID>/access_as_user`)) |
233233
> > | `account` | The account a token is being requested for. This quickstart is about a single account application. If you want to build a multi-account app you'll need to define logic to identify which account to use for token requests using `accountsFromDeviceForParameters:completionBlock:` and passing correct `accountIdentifier` |
234234
>
235235
> [!INCLUDE [Help and support](../../../includes/active-directory-develop-help-support-include.md)]

articles/active-directory/develop/msal-authentication-flows.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ To satisfy either requirement, one of these operations must have been completed:
241241
- You as the application developer have selected **Grant** in the Azure portal for yourself.
242242
- A tenant admin has selected **Grant/revoke admin consent for {tenant domain}** in the **API permissions** tab of the app registration in the Azure portal; see [Add permissions to access your web API](quickstart-configure-app-access-web-apis.md#add-permissions-to-access-your-web-api).
243243
- You've provided a way for users to consent to the application; see [User consent](../manage-apps/user-admin-consent-overview.md#user-consent).
244-
- You've provided a way for the tenant admin to consent for the application; see [Administrator consent]../manage-apps/user-admin-consent-overview.md#administrator-consent).
244+
- You've provided a way for the tenant admin to consent for the application; see [Administrator consent](../manage-apps/user-admin-consent-overview.md#admin-consent).
245245

246246
For more information on consent, see [Permissions and consent](v2-permissions-and-consent.md#consent).
247247

0 commit comments

Comments
 (0)