Skip to content

Commit 042e205

Browse files
committed
Syncing with main. Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into work-ios-mar23
2 parents 46e509b + 908e3b3 commit 042e205

File tree

158 files changed

+1634
-697
lines changed

Some content is hidden

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

158 files changed

+1634
-697
lines changed

articles/active-directory-b2c/idp-pass-through-user-flow.md

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ manager: CelesteDG
99
ms.service: active-directory
1010
ms.workload: identity
1111
ms.topic: how-to
12-
ms.date: 03/10/2022
12+
ms.date: 03/16/2023
1313
ms.custom: project-no-code
1414
ms.author: kengaderdus
1515
ms.subservice: B2C
@@ -150,6 +150,77 @@ When testing your applications in Azure AD B2C, it can be useful to have the Azu
150150

151151
![Decoded token in jwt.ms with idp_access_token block highlighted](./media/idp-pass-through-user-flow/identity-provider-pass-through-token-custom.png)
152152

153+
## Pass the IDP refresh token (optional)
154+
155+
The access token the identity provider returns is valid for a short period of time. Some identity providers also issue a refresh token along with the access token. Your client application can then exchange the identity provider's refresh token for a new access token when needed.
156+
157+
Azure AD B2C custom policy supports passing the refresh token of OAuth 2.0 identity providers, which includes [Facebook](https://github.com/azure-ad-b2c/unit-tests/tree/main/Identity-providers#facebook-with-access-token), [Google](https://github.com/azure-ad-b2c/unit-tests/tree/main/Identity-providers#facebook-with-access-token) and [GitHub](https://github.com/azure-ad-b2c/unit-tests/tree/main/Identity-providers#github-with-access-token).
158+
159+
To pass the identity provider's refresh token, follow these steps:
160+
161+
1. Open your *TrustframeworkExtensions.xml* file and add the following **ClaimType** element with an identifier of `identityProviderRefreshToken` to the **ClaimsSchema** element.
162+
163+
```xml
164+
<ClaimType Id="identityProviderRefreshToken">
165+
<DisplayName>Identity provider refresh token</DisplayName>
166+
<DataType>string</DataType>
167+
</ClaimType>
168+
```
169+
170+
1. Add the **OutputClaim** element to the **TechnicalProfile** element for each OAuth 2.0 identity provider that you would like the refresh token for. The following example shows the element added to the Facebook technical profile:
171+
172+
```xml
173+
<ClaimsProvider>
174+
<DisplayName>Facebook</DisplayName>
175+
<TechnicalProfiles>
176+
<TechnicalProfile Id="Facebook-OAUTH">
177+
<OutputClaims>
178+
<OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="{oauth2:refresh_token}" />
179+
</OutputClaims>
180+
...
181+
</TechnicalProfile>
182+
</TechnicalProfiles>
183+
</ClaimsProvider>
184+
```
185+
186+
1. Some identity providers require you to include metadata or scopes to the identity provider's technical profile.
187+
188+
- For Google identity provider, add two claim types `access_type` and `prompt`. Then add the following input claims to the identity provider's technical profile:
189+
190+
```xml
191+
<InputClaims>
192+
<InputClaim ClaimTypeReferenceId="access_type" PartnerClaimType="access_type" DefaultValue="offline" AlwaysUseDefaultValue="true" />
193+
194+
<!-- The refresh_token is return only on the first authorization for a given user. Subsequent authorization request doesn't return the refresh_token.
195+
To fix this issue we add the prompt=consent query string parameter to the authorization request-->
196+
<InputClaim ClaimTypeReferenceId="prompt" PartnerClaimType="prompt" DefaultValue="consent" AlwaysUseDefaultValue="true" />
197+
</InputClaims>
198+
```
199+
200+
- Other identity providers may have different methods to issue a refresh token. Follow the identity provider's audience and add the necessary elements to your identity provider's technical profile.
201+
202+
1. Save the changes you made in your *TrustframeworkExtensions.xml* file.
203+
1. Open your relying party policy file, such as *SignUpOrSignIn.xml*, and add the **OutputClaim** element to the **TechnicalProfile**:
204+
205+
```xml
206+
<RelyingParty>
207+
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
208+
<TechnicalProfile Id="PolicyProfile">
209+
<OutputClaims>
210+
<OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="idp_refresh_token"/>
211+
</OutputClaims>
212+
...
213+
</TechnicalProfile>
214+
</RelyingParty>
215+
```
216+
217+
1. Save the changes you made in your policy's relying party policy file.
218+
1. Upload the *TrustframeworkExtensions.xml* file, and then the relying party policy file.
219+
1. [Test your policy](#test-your-policy)
220+
221+
222+
223+
153224
::: zone-end
154225

155226
## Next steps

articles/active-directory-b2c/relyingparty.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ manager: CelesteDG
88
ms.service: active-directory
99
ms.workload: identity
1010
ms.topic: reference
11-
ms.date: 11/17/2022
11+
ms.date: 03/13/2023
1212
ms.custom: project-no-code
1313
ms.author: kengaderdus
1414
ms.subservice: B2C
@@ -78,6 +78,8 @@ The optional **RelyingParty** element contains the following elements:
7878
| UserJourneyBehaviors | 0:1 | The scope of the user journey behaviors. |
7979
| TechnicalProfile | 1:1 | A technical profile that's supported by the RP application. The technical profile provides a contract for the RP application to contact Azure AD B2C. |
8080

81+
You need to create the **RelyingParty** child elements in the order presented in the preceding table.
82+
8183
## Endpoints
8284

8385
The **Endpoints** element contains the following element:

articles/active-directory/cloud-infrastructure-entitlement-management/usage-analytics-access-keys.md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.service: active-directory
88
ms.subservice: ciem
99
ms.workload: identity
1010
ms.topic: how-to
11-
ms.date: 02/23/2022
11+
ms.date: 03/01/2023
1212
ms.author: jfields
1313
---
1414

@@ -23,6 +23,9 @@ The **Analytics** dashboard in Permissions Management provides details about ide
2323
- **Access Keys**: Tracks the permission usage of access keys for a given user.
2424
- **Serverless Functions**: Tracks assigned permissions and usage of the serverless functions.
2525

26+
> [!NOTE]
27+
> Currently, Microsoft Azure and Google Cloud Platform (GCP) do not provide significant information about access keys to return access keys data. Access Keys analytics are currently only available for Amazon Web Services (AWS) accounts.
28+
2629
This article describes how to view usage analytics about access keys.
2730

2831
## Create a query to view access keys
@@ -33,8 +36,8 @@ When you select **Access keys**, the **Analytics** dashboard provides a high-lev
3336

3437
The following components make up the **Access Keys** dashboard:
3538

36-
- **Authorization System Type**: Select the authorization you want to use: Amazon Web Services (AWS), Microsoft Azure, or Google Cloud Platform (GCP).
37-
- **Authorization System**: Select from a **List** of accounts and **Folders***.
39+
- **Authorization System Type**: Select **AWS**.
40+
- **Authorization System**: Select from a **List** of accounts and **Folders**.
3841
- **Key Status**: Select **All**, **Active**, or **Inactive**.
3942
- **Key Activity State**: Select **All**, how long the access key has been used, or **Not Used**.
4043
- **Key Age**: Select **All** or how long ago the access key was created.
@@ -68,23 +71,23 @@ Filters can be applied in one, two, or all three categories depending on the typ
6871

6972
### Apply filters by authorization system type
7073

71-
1. From the **Authorization System Type** dropdown, select the authorization system you want to use: **AWS**, **Azure**, or **GCP**.
74+
1. From the **Authorization System Type** dropdown, select **AWS**.
7275
1. Select **Apply** to run your query and display the information you selected.
7376

7477
Select **Reset Filter** to discard your changes.
7578

7679

7780
### Apply filters by authorization system
7881

79-
1. From the **Authorization System Type** dropdown, select the authorization system you want to use: **AWS**, **Azure**, or **GCP**.
82+
1. From the **Authorization System Type** dropdown, select **AWS**.
8083
1. From the **Authorization System** dropdown, select accounts from a **List** of accounts and **Folders**.
8184
1. Select **Apply** to run your query and display the information you selected.
8285

8386
Select **Reset Filter** to discard your changes.
8487

8588
### Apply filters by key status
8689

87-
1. From the **Authorization System Type** dropdown, select the authorization system you want to use: **AWS**, **Azure**, or **GCP**.
90+
1. From the **Authorization System Type** dropdown, select **AWS**.
8891
1. From the **Authorization System** dropdown, select from a **List** of accounts and **Folders**.
8992
1. From the **Key Status** dropdown, select the type of key: **All**, **Active**, or **Inactive**.
9093
1. Select **Apply** to run your query and display the information you selected.
@@ -93,7 +96,7 @@ Filters can be applied in one, two, or all three categories depending on the typ
9396

9497
### Apply filters by key activity status
9598

96-
1. From the **Authorization System Type** dropdown, select the authorization system you want to use: **AWS**, **Azure**, or **GCP**.
99+
1. From the **Authorization System Type** dropdown, select **AWS**.
97100
1. From the **Authorization System** dropdown, select from a **List** of accounts and **Folders**.
98101
1. From the **Key Activity State** dropdown, select **All**, the duration for how long the access key has been used, or **Not Used**.
99102

@@ -103,7 +106,7 @@ Filters can be applied in one, two, or all three categories depending on the typ
103106

104107
### Apply filters by key age
105108

106-
1. From the **Authorization System Type** dropdown, select the authorization system you want to use: **AWS**, **Azure**, or **GCP**.
109+
1. From the **Authorization System Type** dropdown, select **AWS**.
107110
1. From the **Authorization System** dropdown, select from a **List** of accounts and **Folders**.
108111
1. From the **Key Age** dropdown, select **All** or how long ago the access key was created.
109112

@@ -113,7 +116,7 @@ Filters can be applied in one, two, or all three categories depending on the typ
113116

114117
### Apply filters by task type
115118

116-
1. From the **Authorization System Type** dropdown, select the authorization system you want to use: **AWS**, **Azure**, or **GCP**.
119+
1. From the **Authorization System Type** dropdown, select **AWS**.
117120
1. From the **Authorization System** dropdown, select from a **List** of accounts and **Folders**.
118121
1. From the **Task Type** dropdown, select **All** tasks, **High Risk Tasks** or, for a list of tasks where users have deleted data, select **Delete tasks**.
119122
1. Select **Apply** to run your query and display the information you selected.

articles/active-directory/conditional-access/concept-conditional-access-cloud-apps.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ The following key applications are affected by the Office 365 cloud app:
9393
- Microsoft Flow
9494
- Microsoft Office 365 Portal
9595
- Microsoft Office client application
96-
- Microsoft Stream
9796
- Microsoft To-Do WebApp
9897
- Microsoft Whiteboard Services
9998
- Office Delve

articles/active-directory/develop/custom-claims-provider-overview.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ms.service: active-directory
1010
ms.subservice: develop
1111
ms.workload: identity
1212
ms.topic: conceptual
13-
ms.date: 03/06/2023
13+
ms.date: 03/13/2023
1414
ms.author: davidmu
1515
ms.reviewer: JasSuri
1616
ms.custom: aaddev
@@ -24,6 +24,9 @@ When a user authenticates to an application, a custom claims provider can be use
2424

2525
Key data about a user is often stored in systems external to Azure AD. For example, secondary email, billing tier, or sensitive information. Some applications may rely on these attributes for the application to function as designed. For example, the application may block access to certain features based on a claim in the token.
2626

27+
The following short video provides an excellent overview of the Azure AD custom extensions and custom claims providers:
28+
> [!VIDEO https://www.youtube.com/embed/BYOMshjlwbc]
29+
2730
Use a custom claims provider for the following scenarios:
2831

2932
- **Migration of legacy systems** - You may have legacy identity systems such as Active Directory Federation Services (AD FS) or data stores (such as LDAP directory) that hold information about users. You'd like to migrate these applications, but can't fully migrate the identity data into Azure AD. Your apps may depend on certain information on the token, and can't be rearchitected.

articles/active-directory/develop/custom-extension-get-started.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ms.service: active-directory
1010
ms.subservice: develop
1111
ms.topic: how-to
1212
ms.workload: identity
13-
ms.date: 03/06/2023
13+
ms.date: 03/13/2023
1414
ms.author: davidmu
1515
ms.custom: aaddev
1616
ms.reviewer: JasSuri
@@ -21,7 +21,9 @@ ms.reviewer: JasSuri
2121

2222
This article describes how to configure and setup a custom claims provider with the [token issuance start event](custom-claims-provider-overview.md#token-issuance-start-event-listener) type. This event is triggered right before the token is issued, and allows you to call a REST API to add claims to the token.
2323

24-
This how-to guide demonstrates the token issuance start event with a REST API running in Azure Functions and a sample OpenID Connect application.
24+
This how-to guide demonstrates the token issuance start event with a REST API running in Azure Functions and a sample OpenID Connect application. Before you start, take a look at following video, which demonstrates how to configure Azure AD custom claims provider with Function App:
25+
26+
> [!VIDEO https://www.youtube.com/embed/r-JEsMBJ7GE]
2527
2628
## Prerequisites
2729

@@ -488,7 +490,7 @@ To protect your Azure function, follow these steps to integrate Azure AD authent
488490
> [!NOTE]
489491
> If the Azure function app is hosted in a different Azure tenant than the tenant in which your custom extension is registered, skip to [using OpenID Connect identity provider](#51-using-openid-connect-identity-provider) step.
490492

491-
1. In the [Azure portal](https://poral.azure.com), navigate and select the function app you previously published.
493+
1. In the [Azure portal](https://portal.azure.com), navigate and select the function app you previously published.
492494
1. Select **Authentication** in the menu on the left.
493495
1. Select **Add Identity provider**.
494496
1. Select **Microsoft** as the identity provider.
@@ -503,7 +505,7 @@ To protect your Azure function, follow these steps to integrate Azure AD authent
503505

504506
If you configured the [Microsoft identity provider](#step-5-protect-your-azure-function), skip this step. Otherwise, if the Azure Function is hosted under a different tenant than the tenant in which your custom extension is registered, follow these steps to protect your function:
505507

506-
1. In the [Azure portal](https://poral.azure.com), navigate and select the function app you previously published.
508+
1. In the [Azure portal](https://portal.azure.com), navigate and select the function app you previously published.
507509
1. Select **Authentication** in the menu on the left.
508510
1. Select **Add Identity provider**.
509511
1. Select **OpenID Connect** as the identity provider.

articles/active-directory/develop/msal-compare-msal-js-and-adal-js.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ authContext.acquireTokenRedirect("https://graph.microsoft.com", function (error,
181181
});
182182
```
183183

184-
MSAL.js supports both **v1.0** and **v2.0** endpoints. The **v2.0** endpoint employs a *scope-centric* model to access resources. Thus, when you request an access token for a resource, you also need to specify the scope for that resource:
184+
MSAL.js supports only the **v2.0** endpoint. The **v2.0** endpoint employs a *scope-centric* model to access resources. Thus, when you request an access token for a resource, you also need to specify the scope for that resource:
185185

186186
```javascript
187187
msalInstance.acquireTokenRedirect({

articles/active-directory/develop/msal-node-migration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ authenticationContext.acquireTokenWithAuthorizationCode(
171171
);
172172
```
173173

174-
The v2.0 endpoint employs a *scope-centric* model to access resources. Thus, when you request an access token for a resource, you also need to specify the scope for that resource:
174+
MSAL Node supports only the **v2.0** endpoint. The v2.0 endpoint employs a *scope-centric* model to access resources. Thus, when you request an access token for a resource, you also need to specify the scope for that resource:
175175

176176
```javascript
177177
const tokenRequest = {

0 commit comments

Comments
 (0)