Skip to content

Commit d2dc576

Browse files
committed
Bringing in line with main. Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into work-whatsnew-sep22
2 parents b488e2e + 7172655 commit d2dc576

File tree

793 files changed

+39036
-11771
lines changed

Some content is hidden

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

793 files changed

+39036
-11771
lines changed

articles/active-directory-domain-services/powershell-create-instance.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ $replicaSetParams = @{
209209
Location = $AzureLocation
210210
SubnetId = "/subscriptions/$AzureSubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Network/virtualNetworks/$VnetName/subnets/DomainServices"
211211
}
212-
$replicaSet = New-AzADDomainServiceReplicaSet @replicaSetParams
212+
$replicaSet = New-AzADDomainServiceReplicaSetObject @replicaSetParams
213213
214214
$domainServiceParams = @{
215215
Name = $ManagedDomainName

articles/active-directory/app-provisioning/accidental-deletions.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ ms.service: active-directory
88
ms.subservice: app-provisioning
99
ms.topic: how-to
1010
ms.workload: identity
11-
ms.date: 09/27/2021
11+
ms.date: 09/30/2022
1212
ms.author: kenwith
1313
ms.reviewer: arvinh
1414
---
1515

16-
# Enable accidental deletions prevention in the Azure AD provisioning service (Preview)
16+
# Enable accidental deletions prevention in the Azure AD provisioning service
1717

1818
The Azure AD provisioning service includes a feature to help avoid accidental deletions. This feature ensures that users aren't disabled or deleted in an application unexpectedly.
1919

@@ -32,7 +32,7 @@ threshold. Also, be sure the notification email address is completed. If the del
3232
When the deletion threshold is met, the job will go into quarantine and a notification email will be sent. The quarantined job can then be allowed or rejected. To learn more about quarantine behavior, see [Application provisioning in quarantine status](application-provisioning-quarantine-status.md).
3333

3434
## Recovering from an accidental deletion
35-
If you encounter an accidental deletion you'll see it on the provisioning status page. It will say **Provisioning has been quarantined. See quarantine details for more information.**.
35+
If you encounter an accidental deletion you'll see it on the provisioning status page. It will say **Provisioning has been quarantined. See quarantine details for more information**.
3636

3737
You can click either **Allow deletes** or **View provisioning logs**.
3838

articles/active-directory/authentication/concept-certificate-based-authentication-technical-deep-dive.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ Let's cover each step:
7070
7171
:::image type="content" border="true" source="./media/concept-certificate-based-authentication-technical-deep-dive/cert-picker.png" alt-text="Screenshot of the certificate picker." lightbox="./media/concept-certificate-based-authentication-technical-deep-dive/cert-picker.png":::
7272

73-
1. Azure AD verifies the certificate revocation list to make sure the certificate is not revoked and is valid. Azure AD identifies the user in the tenant by using the [username binding configured](how-to-certificate-based-authentication.md#step-3-configure-username-binding-policy) on the tenant by mapping the certificate field value to user attribute value.
74-
1. If a unique user is found and the user has a conditional access policy and needs multifactor authentication (MFA) and the [certificate authentication binding rule](how-to-certificate-based-authentication.md#step-2-configure-authentication-binding-policy) satisfies MFA, then Azure AD signs the user in immediately. If the certificate satisfies only a single factor, then it requests the user for a second factor to complete Azure AD Multi-Factor Authentication.
73+
1. Azure AD verifies the certificate revocation list to make sure the certificate is not revoked and is valid. Azure AD identifies the user in the tenant by using the [username binding configured](how-to-certificate-based-authentication.md#step-4-configure-username-binding-policy) on the tenant by mapping the certificate field value to user attribute value.
74+
1. If a unique user is found and the user has a conditional access policy and needs multifactor authentication (MFA) and the [certificate authentication binding rule](how-to-certificate-based-authentication.md#step-3-configure-authentication-binding-policy) satisfies MFA, then Azure AD signs the user in immediately. If the certificate satisfies only a single factor, then it requests the user for a second factor to complete Azure AD Multi-Factor Authentication.
7575
1. Azure AD completes the sign-in process by sending a primary refresh token back to indicate successful sign-in.
7676
1. If the user sign-in is successful, the user can access the application.
7777

@@ -244,4 +244,4 @@ For the next test scenario, configure the authentication policy where the **poli
244244
- [Windows SmartCard logon using Azure AD CBA](concept-certificate-based-authentication-smartcard.md)
245245
- [Azure AD CBA on mobile devices (Android and iOS)](concept-certificate-based-authentication-mobile.md)
246246
- [FAQ](certificate-based-authentication-faq.yml)
247-
- [Troubleshoot Azure AD CBA](troubleshoot-certificate-based-authentication.md)
247+
- [Troubleshoot Azure AD CBA](troubleshoot-certificate-based-authentication.md)

articles/active-directory/authentication/concept-registration-mfa-sspr-combined.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,12 @@ To switch the directory in the Azure portal, click the user account name in the
167167

168168
![External users can switch directory.](media/concept-registration-mfa-sspr-combined/switch-directory.png)
169169

170+
Or, you can specify a tenant by URL to access security information.
171+
172+
`https://mysignins.microsoft.com/security-info?tenant=<Tenant Name>`
173+
174+
`https://mysignins.microsoft.com/security-info/?tenantId=<Tenant ID>`
175+
170176
## Next steps
171177

172178
To get started, see the tutorials to [enable self-service password reset](tutorial-enable-sspr.md) and [enable Azure AD Multi-Factor Authentication](tutorial-enable-azure-mfa.md).

articles/active-directory/authentication/concept-sspr-writeback.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Password writeback provides the following features:
4242
4343
To get started with SSPR writeback, complete either one or both of the following tutorials:
4444

45-
- [Tutorial: Enable self-service password reset (SSPR) writeback](tutorial-enable-cloud-sync-sspr-writeback.md)
45+
- [Tutorial: Enable self-service password reset (SSPR) writeback](tutorial-enable-sspr-writeback.md)
4646
- [Tutorial: Enable Azure Active Directory Connect cloud sync self-service password reset writeback to an on-premises environment (Preview)](tutorial-enable-cloud-sync-sspr-writeback.md)
4747

4848
## Azure AD Connect and cloud sync side-by-side deployment

articles/active-directory/authentication/how-to-certificate-based-authentication.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,29 @@ For additional details see: [Understanding the certificate revocation process](.
129129

130130
[!INCLUDE [Set-AzureAD](../../../includes/active-directory-authentication-set-trusted-azuread.md)]
131131

132+
## Step 2: Enable CBA on the tenant
132133

133-
## Step 2: Configure authentication binding policy
134+
To enable the certificate-based authentication in the Azure Portal, complete the following steps:
135+
136+
1. Sign in to the [Azure portal](https://portal.azure.com/) as an Authentication Policy Administrator.
137+
1. Select **Azure Active Directory**, then choose **Security** from the menu on the left-hand side.
138+
1. Under **Manage**, select **Authentication methods** > **Certificate-based Authentication**.
139+
1. Under **Basics**, select **Yes** to enable CBA.
140+
1. CBA can be enabled for a targeted set of users.
141+
1. Click **All users** to enable all users.
142+
1. Click **Select users** to enable selected users or groups.
143+
1. Click **+ Add users**, select specific users and groups.
144+
1. Click **Select** to add them.
145+
146+
:::image type="content" border="true" source="./media/how-to-certificate-based-authentication/enable.png" alt-text="Screenshot of how to enable CBA.":::
147+
148+
Once certificate-based authentication is enabled on the tenant, all users in the tenant will see the option to sign in with a certificate. Only users who are enabled for certificate-based authentication will be able to authenticate using the X.509 certificate.
149+
150+
>[!NOTE]
151+
>The network administrator should allow access to certauth endpoint for the customer’s cloud environment in addition to login.microsoftonline.com. Disable TLS inspection on the certauth endpoint to make sure the client certificate request succeeds as part of the TLS handshake.
152+
153+
154+
## Step 3: Configure authentication binding policy
134155

135156
The authentication binding policy helps determine the strength of authentication to either a single factor or multi factor. An admin can change the default value from single-factor to multifactor and configure custom policy rules by mapping to issuer Subject or policy OID fields in the certificate.
136157

@@ -176,7 +197,7 @@ To enable the certificate-based authentication and configure user bindings in th
176197

177198
1. Click **Ok** to save any custom rule.
178199

179-
## Step 3: Configure username binding policy
200+
## Step 4: Configure username binding policy
180201

181202
The username binding policy helps determine the user in the tenant. By default, we map Principal Name in the certificate to onPremisesUserPrincipalName in the user object to determine the user.
182203

@@ -209,27 +230,6 @@ The final configuration will look like this image:
209230

210231
:::image type="content" border="true" source="./media/how-to-certificate-based-authentication/final.png" alt-text="Screenshot of the final configuration.":::
211232

212-
## Step 4: Enable CBA on the tenant
213-
214-
To enable the certificate-based authentication in the Azure MyApps portal, complete the following steps:
215-
216-
1. Sign in to the [MyApps portal](https://myapps.microsoft.com/) as an Authentication Policy Administrator.
217-
1. Select **Azure Active Directory**, then choose **Security** from the menu on the left-hand side.
218-
1. Under **Manage**, select **Authentication methods** > **Certificate-based Authentication**.
219-
1. Under **Basics**, select **Yes** to enable CBA.
220-
1. CBA can be enabled for a targeted set of users.
221-
1. Click **All users** to enable all users.
222-
1. Click **Select users** to enable selected users or groups.
223-
1. Click **+ Add users**, select specific users and groups.
224-
1. Click **Select** to add them.
225-
226-
:::image type="content" border="true" source="./media/how-to-certificate-based-authentication/enable.png" alt-text="Screenshot of how to enable CBA.":::
227-
228-
Once certificate-based authentication is enabled on the tenant, all users in the tenant will see the option to sign in with a certificate. Only users who are enabled for certificate-based authentication will be able to authenticate using the X.509 certificate.
229-
230-
>[!NOTE]
231-
>The network administrator should allow access to certauth endpoint for the customer’s cloud environment in addition to login.microsoftonline.com. Disable TLS inspection on the certauth endpoint to make sure the client certificate request succeeds as part of the TLS handshake.
232-
233233
## Step 5: Test your configuration
234234

235235
This section covers how to test your certificate and custom authentication binding rules.

articles/active-directory/authentication/troubleshoot-certificate-based-authentication.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ This topic covers how to troubleshoot Azure AD certificate-based authentication
2525
2626
## Why don't I see an option to sign in using certificates against Azure Active Directory after I enter my username?
2727

28-
An administrator needs to enable CBA for the tenant to make the sign-in with certificate option available for users. For more information, see [Step 2: Configure authentication binding policy](how-to-certificate-based-authentication.md#step-2-configure-authentication-binding-policy).
28+
An administrator needs to enable CBA for the tenant to make the sign-in with certificate option available for users. For more information, see [Step 3: Configure authentication binding policy](how-to-certificate-based-authentication.md#step-3-configure-authentication-binding-policy).
2929

3030
## User-facing sign-in error messages
3131

@@ -47,12 +47,12 @@ Make sure the certificate is valid and works for the user binding and authentica
4747

4848
:::image type="content" border="true" source="./media/troubleshoot-certificate-based-authentication/reset.png" alt-text="Screenshot of password reset error." :::
4949

50-
Make sure the user is trying to sign in with the correct username. This error happens when a unique user can't be found using the [username binding](how-to-certificate-based-authentication.md#step-3-configure-username-binding-policy) on the certificate fields.
50+
Make sure the user is trying to sign in with the correct username. This error happens when a unique user can't be found using the [username binding](how-to-certificate-based-authentication.md#step-4-configure-username-binding-policy) on the certificate fields.
5151

5252
- Make sure user bindings are set correctly and the certificate field is mapped to the correct user Attribute.
5353
- Make sure the user Attribute contains the correct value that matches the certificate field value.
5454

55-
For more information, see [Step 3: Configure username binding policy](how-to-certificate-based-authentication.md#step-3-configure-username-binding-policy).
55+
For more information, see [Step 4: Configure username binding policy](how-to-certificate-based-authentication.md#step-4-configure-username-binding-policy).
5656

5757
If the user is a federated user moving to Azure AD and if the user binding configuration is Principal Name > onPremisesUserPrincipalName:
5858

@@ -70,7 +70,7 @@ There is also a known issue when a user who is not in scope for CBA ties to sign
7070

7171
:::image type="content" border="true" source="./media/troubleshoot-certificate-based-authentication/alt-failed.png" alt-text="Screenshot of the alternative error message for Azure Active Directory certificate-based authentication in Azure AD.":::
7272

73-
In both cases, the error can be resolved by making sure the user is in scope for Azure AD CBA. For more information, see [Step 4: Enable CBA on the tenant](how-to-certificate-based-authentication.md#step-4-enable-cba-on-the-tenant).
73+
In both cases, the error can be resolved by making sure the user is in scope for Azure AD CBA. For more information, see [Step 2: Enable CBA on the tenant](how-to-certificate-based-authentication.md#step-2-enable-cba-on-the-tenant).
7474

7575
### AADSTS90100: flowtoken parameter is empty or not valid
7676

articles/active-directory/develop/TOC.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,10 @@
146146
items:
147147
- name: Workload identity federation
148148
href: workload-identity-federation.md
149-
- name: Trust an external identity provider (federation)
149+
- name: Configure an app to trust an external identity provider
150150
href: workload-identity-federation-create-trust.md
151+
- name: Configure a managed identity to trust an external identity provider
152+
href: workload-identity-federation-create-trust-user-assigned-managed-identity.md
151153
- name: Access identity platform-protected resources from GCP
152154
href: workload-identity-federation-create-trust-gcp.md
153155
- name: Exchange AD FS SAML for Microsoft Graph access token
@@ -783,6 +785,8 @@
783785
href: active-directory-signing-key-rollover.md
784786
- name: UserInfo endpoint (OIDC)
785787
href: userinfo.md
788+
- name: Federated identity credentials considerations and limitations
789+
href: workload-identity-federation-considerations.md
786790
- name: SAML 2.0
787791
items:
788792
- name: How Azure AD uses the SAML protocol

articles/active-directory/develop/app-resilience-continuous-access-evaluation.md

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,20 @@ You can test your application by signing in a user to the application then using
104104
When these conditions are met, the app can extract the claims challenge from the API response header as follows:
105105

106106
```javascript
107-
const authenticateHeader = response.headers.get('www-authenticate');
108-
const claimsChallenge = parseChallenges(authenticateHeader).claims;
109-
110-
// ...
107+
try {
108+
const response = await fetch(apiEndpoint, options);
109+
110+
if (response.status === 401 && response.headers.get('www-authenticate')) {
111+
const authenticateHeader = response.headers.get('www-authenticate');
112+
const claimsChallenge = parseChallenges(authenticateHeader).claims;
113+
114+
// use the claims challenge to acquire a new access token...
115+
}
116+
} catch(error) {
117+
// ...
118+
}
111119

120+
// helper function to parse the www-authenticate header
112121
function parseChallenges(header) {
113122
const schemeSeparator = header.indexOf(' ');
114123
const challenges = header.substring(schemeSeparator + 1).split(',');
@@ -126,24 +135,20 @@ function parseChallenges(header) {
126135
Your app would then use the claims challenge to acquire a new access token for the resource.
127136

128137
```javascript
138+
const tokenRequest = {
139+
claims: window.atob(claimsChallenge), // decode the base64 string
140+
scopes: ['User.Read']
141+
account: msalInstance.getActiveAccount();
142+
};
143+
129144
let tokenResponse;
130145

131146
try {
132-
tokenResponse = await msalInstance.acquireTokenSilent({
133-
claims: window.atob(claimsChallenge), // decode the base64 string
134-
scopes: scopes, // e.g ['User.Read', 'Contacts.Read']
135-
account: account, // current active account
136-
});
137-
147+
tokenResponse = await msalInstance.acquireTokenSilent(tokenRequest);
138148
} catch (error) {
139149
if (error instanceof InteractionRequiredAuthError) {
140-
tokenResponse = await msalInstance.acquireTokenPopup({
141-
claims: window.atob(claimsChallenge), // decode the base64 string
142-
scopes: scopes, // e.g ['User.Read', 'Contacts.Read']
143-
account: account, // current active account
144-
});
150+
tokenResponse = await msalInstance.acquireTokenPopup(tokenRequest);
145151
}
146-
147152
}
148153
```
149154

@@ -154,8 +159,7 @@ const msalConfig = {
154159
auth: {
155160
clientId: 'Enter_the_Application_Id_Here',
156161
clientCapabilities: ["CP1"]
157-
// the remaining settings
158-
// ...
162+
// remaining settings...
159163
}
160164
}
161165

articles/active-directory/develop/claims-challenge.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ _clientApp = PublicClientApplicationBuilder.Create(App.ClientId)
103103
.WithDefaultRedirectUri()
104104
.WithAuthority(authority)
105105
.WithClientCapabilities(new [] {"cp1"})
106-
.Build();*
106+
.Build();
107107
```
108108

109109
Those using Microsoft.Identity.Web can add the following code to the configuration file:
@@ -112,22 +112,21 @@ Those using Microsoft.Identity.Web can add the following code to the configurati
112112
{
113113
"AzureAd": {
114114
"Instance": "https://login.microsoftonline.com/",
115-
// the remaining settings
116-
// ...
117-
"ClientCapabilities": [ "cp1" ]
115+
"ClientId": 'Enter_the_Application_Id_Here'
116+
"ClientCapabilities": [ "cp1" ],
117+
// remaining settings...
118118
},
119119
```
120120
#### [JavaScript](#tab/JavaScript)
121121

122-
Those using MSAL.js can add `clientCapabilities` property to the configuration object.
122+
Those using MSAL.js or MSAL Node can add `clientCapabilities` property to the configuration object. Note: this option is available to both public and confidential cient applications.
123123

124124
```javascript
125125
const msalConfig = {
126126
auth: {
127127
clientId: 'Enter_the_Application_Id_Here',
128128
clientCapabilities: ["CP1"]
129-
// the remaining settings
130-
// ...
129+
// remaining settings...
131130
}
132131
}
133132

@@ -222,14 +221,15 @@ else
222221

223222
### [JavaScript](#tab/JavaScript)
224223

224+
The following snippet illustrates a custom Express.js middleware:
225+
225226
```javascript
226227
const checkIsClientCapableOfClaimsChallenge = (req, res, next) => {
227228
// req.authInfo contains the decoded access token payload
228229
if (req.authInfo['xms_cc'] && req.authInfo['xms_cc'].includes('CP1')) {
229230
// Return formatted claims challenge as this client understands this
230-
231231
} else {
232-
return res.status(403).json({ error: 'Client is not capable' });
232+
return res.status(403).json({ error: 'Client is not capable' });
233233
}
234234
}
235235

0 commit comments

Comments
 (0)