You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/active-directory/app-provisioning/inbound-provisioning-api-configure-app.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -101,12 +101,13 @@ Depending on the app you selected, use one of the following sections to complete
101
101
## Start accepting provisioning requests
102
102
103
103
1. Open the provisioning application's **Provisioning** -> **Overview** page.
104
+
:::image type="content" source="media/inbound-provisioning-api-configure-app/provisioning-api-endpoint.png" alt-text="Screenshot of Provisioning API endpoint." lightbox="media/inbound-provisioning-api-configure-app/provisioning-api-endpoint.png":::
104
105
1. On this page, you can take the following actions:
105
106
-**Start provisioning** control button – Click on this button to place the provisioning job in **listen mode** to process inbound bulk upload request payloads.
106
107
-**Stop provisioning** control button – Use this option to pause/stop the provisioning job.
107
108
-**Restart provisioning** control button – Use this option to purge any existing request payloads pending processing and start a new provisioning cycle.
108
109
-**Edit provisioning** control button – Use this option to edit the job settings, attribute mappings and to customize the provisioning schema.
109
-
-**Provision on demand** control button – This feature is not yet enabled in private preview.
110
+
-**Provision on demand** control button – This feature is not supported for API-driven inbound provisioning.
110
111
-**Provisioning API Endpoint** URL text – Copy the HTTPS URL value shown and save it in a Notepad or OneNote for use later with the API client.
111
112
1. Expand the **Statistics to date** > **View technical information** panel and copy the **Provisioning API Endpoint** URL. Share this URL with your API developer after [granting access permission](inbound-provisioning-api-grant-access.md) to invoke the API.
Copy file name to clipboardExpand all lines: articles/active-directory/app-provisioning/inbound-provisioning-api-curl-tutorial.md
+149-3Lines changed: 149 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,16 +21,16 @@ ms.reviewer: cmmdesai
21
21
## Pre-requisites
22
22
23
23
* You have configured [API-driven inbound provisioning app](inbound-provisioning-api-configure-app.md).
24
-
* You have [configured a service principal and it has access](inbound-provisioning-api-grant-access.md) to the inbound provisioning API.
24
+
* You have [configured a service principal and it has access](inbound-provisioning-api-grant-access.md) to the inbound provisioning API. Make note of the `ClientId` and `ClientSecret` of your service principal app for use in this tutorial.
25
25
26
-
## Upload user data to the inbound provisioning API using cURL
26
+
## Upload user data to the inbound provisioning API
27
27
28
28
1. Retrieve the **client_id** and **client_secret** of the service principal that has access to the inbound provisioning API.
29
29
1. Use OAuth **client_credentials** grant flow to get an access token. Replace the variables `[yourClientId]`, `[yourClientSecret]` and `[yourTenantId]` with values applicable to your setup and run the following cURL command. Copy the access token value generated
30
30
```
31
31
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "client_id=[yourClientId]&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&client_secret=[yourClientSecret]&grant_type=client_credentials" "https://login.microsoftonline.com/[yourTenantId]/oauth2/v2.0/token"
32
32
```
33
-
1. Copy the bulk request payload from the example [Bulk upload using SCIM core user and enterprise user schema](/graph/api/synchronization-synchronizationjob-post-bulkupload#example-1-bulk-upload-using-scim-core-user-and-enterprise-user-schema) and save the contents in a file called scim-bulk-upload-users.json.
33
+
1. Copy the [bulk request with SCIM Enterprise User Schema](#bulk-request-with-scim-enterprise-user-schema) and save the contents in a file called scim-bulk-upload-users.json.
34
34
1. Replace the variable `[InboundProvisioningAPIEndpoint]` with the provisioning API endpoint associated with your provisioning app. Use the `[AccessToken]` value from the previous step and run the following curl command to upload the bulk request to the provisioning API endpoint.
Copy file name to clipboardExpand all lines: articles/active-directory/app-provisioning/inbound-provisioning-api-faqs.md
+10-3Lines changed: 10 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,8 +48,11 @@ Yes, the provisioning API supports on-premises AD domains as a target.
48
48
49
49
## How do we get the /bulkUpload API endpoint for our provisioning app?
50
50
51
-
The /bulkUpload API is available only for apps of the type: "API-driven inbound provisioning to Azure AD" and "API-driven inbound provisioning to on-premises Active Directory". You can retrieve the unique API endpoint for each provisioning app from the Provisioning blade home page. In **Statistics to date** > **View technical information**,copy the **Provisioning API Endpoint** URL. It has the format:
51
+
The /bulkUpload API is available only for apps of the type: "API-driven inbound provisioning to Azure AD" and "API-driven inbound provisioning to on-premises Active Directory". You can retrieve the unique API endpoint for each provisioning app from the Provisioning blade home page. In **Statistics to date** > **View technical information**,copy the **Provisioning API Endpoint** URL.
52
52
53
+
:::image type="content" source="media/inbound-provisioning-api-configure-app/provisioning-api-endpoint.png" alt-text="Screenshot of Provisioning API endpoint." lightbox="media/inbound-provisioning-api-configure-app/provisioning-api-endpoint.png":::
@@ -145,11 +148,15 @@ If the attribute is set to **true**, the default mapping rule enables the accoun
145
148
146
149
## Can we soft-delete a user in Azure AD using /bulkUpload provisioning API?
147
150
148
-
No. Currently the provisioning service only supports enabling or disabling an account in Azure AD/on-premises AD.
151
+
Yes, you can soft-delete a user by using the **DELETE** method in the bulk request operation. Refer to the [bulkUpload](/graph/api/synchronization-synchronizationjob-post-bulkupload) API spec doc for an example request.
149
152
150
153
## How can we prevent accidental disabling/deletion of users?
151
154
152
-
You can enable accidental deletion prevention. See [Enable accidental deletions prevention in the Azure AD provisioning service](accidental-deletions.md)
155
+
To prevent and recover from accidental deletions, we recommend [configuring accidental deletion threshold](accidental-deletions.md) in the provisioning app and [enabling the on-premises Active Directory recycle bin](../hybrid/connect/how-to-connect-sync-recycle-bin.md). In your provisioning app's **Attribute Mapping** blade, under **Target object actions** disable the **Delete** operation.
156
+
157
+
**Recovering deleted accounts**
158
+
* If the target directory for the operation is Azure AD, then the matched user is soft-deleted. The user can be seen on the Microsoft Azure portal **Deleted users** page for the next 30 days and can be restored during that time.
159
+
* If the target directory for the operation is on-premises Active Directory, then the matched user is hard-deleted. If the **Active Directory Recycle Bin** is enabled, you can restore the deleted on-premises AD user object.
153
160
154
161
## Do we need to send all users from the HR system in every request?
Copy file name to clipboardExpand all lines: articles/active-directory/app-provisioning/inbound-provisioning-api-grant-access.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,8 @@ This configuration registers an app in Azure AD that represents the external API
43
43
1. Search and select permission **AuditLog.Read.All** and **SynchronizationData-User.Upload**.
44
44
1. Click on **Grant admin consent** on the next screen to complete the permission assignment. Click Yes on the confirmation dialog. Your app should have the following permission sets.
45
45
[](media/inbound-provisioning-api-grant-access/api-client-permissions.png#lightbox)
46
-
1. You're now ready to use the service principal with your API client.
46
+
1. You're now ready to use the service principal with your API client.
47
+
1. For production workloads, we recommend using [client certificate-based authentication](../develop/howto-authenticate-service-principal-powershell.md) with the service principal or managed identities.
0 commit comments