|
| 1 | +--- |
| 2 | +title: Configure API-driven inbound provisioning app |
| 3 | +description: Learn how to configure API-driven inbound provisioning app. |
| 4 | +services: active-directory |
| 5 | +author: jenniferf-skc |
| 6 | +manager: amycolannino |
| 7 | +ms.service: active-directory |
| 8 | +ms.subservice: app-provisioning |
| 9 | +ms.workload: identity |
| 10 | +ms.topic: how-to |
| 11 | +ms.date: 07/07/2023 |
| 12 | +ms.author: jfields |
| 13 | +ms.reviewer: cmmdesai |
| 14 | +--- |
| 15 | + |
| 16 | +# Configure API-driven inbound provisioning app (Public preview) |
| 17 | + |
| 18 | +## Introduction |
| 19 | +This tutorial describes how to configure [API-driven inbound user provisioning](inbound-provisioning-api-concepts.md). |
| 20 | + |
| 21 | +> [!IMPORTANT] |
| 22 | +> API-driven inbound provisioning is currently in public preview and is governed by [Preview Terms of Use](https://azure.microsoft.com/support/legal/preview-supplemental-terms/). |
| 23 | +
|
| 24 | +This feature is available only when you configure the following Enterprise Gallery apps: |
| 25 | +* API-driven inbound user provisioning to Azure AD |
| 26 | +* API-driven inbound user provisioning to on-premises AD |
| 27 | + |
| 28 | +## Prerequisites |
| 29 | +To complete the steps in this tutorial, you need access to Microsoft Entra admin portal with the following roles: |
| 30 | + |
| 31 | +* Global administrator OR |
| 32 | +* Application administrator (if you're configuring inbound user provisioning to Azure AD) OR |
| 33 | +* Application administrator + Hybrid identity administrator (if you're configuring inbound user provisioning to on-premises Active Directory) |
| 34 | + |
| 35 | +If you're configuring inbound user provisioning to on-premises Active Directory, you need access to a Windows Server where you can install the provisioning agent for connecting to your Active Directory domain controller. |
| 36 | + |
| 37 | +## Create your API-driven provisioning app |
| 38 | + |
| 39 | +1. Log in to the [Microsoft Entra portal](<https://entra.microsoft.com>). |
| 40 | +2. Browse to **Azure Active Directory -> Applications -> Enterprise applications**. |
| 41 | +3. Click on **New application** to create a new provisioning application. |
| 42 | + [](media/inbound-provisioning-api-configure-app/provisioning-entra-admin-center.png#lightbox) |
| 43 | +4. Enter **API-driven** in the search field, then select the application for your setup: |
| 44 | + * **API-driven Inbound User Provisioning to On-Premises AD**: Select this app if you're provisioning hybrid identities (identities that need both on-premises AD and Azure AD account) from your system of record. Once these accounts are provisioned in on-premises AD, they are automatically synchronized to your Azure AD tenant using Azure AD Connect or Cloud Sync. |
| 45 | + * **API-driven Inbound User Provisioning to Azure AD**: Select this app if you're provisioning cloud-only identities (identities that don't require on-premises AD accounts and only need Azure AD account) from your system of record. |
| 46 | + |
| 47 | + [](media/inbound-provisioning-api-configure-app/api-driven-inbound-provisioning-apps.png#lightbox) |
| 48 | + |
| 49 | +5. In the **Name** field, rename the application to meet your naming requirements, then click **Create**. |
| 50 | + |
| 51 | + [](media/inbound-provisioning-api-configure-app/provisioning-create-inbound-provisioning-app.png#lightbox) |
| 52 | + |
| 53 | + > [!NOTE] |
| 54 | + > If you plan to ingest data from multiple sources, each with their own sync rules, you can create multiple apps and give each app a descriptive name; for example, Provision-Employees-From-CSV-to-AD or Provision-Contractors-From-SQL-to-AD. |
| 55 | +6. Once the application creation is successful, go to the Provisioning blade and click on **Get started**. |
| 56 | + [](media/inbound-provisioning-api-configure-app/provisioning-overview-get-started.png#lightbox) |
| 57 | +7. Switch the Provisioning Mode from Manual to **Automatic**. |
| 58 | + |
| 59 | +Depending on the app you selected, use one of the following sections to complete your setup: |
| 60 | +* [Configure API-driven inbound provisioning to on-premises AD](#configure-api-driven-inbound-provisioning-to-on-premises-ad) |
| 61 | +* [Configure API-driven inbound provisioning to Azure AD](#configure-api-driven-inbound-provisioning-to-azure-ad) |
| 62 | + |
| 63 | +## Configure API-driven inbound provisioning to on-premises AD |
| 64 | + |
| 65 | +1. After setting the Provisioning Mode to **Automatic**, click on **Save** to create the initial configuration of the provisioning job. |
| 66 | +1. Click on the information banner about the Azure AD Provisioning Agent. |
| 67 | + [](media/inbound-provisioning-api-configure-app/provisioning-agent-banner.png#lightbox) |
| 68 | +1. Click **Accept terms & download** to download the Azure AD Provisioning Agent. |
| 69 | +1. Refer to the steps documented here to [install and configure the provisioning agent.](https://go.microsoft.com/fwlink/?linkid=2241216). This step registers your on-premises Active Directory domains with your Azure AD tenant. |
| 70 | +1. Once the agent registration is successful, select your domain in the drop-down **Active Directory domain** and specify the distinguished name of the OU where new user accounts are created by default. |
| 71 | + [](media/inbound-provisioning-api-configure-app/provisioning-select-active-directory-domain.png#lightbox) |
| 72 | + > [!NOTE] |
| 73 | + > If your AD domain is not visible in the **Active Directory Domain** dropdown list, reload the provisioning app in the browser. Click on **View on-premises agents for your domain** to ensure that your agent status is healthy. |
| 74 | +1. Click on **Test connection** to ensure that Azure AD can connect to the provisioning agent. |
| 75 | +1. Click on **Save** to save your changes. |
| 76 | +1. Once the save operation is successful, you'll see two more expansion panels – one for **Mappings** and one for **Settings**. Before proceeding to the next step, provide a valid notification email ID and save the configuration again. |
| 77 | + [](media/inbound-provisioning-api-configure-app/provisioning-notification-email.png#lightbox) |
| 78 | + > [!NOTE] |
| 79 | + > Providing the **Notification Email** in **Settings** is mandatory. If the Notification Email is left empty, then the provisioning goes into quarantine when you start the execution. |
| 80 | +1. Click on hyperlink in the **Mappings** expansion panel to view the default attribute mappings. |
| 81 | + > [!NOTE] |
| 82 | + > The default configuration in the **Attribute Mappings** page maps SCIM Core User and Enterprise User attributes to on-premises AD attributes. We recommend using the default mappings to get started and customizing these mappings later as you get more familiar with the overall data flow. |
| 83 | +1. Complete the configuration by following steps in the section [Start accepting provisioning requests](#start-accepting-provisioning-requests). |
| 84 | + |
| 85 | + |
| 86 | +## Configure API-driven inbound provisioning to Azure AD |
| 87 | + |
| 88 | + |
| 89 | +1. After setting the Provisioning Mode to **Automatic**, click on **Save** to create the initial configuration of the provisioning job. |
| 90 | +1. Once the save operation is successful, you will see two more expansion panels – one for **Mappings** and one for **Settings**. Before proceeding to the next step, make sure you provide a valid notification email id and Save the configuration once more. |
| 91 | + |
| 92 | + [](media/inbound-provisioning-api-configure-app/provisioning-notification-email.png#lightbox) |
| 93 | + |
| 94 | + > [!NOTE] |
| 95 | + > Providing the **Notification Email** in **Settings** is mandatory. If the Notification Email is left empty, then the provisioning goes into quarantine when you start the execution. |
| 96 | +1. Click on hyperlink in the **Mappings** expansion panel to view the default attribute mappings. |
| 97 | + > [!NOTE] |
| 98 | + > The default configuration in the **Attribute Mappings** page maps SCIM Core User and Enterprise User attributes to on-premises AD attributes. We recommend using the default mappings to get started and customizing these mappings later as you get more familiar with the overall data flow. |
| 99 | +1. Complete the configuration by following steps in the section [Start accepting provisioning requests](#start-accepting-provisioning-requests). |
| 100 | + |
| 101 | +## Start accepting provisioning requests |
| 102 | + |
| 103 | +1. Open the provisioning application's **Provisioning** -> **Overview** page. |
| 104 | +1. On this page, you can take the following actions: |
| 105 | + - **Start provisioning** control button – Click on this button to place the provisioning job in **listen mode** to process inbound bulk upload request payloads. |
| 106 | + - **Stop provisioning** control button – Use this option to pause/stop the provisioning job. |
| 107 | + - **Restart provisioning** control button – Use this option to purge any existing request payloads pending processing and start a new provisioning cycle. |
| 108 | + - **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 | + - **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 | +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. |
| 112 | + |
| 113 | +## Next steps |
| 114 | +- [Grant access to the inbound provisioning API](inbound-provisioning-api-grant-access.md) |
| 115 | +- [Frequently asked questions about API-driven inbound provisioning](inbound-provisioning-api-faqs.md) |
| 116 | +- [Automate user provisioning and deprovisioning to SaaS applications with Azure Active Directory](user-provisioning.md) |
| 117 | + |
0 commit comments