Skip to content

Commit 3e9cfd7

Browse files
authored
Merge pull request #229745 from MicrosoftDocs/main
3/07 AM Publish
2 parents 47e5170 + 96c31bf commit 3e9cfd7

File tree

157 files changed

+3096
-1560
lines changed

Some content is hidden

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

157 files changed

+3096
-1560
lines changed

articles/active-directory-domain-services/concepts-custom-attributes.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
title: Create and manage custom attributes for Azure AD Domain Services | Microsoft Docs
33
description: Learn how to create and manage custom attributes in an Azure AD DS managed domain.
44
services: active-directory-ds
5-
author: justinha
5+
author: AlexCesarini
66
manager: amycolannino
77

88
ms.assetid: 1a14637e-b3d0-4fd9-ba7a-576b8df62ff2
99
ms.service: active-directory
1010
ms.subservice: domain-services
1111
ms.workload: identity
1212
ms.topic: how-to
13-
ms.date: 03/06/2023
13+
ms.date: 03/07/2023
1414
ms.author: justinha
1515

1616
---
@@ -44,7 +44,7 @@ After you create a managed domain, click **Custom Attributes (Preview)** under *
4444

4545
## Enable predefined attribute synchronization
4646

47-
Click **OnPremisesExtensionAttributes** to synchronize the attributes extensionAttribute1-15, also known as [Exchange custom attributes](/graph/api/resources/onpremisesextensionattributes?view=graph-rest-1.0).
47+
Click **OnPremisesExtensionAttributes** to synchronize the attributes extensionAttribute1-15, also known as [Exchange custom attributes](/graph/api/resources/onpremisesextensionattributes).
4848

4949
## Synchronize Azure AD directory extension attributes
5050

articles/active-directory/app-provisioning/use-scim-to-provision-users-and-groups.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.service: active-directory
88
ms.subservice: app-provisioning
99
ms.workload: identity
1010
ms.topic: tutorial
11-
ms.date: 02/28/2023
11+
ms.date: 03/07/2023
1212
ms.author: kenwith
1313
ms.reviewer: arvinh
1414
---
@@ -195,7 +195,7 @@ Use the general guidelines when implementing a SCIM endpoint to ensure compatibi
195195
* Don't require a case-sensitive match on structural elements in SCIM, in particular **PATCH** `op` operation values, as defined in [section 3.5.2](https://tools.ietf.org/html/rfc7644#section-3.5.2). Azure AD emits the values of `op` as **Add**, **Replace**, and **Remove**.
196196
* Microsoft Azure AD makes requests to fetch a random user and group to ensure that the endpoint and the credentials are valid. It's also done as a part of the **Test Connection** flow in the [Azure portal](https://portal.azure.com).
197197
* Support HTTPS on your SCIM endpoint.
198-
* Custom complex and multivalued attributes are supported but Azure AD doesn't have many complex data structures to pull data from in these cases. Simple paired name/value type complex attributes can be mapped to easily, but flowing data to complex attributes with three or more subattributes aren't well supported at this time.
198+
* Custom complex and multivalued attributes are supported but Azure AD doesn't have many complex data structures to pull data from in these cases. Name/value attributes can be mapped to easily, but flowing data to complex attributes with three or more sub-attributes isn't supported.
199199
* The "type" subattribute values of multivalued complex attributes must be unique. For example, there can't be two different email addresses with the "work" subtype.
200200
* The header for all the responses should be of content-Type: application/scim+json
201201

@@ -914,7 +914,7 @@ TLS 1.2 Cipher Suites minimum bar:
914914

915915
### IP Ranges
916916

