Skip to main content
Joinly by KoppelHet

Entra ID and Active Directory

Provisioning in Entra ID: how do employees end up in the right systems automatically?

An employee joins. HR has entered everything, but IT still has to create accounts, choose groups and activate applications. Provisioning in Entra ID can automate much of that work. There are, however, different forms of provisioning. This overview helps you understand which route is meant for what.

How do accounts end up in the right place automatically?

A new employee often needs more than a Microsoft account. Think of access to Teams, files and other applications. Provisioning in Entra ID connects those steps, but there are several routes.

Search Microsoft Learn for provisioning and you find dozens of separate pages: one per HR system, one per app, one for the sync. What is missing is the overview. Yet they are connected. Almost everything runs on the same Microsoft Entra provisioning service, which works with SCIM 2.0, attribute mappings with expressions, scoping filters and the same provisioning logs. The difference is in the direction: where does the identity come from, and where does it need to go?

The routes side by side
RouteFrom, toWithLicence
SyncActive Directory to Entra IDEntra Connect Sync or Entra Cloud SyncConnect Sync is included in Entra ID Free; groups from the cloud to AD with Cloud Sync require P1
Inbound from HRHR system to Entra ID or to ADApps for Workday and SuccessFactors, or API-driven inbound provisioning for any other sourceEntra ID P1 or higher
Outbound to appsEntra ID to a SaaS app or an on-premises applicationSCIM connector from the gallery or your own SCIM endpoint; the provisioning agent for on-premises appsUsers to SaaS apps: Free as well. Groups, and on-premises apps: P1
Lifecycle on topWithin Entra IDLifecycle Workflows and entitlement management (access packages)Lifecycle Workflows: Entra ID Governance

Microsoft mainly uses the word synchronisation for the first route: two directories that hold the same thing. Provisioning is creating, updating and disabling an account in a target system based on a source. In practice the terms are used interchangeably, by Microsoft too.

1. Synchronising existing AD accounts to Entra ID

This is the familiar hybrid situation: the account exists on premises and also needs to be available in Microsoft 365.

In a hybrid environment AD is where the account is created, and the sync brings it to the cloud. Entra Connect Sync runs every 30 minutes by default, Entra Cloud Sync every two minutes. A synchronised account has AD as its source, so you make changes there.

The sync does not create accounts based on HR, and neither of the two creates users in AD from the cloud. Cloud Sync can, however, provision groups from Entra ID to AD. The differences between the two, soft and hard match, and moving the source of authority are covered in Entra Connect or Cloud Sync.

2. Creating accounts based on HR data

Here the process starts with the employee, not with a manual request to IT.

Inbound provisioning reverses the direction: the HR system is the source, and the provisioning service creates the account, updates it and disables it. There are two variants.

  • The ready-made apps for Workday and SuccessFactors. Microsoft fetches the data itself, both to Entra ID and to on-premises AD.
  • API-driven inbound provisioning for any other system of record: another HR package, a payroll system, a CSV export or a SQL table. You (or a vendor) send the data as a SCIM bulk request to a bulkUpload endpoint, and the provisioning service does the comparison and the change. How that works, what the limits are and what you have to build yourself is covered in API-driven inbound provisioning.

If the account needs to be in on-premises AD, you install the Microsoft Entra provisioning agent on a Windows server in your network. The provisioning service gives the instruction, the agent carries it out in AD, and the sync you already have then brings the account to Entra ID. Cloud-only accounts need no agent.

3. Passing access on to other applications

An account in Entra ID is only the beginning if someone also needs to be able to work in other systems.

Outbound provisioning passes accounts from Entra ID on to the applications you use. Many apps have a connector in the enterprise apps gallery; if an app has its own SCIM 2.0 endpoint, you can connect it yourself. What SCIM is and how it works, you can read in understanding SCIM.

  1. Open the app in the Entra admin center under Enterprise apps and choose Provisioning. Set the mode to Automatic and enter the tenant URL and the app's token.
  2. Set the scope. Usually that is Sync only assigned users and groups: only those assigned to the app get an account. Assigning groups requires P1 or higher.
  3. Check the attribute mappings and the matching attribute Entra ID uses to recognise an existing account in the app.
  4. Enter a notification address, test with Provision on demand for a few users and start the provisioning.
  • Nested groups do not count. The provisioning service only reads the direct members of an assigned group.
  • Out of scope means disabled. If you remove someone from the group attached to the app, the service disables the account in the app. That applies to dynamic groups too: one wrong field and someone loses their access.
  • After the first cycle the service runs incremental cycles that only process the changes since the previous one. The interval differs per app.
  • Quarantine: if almost all calls fail, for example because of an expired token, the connection goes into quarantine. The service then tries less and less often, down to once a day, and disables the connection after four weeks.

For on-premises applications without SCIM, Microsoft uses the same provisioning agent, with connectors for LDAP, SQL, REST or SOAP and PowerShell. You need P1 for that.

4. Tasks and approvals around the employee journey

Some steps take more than creating an account, for example approvals or a task on the first working day.

