Skip to content

Commit 508382d

Browse files
authored
Merge pull request #245625 from MicrosoftDocs/main
Merge main to live, 4 AM
2 parents 1fb4875 + cd09ebd commit 508382d

File tree

268 files changed

+2223
-2118
lines changed

Some content is hidden

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

268 files changed

+2223
-2118
lines changed

articles/active-directory/app-provisioning/application-provisioning-config-problem-scim-compatibility.md

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ This article describes current and past issues with the Azure AD user provisioni
2424
## Understanding the provisioning job
2525
The provisioning service uses the concept of a job to operate against an application. The jobID can be found in the [progress bar](application-provisioning-when-will-provisioning-finish-specific-user.md#view-the-provisioning-progress-bar). All new provisioning applications are created with a jobID starting with "scim". The scim job represents the current state of the service. Older jobs have the ID "customappsso". This job represents the state of the service in 2018.
2626

27-
If you are using an application in the gallery, the job generally contains the name of the app (e.g. zoom snowFlake, dataBricks, etc.). You can skip this documentation when using a gallery application. This primarily applies for non-gallery applications with jobID SCIM or customAppSSO.
27+
If you are using an application in the gallery, the job generally contains the name of the app (such as zoom snowFlake or dataBricks). You can skip this documentation when using a gallery application. This primarily applies for non-gallery applications with jobID SCIM or customAppSSO.
2828

2929
## SCIM 2.0 compliance issues and status
3030
In the table below, any item marked as fixed means that the proper behavior can be found on the SCIM job. We have worked to ensure backwards compatibility for the changes we have made. We recommend using the new behavior for any new implementations and updating existing implementations. Please note that the customappSSO behavior that was the default prior to December 2018 is not supported anymore.
@@ -234,13 +234,12 @@ Below are sample requests to help outline what the sync engine currently sends v
234234

235235

236236
## Upgrading from the older customappsso job to the SCIM job
237-
Following the steps below will delete your existing customappsso job and create a new scim job.
237+
Following the steps below will delete your existing customappsso job and create a new SCIM job.
238238

239-
1. Sign into the Azure portal at https://portal.azure.com.
239+
1. Sign into the [Azure portal](https://portal.azure.com).
240240
2. In the **Azure Active Directory > Enterprise Applications** section of the Azure portal, locate and select your existing SCIM application.
241241
3. In the **Properties** section of your existing SCIM app, copy the **Object ID**.
242-
4. In a new web browser window, go to https://developer.microsoft.com/graph/graph-explorer
243-
and sign in as the administrator for the Azure AD tenant where your app is added.
242+
4. In a new web browser window, go to https://developer.microsoft.com/graph/graph-explorer and sign in as the administrator for the Azure AD tenant where your app is added.
244243
5. In the Graph Explorer, run the command below to locate the ID of your provisioning job. Replace "[object-id]" with the service principal ID (object ID) copied from the third step.
245244

246245
`GET https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs`
@@ -276,11 +275,10 @@ Following the steps below will delete your existing customappsso job and create
276275
## Downgrading from the SCIM job to the customappsso job (not recommended)
277276
We allow you to downgrade back to the old behavior but don't recommend it as the customappsso does not benefit from some of the updates we make, and may not be supported forever.
278277

279-
1. Sign into the Azure portal at https://portal.azure.com.
280-
2. in the **Azure Active Directory > Enterprise Applications > Create application** section of the Azure portal, create a new **Non-gallery** application.
278+
1. Sign into the [Azure portal](https://portal.azure.com).
279+
2. In the **Azure Active Directory > Enterprise Applications > Create application** section of the Azure portal, create a new **Non-gallery** application.
281280
3. In the **Properties** section of your new custom app, copy the **Object ID**.
282-
4. In a new web browser window, go to https://developer.microsoft.com/graph/graph-explorer
283-
and sign in as the administrator for the Azure AD tenant where your app is added.
281+
4. In a new web browser window, go to https://developer.microsoft.com/graph/graph-explorer and sign in as the administrator for the Azure AD tenant where your app is added.
284282
5. In the Graph Explorer, run the command below to initialize the provisioning configuration for your app.
285283
Replace "[object-id]" with the service principal ID (object ID) copied from the third step.
286284

articles/active-directory/app-provisioning/configure-automatic-user-provisioning-portal.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ This article describes the general steps for managing automatic user account pro
2424

2525
Use the Azure portal to view and manage all applications that are configured for single sign-on in a directory. Enterprise apps are apps that are deployed and used within your organization. Follow these steps to view and manage your enterprise applications:
2626

27-
1. Open the [Azure portal](https://portal.azure.com).
27+
1. Sign in to the [Azure portal](https://portal.azure.com).
2828
1. Browse to **Azure Active Directory** > **Enterprise applications**.
2929
1. A list of all configured apps is shown, including apps that were added from the gallery.
3030
1. Select any app to load its resource pane, where you can view reports and manage app settings.

articles/active-directory/app-provisioning/customize-application-attributes.md

Lines changed: 90 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ Applications and systems that support customization of the attribute list includ
118118

119119

120120
> [!NOTE]
121-
> Editing the list of supported attributes is only recommended for administrators who have customized the schema of their applications and systems, and have first-hand knowledge of how their custom attributes have been defined or if a source attribute isn't automatically displayed in the Azure Portal UI. This sometimes requires familiarity with the APIs and developer tools provided by an application or system. The ability to edit the list of supported attributes is locked down by default, but customers can enable the capability by navigating to the following URL: https://portal.azure.com/?Microsoft_AAD_Connect_Provisioning_forceSchemaEditorEnabled=true . You can then navigate to your application to view the [attribute list](#editing-the-list-of-supported-attributes).
121+
> Editing the list of supported attributes is only recommended for administrators who have customized the schema of their applications and systems, and have first-hand knowledge of how their custom attributes have been defined or if a source attribute isn't automatically displayed in the Azure portal UI. This sometimes requires familiarity with the APIs and developer tools provided by an application or system. The ability to edit the list of supported attributes is locked down by default, but customers can enable the capability by navigating to the following URL: https://portal.azure.com/?Microsoft_AAD_Connect_Provisioning_forceSchemaEditorEnabled=true . You can then navigate to your application to view the [attribute list](#editing-the-list-of-supported-attributes).
122122
123123
> [!NOTE]
124124
> When a directory extension attribute in Azure AD doesn't show up automatically in your attribute mapping drop-down, you can manually add it to the "Azure AD attribute list". When manually adding Azure AD directory extension attributes to your provisioning app, note that directory extension attribute names are case-sensitive. For example: If you have a directory extension attribute named `extension_53c9e2c0exxxxxxxxxxxxxxxx_acmeCostCenter`, make sure you enter it in the same format as defined in the directory.
@@ -157,60 +157,63 @@ Custom attributes can't be referential attributes, multi-value or complex-typed
157157
**Example representation of a user with an extension attribute:**
158158

159159
```json
160-
{
161-
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
162-
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
163-
"userName":"bjensen",
164-
"id": "48af03ac28ad4fb88478",
165-
"externalId":"bjensen",
166-
"name":{
167-
"formatted":"Ms. Barbara J Jensen III",
168-
"familyName":"Jensen",
169-
"givenName":"Barbara"
170-
},
171-
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
172-
"employeeNumber": "701984",
173-
"costCenter": "4130",
174-
"organization": "Universal Studios",
175-
"division": "Theme Park",
176-
"department": "Tour Operations",
177-
"manager": {
178-
"value": "26118915-6090-4610-87e4-49d8ca9f808d",
179-
"$ref": "../Users/26118915-6090-4610-87e4-49d8ca9f808d",
180-
"displayName": "John Smith"
181-
}
182-
},
183-
"urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:User": {
184-
"CustomAttribute": "701984",
185-
},
186-
"meta": {
187-
"resourceType": "User",
188-
"created": "2010-01-23T04:56:22Z",
189-
"lastModified": "2011-05-13T04:42:34Z",
190-
"version": "W\/\"3694e05e9dff591\"",
191-
"location":
192-
"https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646"
193-
}
194-
}
160+
{
161+
"schemas":[
162+
"urn:ietf:params:scim:schemas:core:2.0:User",
163+
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
164+
],
165+
"userName":"bjensen",
166+
"id": "48af03ac28ad4fb88478",
167+
"externalId":"bjensen",
168+
"name":{
169+
"formatted":"Ms. Barbara J Jensen III",
170+
"familyName":"Jensen",
171+
"givenName":"Barbara"
172+
},
173+
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
174+
"employeeNumber": "701984",
175+
"costCenter": "4130",
176+
"organization": "Universal Studios",
177+
"division": "Theme Park",
178+
"department": "Tour Operations",
179+
"manager": {
180+
"value": "26118915-6090-4610-87e4-49d8ca9f808d",
181+
"$ref": "../Users/26118915-6090-4610-87e4-49d8ca9f808d",
182+
"displayName": "John Smith"
183+
}
184+
},
185+
"urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:User": {
186+
"CustomAttribute": "701984",
187+
},
188+
"meta": {
189+
"resourceType": "User",
190+
"created": "2010-01-23T04:56:22Z",
191+
"lastModified": "2011-05-13T04:42:34Z",
192+
"version": "W\/\"3694e05e9dff591\"",
193+
"location": "https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646"
194+
}
195+
}
195196
```
196197

197-
198198
## Provisioning a role to a SCIM app
199199
Use the steps in the example to provision roles for a user to your application. The description is specific to custom SCIM applications. For gallery applications such as Salesforce and ServiceNow, use the predefined role mappings. The bullets describe how to transform the AppRoleAssignments attribute to the format your application expects.
200200

201201
- Mapping an appRoleAssignment in Azure AD to a role in your application requires that you transform the attribute using an [expression](../app-provisioning/functions-for-customizing-application-data.md). The appRoleAssignment attribute **shouldn't be mapped directly** to a role attribute without using an expression to parse the role details.
202202

203-
- **SingleAppRoleAssignment**
203+
- **SingleAppRoleAssignment**
204+
204205
- **When to use:** Use the SingleAppRoleAssignment expression to provision a single role for a user and to specify the primary role.
205206
- **How to configure:** Use the steps described to navigate to the attribute mappings page and use the SingleAppRoleAssignment expression to map to the roles attribute. There are three role attributes to choose from (`roles[primary eq "True"].display`, `roles[primary eq "True"].type`, and `roles[primary eq "True"].value`). You can choose to include any or all of the role attributes in your mappings. If you would like to include more than one, just add a new mapping and include it as the target attribute.
206207

207-
![Add SingleAppRoleAssignment](./media/customize-application-attributes/edit-attribute-singleapproleassignment.png)
208+
![Add SingleAppRoleAssignment](./media/customize-application-attributes/edit-attribute-singleapproleassignment.png)
209+
208210
- **Things to consider**
209211
- Ensure that multiple roles aren't assigned to a user. There's no guarantee which role is provisioned.
210212
- SingleAppRoleAssignments isn't compatible with setting scope to "Sync All users and groups."
213+
211214
- **Example request (POST)**
212215

213-
```json
216+
```json
214217
{
215218
"schemas": [
216219
"urn:ietf:params:scim:schemas:core:2.0:User"
@@ -229,25 +232,29 @@ Use the steps in the example to provision roles for a user to your application.
229232
"value": "Admin"
230233
}
231234
]
232-
}
233-
```
234-
235+
}
236+
```
237+
235238
- **Example output (PATCH)**
236-
237-
```json
238-
"Operations": [
239-
{
240-
"op": "Add",
241-
"path": "roles",
242-
"value": [
243-
{
244-
"value": "{\"id\":\"06b07648-ecfe-589f-9d2f-6325724a46ee\",\"value\":\"25\",\"displayName\":\"Role1234\"}"
245-
}
246-
]
247-
```
239+
240+
```json
241+
"Operations": [
242+
{
243+
"op": "Add",
244+
"path": "roles",
245+
"value": [
246+
{
247+
"value": "{\"id\":\"06b07648-ecfe-589f-9d2f-6325724a46ee\",\"value\":\"25\",\"displayName\":\"Role1234\"}"
248+
}
249+
]
250+
}
251+
]
252+
```
253+
248254
The request formats in the PATCH and POST differ. To ensure that POST and PATCH are sent in the same format, you can use the feature flag described [here](./application-provisioning-config-problem-scim-compatibility.md#flags-to-alter-the-scim-behavior).
249255

250-
- **AppRoleAssignmentsComplex**
256+
- **AppRoleAssignmentsComplex**
257+
251258
- **When to use:** Use the AppRoleAssignmentsComplex expression to provision multiple roles for a user.
252259
- **How to configure:** Edit the list of supported attributes as described to include a new attribute for roles:
253260

@@ -256,16 +263,18 @@ The request formats in the PATCH and POST differ. To ensure that POST and PATCH
256263
Then use the AppRoleAssignmentsComplex expression to map to the custom role attribute as shown in the image:
257264

258265
![Add AppRoleAssignmentsComplex](./media/customize-application-attributes/edit-attribute-approleassignmentscomplex.png)<br>
266+
259267
- **Things to consider**
268+
260269
- All roles are provisioned as primary = false.
261270
- The POST contains the role type. The PATCH request doesn't contain type. We're working on sending the type in both POST and PATCH requests.
262271
- AppRoleAssignmentsComplex isn't compatible with setting scope to "Sync All users and groups."
263272
- The AppRoleAssignmentsComplex only supports the PATCH add function. For multi-role SCIM applications, roles deleted in Azure Active Directory will therefore not be deleted from the application. We're working to support additional PATCH functions and address the limitation.
264273

265-
- **Example output**
274+
- **Example output**
266275

267-
```json
268-
{
276+
```json
277+
{
269278
"schemas": [
270279
"urn:ietf:params:scim:schemas:core:2.0:User"
271280
],
@@ -290,35 +299,33 @@ The request formats in the PATCH and POST differ. To ensure that POST and PATCH
290299
"value": "User"
291300
}
292301
]
293-
}
294-
```
295-
296-
297-
302+
}
303+
```
298304

299305
## Provisioning a multi-value attribute
306+
300307
Certain attributes such as phoneNumbers and emails are multi-value attributes where you may need to specify different types of phone numbers or emails. Use the expression for multi-value attributes. It allows you to specify the attribute type and map that to the corresponding Azure AD user attribute for the value.
301308

302-
* phoneNumbers[type eq "work"].value
303-
* phoneNumbers[type eq "mobile"].value
304-
* phoneNumbers[type eq "fax"].value
309+
* `phoneNumbers[type eq "work"].value`
310+
* `phoneNumbers[type eq "mobile"]`.value
311+
* `phoneNumbers[type eq "fax"].value`
305312

306-
```json
307-
"phoneNumbers": [
308-
{
309-
"value": "555-555-5555",
310-
"type": "work"
311-
},
312-
{
313-
"value": "555-555-5555",
314-
"type": "mobile"
315-
},
316-
{
317-
"value": "555-555-5555",
318-
"type": "fax"
319-
}
320-
]
321-
```
313+
```json
314+
"phoneNumbers": [
315+
{
316+
"value": "555-555-5555",
317+
"type": "work"
318+
},
319+
{
320+
"value": "555-555-5555",
321+
"type": "mobile"
322+
},
323+
{
324+
"value": "555-555-5555",
325+
"type": "fax"
326+
}
327+
]
328+
```
322329

323330
## Restoring the default attributes and attribute-mappings
324331

articles/active-directory/app-provisioning/sap-successfactors-integration-reference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ https://[SuccessFactorsAPIEndpoint]/odata/v2/PerPerson/$count?$format=json&$filt
127127
## How pre-hire processing works
128128

129129
This section explains how the SAP SuccessFactors connector processes pre-hire records (workers with hire date / start date in future).
130-
Let's say there is a pre-hire with employeeId "1234" in SuccessFactors Employee Central with start date on 1-June-2023. Let's further assume that this pre-hire record was first created either in Employee Central or in the Onboarding module on 15-May-2023. When the provisioning service first observes this record on 15-May-2023 (either as part of full sync or incremental sync), this record is still in pre-hire state. Due to this, SuccessFactors does not send the provisioning service all attributes (example: userNav/username) associated with the user. Only bare minimum data about the user such as `personIdExternal`, `firstname`, `lastname` and `startDate` is available. To process pre-hires successfully, the following pre-requisites must be met:
130+
Let's say there is a pre-hire with employeeId "1234" in SuccessFactors Employee Central with start date on 1-June-2023. Let's further assume that this pre-hire record was first created either in Employee Central or in the Onboarding module on 15-May-2023. When the provisioning service first observes this record on 15-May-2023 (either as part of full sync or incremental sync), this record is still in pre-hire state. Due to this, SuccessFactors does not send the provisioning service all attributes (example: userNav/username) associated with the user. Only bare minimum data about the user such as `companyName`, `personIdExternal`, `firstname`, `lastname` and `startDate` is available. To process pre-hires successfully, the following pre-requisites must be met:
131131

132132
1) The `personIdExternal` attribute must be set as the primary matching identifier (joining property). If you configure a different attribute (example: userName) as the joining property then the provisioning service will not be able to retrieve the pre-hire information.
133133
2) The `startDate` attribute must be available and it's JSONPath must be set to either `$.employmentNav.results[0].startDate` or `$.employmentNav.results[-1:].startDate`.

articles/active-directory/app-proxy/application-proxy-integrate-with-tableau.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Application Proxy supports the OAuth 2.0 Grant Flow, which is required for Table
3333

3434
## Publish your applications in Azure
3535

36-
To publish Tableau, you need to publish an application in the Azure Portal.
36+
To publish Tableau, you need to publish an application in the Azure portal.
3737

3838
For:
3939

@@ -76,4 +76,3 @@ Your application is now ready to test. Access the external URL you used to publi
7676
## Next steps
7777

7878
For more information about Azure AD Application Proxy, see [How to provide secure remote access to on-premises applications](application-proxy.md).
79-

articles/active-directory/authentication/concept-password-ban-bad-combined-policy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ The following Azure AD password policy requirements apply for all passwords that
3434
| Characters not allowed | Unicode characters |
3535
| Password length |Passwords require<br>- A minimum of eight characters<br>- A maximum of 256 characters</li> |
3636
| Password complexity |Passwords require three out of four of the following categories:<br>- Uppercase characters<br>- Lowercase characters<br>- Numbers <br>- Symbols<br> Note: Password complexity check isn't required for Education tenants. |
37-
| Password not recently used | When a user changes their password, the new password can't be the same as the current or recently used passwords. |
37+
| Password not recently used | When a user changes their password, the new password should not be the same as the current password. |
3838
| Password isn't banned by [Azure AD Password Protection](concept-password-ban-bad.md) | The password can't be on the global list of banned passwords for Azure AD Password Protection, or on the customizable list of banned passwords specific to your organization. |
3939

4040
## Password expiration policies

0 commit comments

Comments
 (0)