Drupal is a registered trademark of Dries Buytaert
drupal 11.4.1 Update released for Drupal core (11.4.1)! drupal 11.4.0 Update released for Drupal core (11.4.0)! drupal 10.6.12 Update released for Drupal core (10.6.12)! drupal 11.3.13 Update released for Drupal core (11.3.13)! drupal 10.6.11 Update released for Drupal core (10.6.11)! drupal 11.3.12 Update released for Drupal core (11.3.12)! drupal 11.2.14 Update released for Drupal core (11.2.14)! drupal 10.5.12 Update released for Drupal core (10.5.12)! cms 2.1.3 Update released for Drupal core (2.1.3)! drupal 10.5.11 Update released for Drupal core (10.5.11)! drupal 11.3.11 Update released for Drupal core (11.3.11)! drupal 11.2.13 Update released for Drupal core (11.2.13)! drupal 10.6.10 Update released for Drupal core (10.6.10)! cms 2.1.2 Update released for Drupal core (2.1.2)! drupal 11.1.10 Update released for Drupal core (11.1.10)! drupal 10.5.10 Update released for Drupal core (10.5.10)! drupal 10.4.10 Update released for Drupal core (10.4.10)! drupal 11.2.12 Update released for Drupal core (11.2.12)! drupal 11.3.10 Update released for Drupal core (11.3.10)! drupal 10.6.9 Update released for Drupal core (10.6.9)!

entrasync

8 sites No security coverage
View on drupal.org

Module that allows you to connect to a Microsoft Graph API for your tenant(s), and import users from Microsoft Entra ID (prev. Azure AD) to Drupal entities.

Drupal entities to map to are plugins, and per now user and node entities are available and shipped with the core module.

Features

The module will connect to one or more tenants and fetch your chosen properties from the users, and queue these up for importing in Drupal (using the Queue API).

When you have received the users from Entra you can filter the result by all fetched properties, with a number of operators, to reduce the number that should be imported. For example to only import users from a certain department, within a certain e-mail domain etc. This can be useful if you need to map different user groups to different roles in Drupal.

You are able to map your fetched properties from Entra to your own Drupal (text) fields on the entity.

If you map to users you decide which roles the incoming users should get, wether they should be active or not, and wether you want to send welcome e-mail to the users, if they are set to active.

For nodes you can decide published or not, and decide if you want to make a new revision on each update.

Managed entities are stored in Drupal, so we can detect changes (typically to unpublish / block a user that has been deactivated in Entra).

First import will get all users from the tenant, while subsequent requests will only get new or updated users (using delta queries), which will drastically reduce the time and resources used to sync. Users that has new data in Entra will be updated in Drupal when syncing.

Delta queries can be disabled if needed, in which case all users will be updated. This is useful if you need to change the fetched properties or the mapping.

You can set up sync to run on cron, so your user list always keeps up to date.

Additional Requirements

The module is dependent on and uses the Microsoft Graph API module for the SDK and the Graph API Key, which again is dependent on the Key module. You do not need to configure this module manually.

It is also dependent on having an Azure app configured with the right permissions (User.Read.All as a minimum). If you want to test it a good way to start is to sign up for the Microsoft 365 Developer Program. This is free, and will give you a free tenant with demo users to test with.

Post-Installation

Give the desired role(s) the permission to administer the module. Be restrictive, as the module works directly with users and can also grant them roles, so it can be used to escalate permissions.

Add key(s) to your tenant(s) through the key module, then go add as many syncronisations as you need using these keys.

It's recommended to install Queue UI module, as this will give you a UI to this modules queues, and also the possibility to process queues on demand, and not only via cron. You might also want Ultimate Cron to set up more granular control of the update schedule.

It is also likely you would use OpenID Connect to allow the imported users to log in with their Entra ID.

For developers

There are two events exposed, one for altering the incoming users, and one for altering the user before saving to Drupal. See documentation.

For everything, use cases input and merge requests are welcome.

Activity

Total releases
3
First release
May 2026
Latest release
3 weeks ago
Release cadence
10 days
Stability
0% stable

Release Timeline

Releases

Version Type Release date
3.0.0-beta2 Pre-release Jun 11, 2026
3.0.0-beta1 Pre-release Jun 11, 2026
3.0.x-dev Dev May 22, 2026