Provisioning creates the account. What needs to happen after that, you arrange with Lifecycle Workflows: workflows for joiners, movers and leavers that start on a date or a change. They schedule on employeeHireDate and employeeLeaveDateTime, and the tenant processes them on a schedule that runs every three hours by default. You can create up to 50 workflows.

A selection of the built-in tasks
MomentTasks
JoinerWelcome email, Temporary Access Pass to the manager, assign licences, add to groups and Teams, enable account
MoverEmail the manager about the transfer, remove licences and access packages, adjust groups
LeaverDisable account, revoke refresh tokens, remove from all groups and Teams, remove licences, delete user
AlwaysA step of your own through a custom task extension (Logic Apps)

Entitlement management is about access in packages: an access package bundles groups, apps and SharePoint sites, with an approval and an end date. With an auto-assignment policy, everyone who meets a rule gets the package automatically. Lifecycle Workflows need an Entra ID Governance licence, and the automatic assignment of access packages is also part of Governance.

If you want to know how this compares with a platform that works from HR, the comparison is on Joinly alongside Microsoft Entra ID Governance.

Where you see what has happened

All routes that go through the provisioning service write to the provisioning logs: Entra ID, Enterprise apps, Provisioning logs. There you see per user what was read, compared and written, and why something failed. Changes to the configuration itself, such as a new mapping or a stopped connection, are in the audit logs.

Failed provisioning actions over the past day, with Microsoft Graph PowerShell
Connect-MgGraph -Scopes "AuditLog.Read.All"

$sinds = (Get-Date).AddDays(-1).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")
Get-MgAuditLogProvisioning -Filter "activityDateTime ge $sinds" -All |
  Where-Object { $_.ProvisioningStatusInfo.Status -eq "failure" } |
  Select-Object ActivityDateTime, ProvisioningAction,
    @{ n = "Wie";  e = { $_.SourceIdentity.DisplayName } },
    @{ n = "Fout"; e = { $_.ProvisioningStatusInfo.ErrorInformation.Reason } }

Where Microsoft stops and user management begins

Microsoft offers powerful building blocks. But someone still has to decide which data leads, which roles belong with it and what needs to happen when something changes.

Microsoft provides the transport: from AD to the cloud, from HR to Entra ID, from Entra ID to the apps. What goes in comes from the source. A sync copies what is in AD, even if it is wrong. An inbound connection creates the account HR supplies, with the department HR filled in. An outbound connection gives access to whoever is in the group. Lifecycle Workflows start on a date that someone has to fill in.

That is why good provisioning starts with the question of where the data comes from, and who decides what belongs with a role. How to set up those groups, you can read in setting up Entra ID groups for role-based access. Which fields drive everything is covered in user attributes in Entra ID.

Joinly

From HR change to a working workplace

Microsoft Entra ID offers strong capabilities for synchronising accounts and arranging access to applications. But the HR system, the employee's role and the access they need still have to come together.

That is where Joinly helps. Joinly picks up changes from HR, links them to roles and determines which accounts, groups and permissions are needed. The execution then runs through the appropriate route, such as Microsoft Graph, API-driven provisioning or the Joinly Agent for Active Directory. Entra ID remains the place where Microsoft identities are managed.

Het lifecycle-overzicht in Joinly: accounts die elke HR-mutatie automatisch volgenDiscover how Joinly automates user management

What you can count on

  • No vendor lock-inYour identities and your configuration stay yours.
  • Your data out whenever you wantYou can export your data at any time.
  • Standard SLAOur standard SLA is available on request.
  • Support during implementationOur specialists set it up together with you.
  • ISO 27001 certifiedInformation security to an internationally recognised standard.

Provisioning in Entra ID

Frequently asked questions

  • What is the difference between inbound and outbound provisioning?

    Inbound provisioning brings identities into Entra ID or AD, from a source such as an HR system. Outbound provisioning passes accounts from Entra ID on to applications, usually with SCIM.

  • Which licence do I need for provisioning in Entra ID?

    That depends on the route. Inbound provisioning from HR, API-driven included, requires Entra ID P1 or higher. Provisioning users to SaaS apps also works with Free, but assigning groups and provisioning to on-premises apps require P1. Lifecycle Workflows are only included in Entra ID Governance.

  • Is provisioning the same as synchronisation?

    Not quite. Synchronisation keeps two directories the same, such as Active Directory and Entra ID. Provisioning creates, changes and disables accounts in a target system based on a source. Microsoft sometimes uses the words interchangeably.

  • How quickly is a new employee in the applications?

    That is the sum of the routes. The account first has to be in Entra ID, through the sync or through inbound provisioning, and then the outbound connection runs in cycles that differ per app. With Provision on demand you test one user straight away.

  • Can provisioning delete accounts too?

    Outbound, yes: if someone goes out of scope, the service disables the account in the app, and for a permanently deleted user it can delete it. With API-driven inbound provisioning a leaver disables the account, and the endpoint deletes nothing. You then arrange the permanent deletion with the Delete user task in Lifecycle Workflows.

Try Joinly on top of your own Microsoft environment

Roles, workflows, external staff and an audit log for Entra ID and Active Directory. Start with demo data in the free trial environment.

No credit card, nothing to install.

Rather talk to someone first? Talk to an IAM specialist