917-
The Azure AD provisioning service currently operates under the IP Ranges for AzureActiveDirectory as listed [here](https://www.microsoft.com/download/details.aspx?id=56519&WT.mc_id=rss_alldownloads_all). You can add the IP ranges listed under the AzureActiveDirectory tag to allow traffic from the Azure AD provisioning service into your application. You'll need to review the IP range list carefully for computed addresses. An address such as '40.126.25.32' could be represented in the IP range list as '40.126.0.0/18'. You can also programmatically retrieve the IP range list using the following [API](/rest/api/virtualnetwork/servicetags/list).
917+
The Azure AD provisioning service currently operates under the IP Ranges for AzureActiveDirectory as listed [here](https://www.microsoft.com/download/details.aspx?id=56519&WT.mc_id=rss_alldownloads_all). You can add the IP ranges listed under the AzureActiveDirectory tag to allow traffic from the Azure AD provisioning service into your application. You need to review the IP range list carefully for computed addresses. An address such as '40.126.25.32' could be represented in the IP range list as '40.126.0.0/18'. You can also programmatically retrieve the IP range list using the following [API](/rest/api/virtualnetwork/servicetags/list).
918918

919919
Azure AD also supports an agent based solution to provide connectivity to applications in private networks (on-premises, hosted in Azure, hosted in AWS, etc.). Customers can deploy a lightweight agent, which provides connectivity to Azure AD without opening any inbound ports, on a server in their private network. Learn more [here](./on-premises-scim-provisioning.md).
920920

articles/active-directory/develop/msal-b2c-overview.md

Lines changed: 3 additions & 3 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: 06/05/2020
12+
ms.date: 03/07/2023
1313
ms.author: henrymbugua
1414
ms.reviewer: nacanuma, negoe
1515
ms.custom: aaddev devx-track-js
@@ -20,7 +20,7 @@ ms.custom: aaddev devx-track-js
2020

2121
The [Microsoft Authentication Library for JavaScript (MSAL.js)](https://github.com/AzureAD/microsoft-authentication-library-for-js) enables JavaScript developers to authenticate users with social and local identities using [Azure Active Directory B2C](../../active-directory-b2c/overview.md) (Azure AD B2C).
2222

23-
By using Azure AD B2C as an identity management service, you can customize and control how your customers sign up, sign in, and manage their profiles when they use your applications.
23+
By using Azure AD B2C as an identity management service, you can customize and control how your customers sign up, sign in, and manage their profiles when they use your applications.
2424

2525
Azure AD B2C also enables you to brand and customize the UI that your application displays during the authentication process.
2626

@@ -40,4 +40,4 @@ For more information, see: [Working with Azure AD B2C](https://github.com/AzureA
4040
Follow the tutorial on how to:
4141

4242
- [Sign in users with Azure AD B2C in a single-page application](../../active-directory-b2c/configure-authentication-sample-spa-app.md)
43-
- [Call an Azure AD B2C protected web API](../../active-directory-b2c/enable-authentication-web-api.md)
43+
- [Call an Azure AD B2C protected web API](../../active-directory-b2c/enable-authentication-web-api.md)

articles/active-directory/develop/tutorial-v2-windows-uwp.md

Lines changed: 50 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.service: active-directory
99
ms.subservice: develop
1010
ms.topic: tutorial
1111
ms.workload: identity
12-
ms.date: 12/13/2019
12+
ms.date: 03/03/2023
1313
ms.author: henrymbugua
1414
ms.reviewer: jmprieur
1515
ms.custom: "devx-track-csharp, aaddev, identityplatformtop40"
@@ -108,6 +108,7 @@ This section shows how to use the Microsoft Authentication Library to get a toke
108108
```csharp
109109
using Microsoft.Identity.Client;
110110
using Microsoft.Graph;
111+
using Microsoft.Graph.Models;
111112
using System.Diagnostics;
112113
using System.Threading.Tasks;
113114
using System.Net.Http.Headers;
@@ -152,7 +153,7 @@ This section shows how to use the Microsoft Authentication Library to get a toke
152153
GraphServiceClient graphClient = await SignInAndInitializeGraphServiceClient(scopes);
153154

154155
// Call the /me endpoint of Graph
155-
User graphUser = await graphClient.Me.Request().GetAsync();
156+
User graphUser = await graphClient.Me.GetAsync();
156157

157158
// Go back to the UI thread to make changes to the UI
158159
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
@@ -236,6 +237,42 @@ Eventually, the `AcquireTokenSilent` method fails. Reasons for failure include a
236237

237238
### Instantiate the Microsoft Graph Service Client by obtaining the token from the SignInUserAndGetTokenUsingMSAL method
238239

240+
In the project, create a new file named *TokenProvider.cs*: right-click on the project, select **Add** > **New Item** > **Blank Page**.
241+
242+
Add to the newly created file the following code:
243+
244+
```csharp
245+
using Microsoft.Kiota.Abstractions.Authentication;
246+
using System;
247+
using System.Collections.Generic;
248+
using System.Threading;
249+
using System.Threading.Tasks;
250+
251+
namespace UWP_app_MSGraph {
252+
public class TokenProvider : IAccessTokenProvider {
253+
private Func<string[], Task<string>> getTokenDelegate;
254+
private string[] scopes;
255+
256+
public TokenProvider(Func<string[], Task<string>> getTokenDelegate, string[] scopes) {
257+
this.getTokenDelegate = getTokenDelegate;
258+
this.scopes = scopes;
259+
}
260+
261+
public Task<string> GetAuthorizationTokenAsync(Uri uri, Dictionary<string, object> additionalAuthenticationContext = default,
262+
CancellationToken cancellationToken = default) {
263+
return getTokenDelegate(scopes);
264+
}
265+
266+
public AllowedHostsValidator AllowedHostsValidator { get; }
267+
}
268+
}
269+
```
270+
271+
> [!TIP]
272+
> After pasting the code, make sure that the namespace in the *TokenProvider.cs* file matches the namespace of your project. This will allow you to more easily reference the `TokenProvider` class in your project.
273+
274+
The `TokenProvider` class defines a custom access token provider that executes the specified delegate method to get and return an access token.
275+
239276
Add the following new method to *MainPage.xaml.cs*:
240277

241278
```csharp
@@ -245,16 +282,22 @@ Add the following new method to *MainPage.xaml.cs*:
245282
/// <returns>GraphServiceClient</returns>
246283
private async static Task<GraphServiceClient> SignInAndInitializeGraphServiceClient(string[] scopes)
247284
{
248-
GraphServiceClient graphClient = new GraphServiceClient(MSGraphURL,
249-
new DelegateAuthenticationProvider(async (requestMessage) =>
250-
{
251-
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", await SignInUserAndGetTokenUsingMSAL(scopes));
252-
}));
285+
var tokenProvider = new TokenProvider(SignInUserAndGetTokenUsingMSAL, scopes);
286+
var authProvider = new BaseBearerTokenAuthenticationProvider(tokenProvider);
287+
var graphClient = new GraphServiceClient(authProvider, MSGraphURL);
253288

254289
return await Task.FromResult(graphClient);
255290
}
256291
```
257292

293+
In this method, you're using the custom access token provider `TokenProvider` to connect the `SignInUserAndGetTokenUsingMSAL` method to the Microsoft Graph .NET SDK and create an authenticated client.
294+
295+
To use the `BaseBearerTokenAuthenticationProvider`, in the *MainPage.xaml.cs* file, add the following reference:
296+
297+
```cs
298+
using Microsoft.Kiota.Abstractions.Authentication;
299+
```
300+
258301
#### More information on making a REST call against a protected API
259302

260303
In this sample application, the `GetGraphServiceClient` method instantiates `GraphServiceClient` by using an access token. Then, `GraphServiceClient` is used to get the user's profile information from the **me** endpoint.
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
---
2+
title: How to use Azure Active Directory recommendations | Microsoft Docs
3+
description: Learn how to use Azure Active Directory recommendations.
4+
services: active-directory
5+
author: shlipsey3
6+
manager: amycolannino
7+
ms.service: active-directory
8+
ms.topic: how-to
9+
ms.workload: identity
10+
ms.subservice: report-monitor
11+
ms.date: 03/06/2023
12+
ms.author: sarahlipsey
13+
ms.reviewer: hafowler
14+
---
15+
16+
# How to: Use Azure AD recommendations
17+
18+
The Azure Active Directory (Azure AD) recommendations feature provides you with personalized insights with actionable guidance to:
19+
20+
- Help you identify opportunities to implement best practices for Azure AD-related features.
21+
- Improve the state of your Azure AD tenant.
22+
- Optimize the configurations for your scenarios.
23+
24+
This article covers how to work with Azure AD recommendations. Each Azure AD recommendation contains similar details such as a description, the value of addressing the recommendation, and the steps to address the recommendation. Microsoft Graph API guidance is also provided in this article.
25+
26+
## Role requirements
27+
28+
There are different role requirements for viewing or updating a recommendation. Use the least-privileged role for the type of access needed.
29+
30+
| Azure AD role | Access type |
31+
|---- |---- |
32+
| Reports Reader | Read-only |
33+
| Security Reader | Read-only |
34+
| Global Reader | Read-only |
35+
| Cloud apps Administrator | Update and read |
36+
| Apps Administrator | Update and read |
37+
| Security Operator | Update and read |
38+
| Security Administrator | Update and read |
39+
40+
Some recommendations may require a P2 or other license. For more information, see [Recommendation availability and license requirements](overview-recommendations.md#recommendation-availability-and-license-requirements).
41+
42+
## How to read a recommendation
43+
44+
To view the details of a recommendation:
45+
46+
1. Sign in to Azure using the appropriate least-privilege role.
47+
1. Go to **Azure AD** > **Recommendations** and select a recommendation from the list.
48+
49+
![Screenshot of the list of recommendations.](./media/howto-use-recommendations/recommendations-list.png)
50+
51+
Each recommendation provides the same set of details that explain what the recommendation is, why it's important, and how to fix it.
52+
53+
![Screenshot of a recommendation's status, priority, and impacted resource type.](./media/howto-use-recommendations/recommendation-status-risk.png)
54+
55+
- The **Status** of a recommendation can be updated manually or automatically by the system. If all resources are addressed according to the action plan, the status automatically changes to *Completed* the next time the recommendations service runs. The recommendation service runs every 24-48 hours, depending on the recommendation.
56+
57+
- The **Priority** of a recommendation could be low, medium, or high. These values are determined by several factors, such as security implications, health concerns, or potential breaking changes.
58+
59+
- **High**: Must do. Not acting will result in severe security implications or potential downtime.
60+
- **Medium**: Should do. No severe risk if action isn't taken.
61+
- **Low**: Might do. No security risks or health concerns if action isn't taken.
62+
63+
- The **Impacted resource type** for a recommendation could be applications, users, or your full tenant. This detail gives you an idea of what type of resources you need to address. If the impacted resource is at the tenant level, you may need to make a global change.
64+
65+
![Screenshot of the recommendation status description, description, and value.](media/howto-use-recommendations/status-description-value.png)
66+
67+
- The **Status description** tells you the date the recommendation status changed and if it was changed by the system or a user.
68+
69+
- The recommendation's **Value** is an explanation of why completing the recommendation will benefit you, and the value of the associated feature.
70+
71+
- The **Action plan** provides step-by-step instructions to implement a recommendation. The Action plan may include links to relevant documentation or direct you to other pages in the Azure AD portal.
72+
73+
- The **Impacted resources** table contains a list of resources identified by the recommendation. The resource's name, ID, date it was first detected, and status are provided. The resource could be an application or resource service principal, for example.
74+
75+
## How to update a recommendation
76+
77+
To update the status of a recommendation or a related resource, sign in to Azure using a least-privileged role for updating a recommendation.
78+
79+
1. Go to **Azure AD** > **Recommendations**.
80+
81+
1. Select a recommendation from the list to view the details, status, and action plan.
82+
83+
1. Follow the **Action plan**.
84+
85+
1. If applicable, *right-click on the status* of a resource in a recommendation, select **Mark as**, then select a status.
86+
87+
- The status for the resource appears as regular text, but you can right-click on the status to open the menu.
88+
- You can set each resource to a different status as needed.
89+
90+
![Screenshot of the status options for a resource.](./media/howto-use-recommendations/resource-mark-as-option.png)
91+
92+
1. The recommendation service automatically marks the recommendation as complete, but if you need to manually change the status of a recommendation, select **Mark as** from the top of the page and select a status.
93+
94+
![Screenshot of the Mark as options, to highlight the difference from the resource menu.](./media/howto-use-recommendations/recommendation-mark-as-options.png)
95+
96+
- Mark a recommendation as **Dismissed** if you think the recommendation is irrelevant or the data is wrong.
97+
- Azure AD asks for a reason why you dismissed the recommendation so we can improve the service.
98+
- Mark a recommendation as **Postponed** if you want to address the recommendation at a later time.
99+
- The recommendation becomes **Active** when the selected date occurs.
100+
- You can reactivate a completed or postponed recommendation to keep it top of mind and reassess the resources.
101+
- Recommendations change to **Completed** if all impacted resources have been addressed.
102+
- If the service identifies an active resource for a completed recommendation the next time the service runs, the recommendation will automatically change back to **Active**.
103+
- Completing a recommendation is the only action collected in the audit log. To view these logs, go to **Azure AD** > **Audit logs** and filter the service to "Azure AD recommendations."
104+
105+
Continue to monitor the recommendations in your tenant for changes.
106+
107+
### How to use Microsoft Graph with Azure Active Directory recommendations
108+
109+
Azure Active Directory recommendations can be viewed and managed using Microsoft Graph on the `/beta` endpoint. You can view recommendations along with their impacted resources, postpone a recommendation for later, and more.
110+
111+
To get started, follow these instructions to work with recommendations using Microsoft Graph in Graph Explorer. The example uses the "Migrate apps from Active Directory Federated Services (ADFS) to Azure AD" recommendation.
112+
113+
1. Sign in to [Graph Explorer](https://aka.ms/ge).
114+
1. Select **GET** as the HTTP method from the dropdown.
115+
1. Set the API version to **beta**.
116+
1. Add the following query to retrieve recommendations, then select the **Run query** button.
117+
118+
```http
119+
GET https://graph.microsoft.com/beta/directory/recommendations
120+
```
121+
122+
1. To view the details of a specific `recommendationType`, use the following API. This example retrieves the detail of the "Migrate apps from AD FS to Azure AD" recommendation.
123+
124+
```http
125+
GET https://graph.microsoft.com/beta/directory/recommendations?$filter=recommendationType eq 'adfsAppsMigration'
126+
```
127+
128+
1. To view the impacted resources for a specific recommendation, expand the `impactedResources` relationship.
129+
130+
```http
131+
GET https://graph.microsoft.com/beta/directory/recommendations?$filter=recommendationType eq 'adfsAppsMigration'&$expand=impactedResources
132+
```
133+
134+
For more information, see the [Microsoft Graph documentation for recommendations](/graph/api/resources/recommendations-api-overview).
135+
136+
## Next steps
137+
138+
- [Review the Azure AD recommendations overview](overview-recommendations.md)
139+
- [Learn about Service Health notifications](overview-service-health-notifications.md)
13.2 KB
Loading

0 commit comments

Comments
 (0)