Skip to main content
drupalreleases
Release: Cms 2.2.3 — Update released for Drupal core (2.2.3)! Release: Easy Breadcrumb 2.0.11 — Minor update available for module easy_breadcrumb (2.0.11). Release: Bootstrap 8.x-3.42 — Minor update available for theme bootstrap (8.x-3.42). Release: Editoria11y Accessibility Checker 3.0.10 — Minor update available for module editoria11y (3.0.10). Release: Editoria11y Accessibility Checker 2.2.24 — Minor update available for module editoria11y (2.2.24). Release: Leaflet 10.4.13 — Minor update available for module leaflet (10.4.13). Release: Flag 5.1.1 — Minor update available for module flag (5.1.1). Release: Layout Paragraphs 3.0.0-beta5 — New beta version released for module layout_paragraphs (3.0.0-beta5). Module Revived: Bootstrap 8.x-3.41 — Theme bootstrap updated after 6 months of inactivity (8.x-3.41). Security Coverage: Component Library — Module component_library now has official Drupal security advisory coverage.

Microsoft Entra sync

21 sites No security coverage
View on drupal.org

This module connects to Microsoft Graph API to import users from Microsoft Entra ID into Drupal entities like users and nodes. You can filter imported users based on various properties, map Entra ID fields to Drupal fields, and configure user roles, status, and node publishing options. The module supports incremental updates and can be scheduled to run via cron for automated synchronization.

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 is the only permission the module needs).

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.

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
12
Tracked since
Jan 2024
Latest release
3 months ago
Releases (12 mo)
3 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Core Release date
3.0.0-beta2 Pre-release 10–11 Jun 11, 2026
3.0.0-beta1 Pre-release 10–11 Jun 11, 2026
3.0.x-dev Dev 10–11 May 22, 2026
2.2.0-alpha1 Pre-release 10–11 May 23, 2024
2.1.0-alpha4 Pre-release 10 May 10, 2024
2.1.0-alpha3 Pre-release 10 Apr 23, 2024
2.1.0-alpha2 Pre-release 10 Apr 23, 2024
2.0.x-dev Dev 10–11 Apr 4, 2024
2.0.0-alpha1 Pre-release 10 Apr 3, 2024
1.0.0-alpha3 Pre-release 10 Jan 30, 2024
1.0.0-alpha1 Pre-release 10 Jan 26, 2024
1.0.x-dev Dev 10 Jan 26, 2024