PHPackages                             magedevgroup/module-admin-scim-azure - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. magedevgroup/module-admin-scim-azure

ActiveMagento2-module[Admin Panels](/categories/admin)

magedevgroup/module-admin-scim-azure
====================================

Microsoft Entra ID provider plugin for the admin-scim SCIM 2.0 server — normalizes Entra's non-standard SCIM PATCH behaviour and documents the Entra enterprise-app provisioning setup. Installing it pulls magedevgroup/module-admin-scim (and, transitively, sso-core).

0.0.1(1mo ago)00OSL-3.0PHPPHP ~8.3.0||~8.4.0||~8.5.0

Since Jul 9Pushed 1mo agoCompare

[ Source](https://github.com/MageDevGroup-com/module-admin-scim-azure)[ Packagist](https://packagist.org/packages/magedevgroup/module-admin-scim-azure)[ RSS](/packages/magedevgroup-module-admin-scim-azure/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (3)Versions (2)Used By (0)

MageDevGroup\_AdminScimAzure
============================

[](#magedevgroup_adminscimazure)

> Microsoft Entra ID SCIM provisioning for Magento 2 admin users.

[![License](https://camo.githubusercontent.com/83286826e7422502369a480c1cbde06eae433c866ac3e9054835db7296a11c9c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4f534c2d2d332e302d677265656e)](https://camo.githubusercontent.com/83286826e7422502369a480c1cbde06eae433c866ac3e9054835db7296a11c9c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4f534c2d2d332e302d677265656e) [![Magento](https://camo.githubusercontent.com/74f990c6f6a950cfc7707cb6d3cfdc731382be6260dfab995f14da50230e9117/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6167656e746f2d322e342d6f72616e6765)](https://camo.githubusercontent.com/74f990c6f6a950cfc7707cb6d3cfdc731382be6260dfab995f14da50230e9117/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6167656e746f2d322e342d6f72616e6765) [![PHP](https://camo.githubusercontent.com/49c1441e4607accdb38fb505c51c881b13dabea9a2726b234d7ad218befce9fb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e332d2d382e352d626c7565)](https://camo.githubusercontent.com/49c1441e4607accdb38fb505c51c881b13dabea9a2726b234d7ad218befce9fb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e332d2d382e352d626c7565) [![Version](https://camo.githubusercontent.com/6a24c9197bfc07f07d3f136dc182a76b14d3cd2f8d473fbc3729540c9a4c5410/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d302e302e312d6c6967687467726579)](https://camo.githubusercontent.com/6a24c9197bfc07f07d3f136dc182a76b14d3cd2f8d473fbc3729540c9a4c5410/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d302e302e312d6c6967687467726579)

A thin Microsoft Entra ID (formerly Azure AD) provider plugin for the [`admin-scim`](../module-admin-scim) SCIM 2.0 server. It normalizes Entra's non-standard SCIM behaviour and documents the Entra-side setup. Entra deviates from RFC 7644 in several documented ways, so this plugin is a request normalizer that absorbs those quirks plus an admin setup surface.

Install
-------

[](#install)

```
composer require magedevgroup/module-admin-scim-azure
bin/magento module:enable MageDevGroup_AdminScimAzure
bin/magento setup:upgrade
```

The single `require` pulls `magedevgroup/module-admin-scim` — the whole provisioning chain installs at once.

Set up the Entra SCIM app
-------------------------

[](#set-up-the-entra-scim-app)

1. In Magento, open **Stores → Configuration → MageDevGroup → Admin SCIM**, enable Admin SCIM, and set a **Bearer Token**.
2. Read the Tenant URL from **Stores → Configuration → MageDevGroup → Admin SCIM → Microsoft Entra ID Setup**. It is this store's SCIM base URL, e.g. `https://your-host/admin-scim/v2`.
3. In Entra, create an enterprise application, then under **Provisioning → Admin Credentials** enter:

    SettingValueTenant URLthe URL from step 2Secret Tokenthe Bearer Token from step 1
4. Set the provisioning **Mapping** and **Scope**, then enable provisioning and assign users/groups.

Supported provisioning actions
------------------------------

[](#supported-provisioning-actions)

- **Create** — Entra pushes a new user → admin\_user created.
- **Update** — profile changes (sent as PATCH) → admin\_user updated.
- **Deactivate / reactivate** — sent by Entra as `active = false` / `active = true`.
- **Group push** — group membership → role mapping (standard SCIM, handled by `admin-scim`).

Entra deviations handled
------------------------

[](#entra-deviations-handled)

Entra does not send strictly RFC-compliant SCIM. This plugin's `AzureRequestNormalizer` rewrites each deviation before it reaches the core:

- **Flat complex-attribute PATCH** — Entra sends `"urn:…:User.attr"` (or `:attr`) flat instead of nesting the attribute inside its schema-extension object. Un-flattened to the nested form, in PATCH ops and POST/PUT bodies.
- **ADD vs REPLACE inconsistency** — Entra uses `add` and `replace` interchangeably for the same single-valued attribute; both are accepted (the core already treats them identically per RFC §3.5.2.1).
- **Group-member remove** — Entra puts the member in the op's `value` instead of a `path` filter (RFC §3.5.2.2); handled naively this can strip *every* member. Rewritten to a `members[value eq ""]` filtered remove per member, so only the named member leaves.
- **PATCH response** — the core answers `200` with the updated resource, which Entra accepts (a `204 No Content` is also acceptable to Entra, so no response-mode toggle is needed).

How it works
------------

[](#how-it-works)

Entra pushes SCIM 2.0 requests to the `admin-scim` endpoint. This plugin registers `AzureRequestNormalizer` into `admin-scim`'s `RequestNormalizerInterface` seam (di-merged under the `azure` key). It rewrites the deviations above and passes everything else through unchanged; the actual admin-user provisioning and role mapping happen in `admin-scim`.

Requirements
------------

[](#requirements)

- Magento **2.4.x**
- PHP **8.3 – 8.5**
- `magedevgroup/module-admin-scim` (installed automatically)

License
-------

[](#license)

[OSL-3.0](LICENSE) © MageDevGroup. Commercial licensing and support: .

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance90

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

47d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6d5acdc656153eb172422ac03f4a59806116de32da5f861c4b00e4ac7bb9c544?d=identicon)[magedevgroup](/maintainers/magedevgroup)

---

Top Contributors

[![mageown](https://avatars.githubusercontent.com/u/2058487?v=4)](https://github.com/mageown "mageown (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/magedevgroup-module-admin-scim-azure/health.svg)

```
[![Health](https://phpackages.com/badges/magedevgroup-module-admin-scim-azure/health.svg)](https://phpackages.com/packages/magedevgroup-module-admin-scim-azure)
```

###  Alternatives

[fastly/magento2

Fastly CDN Module for Magento 2.4.x

1564.5M1](/packages/fastly-magento2)[hyva-themes/module-magento2-admin

This module aims to make creating grids and forms in the Magento 2 adminhtml area for developers joyful and fast

178395.6k15](/packages/hyva-themes-module-magento2-admin)[magepal/magento2-guest-to-customer

Quickly and easily convert existing guest checkout customers to registered customers.

69181.9k](/packages/magepal-magento2-guest-to-customer)[markshust/magento2-module-ordergrid

The Order Grid module adds more details to the order grid in the admin.

9292.3k](/packages/markshust-magento2-module-ordergrid)[myparcelnl/magento

A Magento 2 module that creates MyParcel labels

1861.2k](/packages/myparcelnl-magento)[loki/magento2-admin-components

Admin Panel grids and forms created via Loki Components

178.3k9](/packages/loki-magento2-admin-components)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
