magedevgroup/module-admin-scim-azure
Composer 安装命令:
composer require 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).
README 文档
README
Microsoft Entra ID SCIM provisioning for Magento 2 admin users.
A thin Microsoft Entra ID (formerly Azure AD) provider plugin for the 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
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
-
In Magento, open Stores → Configuration → MageDevGroup → Admin SCIM, enable Admin SCIM, and set a Bearer Token.
-
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. -
In Entra, create an enterprise application, then under Provisioning → Admin Credentials enter:
Setting Value Tenant URL the URL from step 2 Secret Token the Bearer Token from step 1 -
Set the provisioning Mapping and Scope, then enable provisioning and assign users/groups.
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 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
addandreplaceinterchangeably 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
valueinstead of apathfilter (RFC §3.5.2.2); handled naively this can strip every member. Rewritten to amembers[value eq "<id>"]filtered remove per member, so only the named member leaves. - PATCH response — the core answers
200with the updated resource, which Entra accepts (a204 No Contentis also acceptable to Entra, so no response-mode toggle is needed).
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
- Magento 2.4.x
- PHP 8.3 – 8.5
magedevgroup/module-admin-scim(installed automatically)
License
OSL-3.0 © MageDevGroup. Commercial licensing and support: https://magedevgroup.com.
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: OSL-3.0
- 更新时间: 2026-07-09