The "Poor Man's IGA" approach using Microsoft Graph Security API's invokeaction endpoint to manage on-premises AD accounts in hybrid setups is a legitimate and creative use of existing E5 licensing. For organizations that already have Microsoft Defender for Identity and want to automate hybrid offboarding without procuring a dedicated IAM tool, this is worth understanding in detail — both for what it solves and for where it stops being sufficient.
What the Microsoft Graph Security API Approach Actually Does
The core insight in Jan Bakker's series is that the Microsoft Graph Security API's invokeaction endpoint can trigger security actions against hybrid identities without requiring the classic Hybrid Runbook Worker setup or inbound firewall ports. If you're an E5 customer already running Microsoft Defender for Identity, the infrastructure is already there — you're just connecting it to an automation layer.
The architecture advantages are real:
Outbound-only communication. The approach works through outbound HTTPS calls rather than requiring inbound ports to be opened on your on-prem infrastructure. No multi-hop connections, no complex firewall policies to negotiate with a network team. For organizations where getting firewall rules approved is itself a weeks-long process, this is a meaningful operational advantage.
Immediate termination capability. The security playbook use case — triggering immediate account disablement when an account is flagged as compromised — is where this approach is genuinely powerful. When an identity in Microsoft Defender for Identity is flagged, an automated trigger via Graph can disable the on-prem AD account faster than any manual response process.
Leverages existing E5 licensing. If you're already paying for E5, this capability is included. There's no additional procurement, no vendor relationship to manage, no contract negotiation. For cost-constrained identity teams, that's a real advantage.
Where the Script-Based Approach Hits Its Ceiling
The same practical tradeoffs that apply to PowerShell-based identity management apply here. The approach works for the scenarios it was designed for; complexity accumulates when requirements change.
The mover scenario. Custom offboarding scripts typically handle the leaver case — user leaves, disable the account. The mover scenario — user changes departments or roles and needs old access revoked while new access is provisioned — is architecturally different and requires knowing what access to remove based on the previous role context. Most homegrown scripts handle the leaver case and leave mover as a manual process or a later project.
Shadow IT and non-AD applications. The Graph API approach disables or modifies the on-prem AD account. It has no visibility into SaaS applications that were never connected to your AD, tools employees signed up for with their work email, or any application that authenticates independently of your identity stack. An offboarded user whose AD account is disabled may still have active credentials in Salesforce, GitHub, or eight other applications that were never federated to your IdP.
Maintenance overhead as the environment changes. Scripts built against the Graph API will need updating when Microsoft updates endpoints, deprecates methods, or changes authentication requirements. When the script breaks, whoever wrote it needs to debug it — and if they've left the organization, the dependency surfaces in the worst possible moment.
Audit trail limitations. A script produces logs if you build logging into it. What it doesn't produce natively is the structured, non-editable, timestamped compliance artifact that a SOC 2 auditor expects to see as evidence of offboarding. You can build this — but it's additional scope and additional maintenance.
How a Dedicated IGA Platform Productizes the Same Logic
The comparison isn't "script versus platform" in terms of fundamental capability — both can disable an on-prem AD account in a hybrid environment. The comparison is about what gets added when you productize the logic.
Zluri's Directory Agent uses the same architectural principle as the Graph API approach: an outbound-only connection from within the intranet to Zluri's cloud servers via HTTPS polling. No inbound firewall ports, no Hybrid Runbook Worker complexity. The agent handles the on-prem AD actions — user discovery, group modification, account disablement — triggered from the central IGA platform.
The additions a platform layer provides over a script:
Full JML coverage including movers. The platform manages joiner, mover, and leaver scenarios from the same workflow engine. When someone transfers departments, the same trigger that handles offboarding can simultaneously deprovision old role access and provision new role access — something that requires significantly more scripting complexity to handle correctly in a homegrown approach.
Discovery beyond AD. Zluri's Discovery Engine surfaces every application a user has access to — including SaaS tools outside the AD perimeter, shadow IT, and applications that never got formally onboarded to the identity stack. The offboarding scope matches the real access footprint rather than just the AD-connected portion.
Compliance reporting. Every action taken is logged in a structured, auditable format. The offboarding record exists as a timestamped compliance artifact without requiring you to build logging infrastructure into the scripts.
HTTP Request actions for custom endpoints. For hybrid scenarios that need to reach specific API endpoints — including Microsoft Graph — Zluri's HTTP Request action lets admins configure direct API calls from within a workflow. The custom logic you've built for Graph API interactions can be preserved as a workflow action rather than a standalone script dependency.
Which Approach Is Right for Which Organization
The Graph API / Poor Man's IGA approach is genuinely the right answer for some organizations:
- E5 customers who want to leverage existing licensing before procuring additional tools
- Organizations with a small, technically capable identity team that can build and maintain the scripts
- Environments where the primary offboarding concern is the AD and Entra-managed surface (fewer non-AD applications)
- Security playbook use cases where immediate response to a compromised identity is the priority
A dedicated IGA platform becomes the better answer when:
- The application stack extends meaningfully beyond AD and Entra-connected apps
- The mover scenario (role changes, department transfers) needs to be systematically managed, not just the leaver scenario
- Compliance evidence requirements (SOC 2, ISO 27001) need structured audit artifacts rather than script-generated logs
- The team wants to reduce ongoing maintenance burden rather than own the script stack indefinitely
- Shadow IT discovery is a security concern alongside the core offboarding workflow
The two approaches aren't mutually exclusive. Some organizations start with the Graph API approach to solve the immediate problem and extend to a platform when requirements outgrow what the scripts cover. The fact that Zluri supports HTTP Request actions means the custom Graph API logic doesn't have to be thrown away — it can become a step in a broader workflow.
Frequently Asked Questions
What is the Microsoft Graph Security API invokeaction endpoint and how does it help with hybrid AD offboarding?
The Microsoft Graph Security API invokeaction endpoint allows security automation workflows to trigger actions against identities managed in hybrid Azure AD / on-premises AD environments. For organizations with Microsoft Defender for Identity and E5 licensing, it provides a way to disable or modify on-prem AD accounts from cloud-based automation without requiring inbound firewall ports, Hybrid Runbook Workers, or multi-hop network connections — making it useful for both routine offboarding automation and immediate response to compromised accounts.
What is "Poor Man's IGA" in identity management?
"Poor Man's IGA" refers to building identity governance workflows using existing Microsoft licensing (particularly E5 capabilities) rather than procuring a dedicated Identity Governance and Administration platform. It typically involves PowerShell scripts, Azure Logic Apps, Azure Automation Runbooks, and Microsoft Graph API calls to automate joiner-mover-leaver workflows without the cost and complexity of enterprise IGA tools. The approach is effective for organizations with technical resources and primarily Microsoft-centric environments, with limitations around non-Microsoft application coverage and audit trail depth.
What are the limitations of using Microsoft Graph API alone for identity governance?
Graph API-based approaches are primarily effective for the Microsoft identity surface: Entra ID accounts, on-prem AD accounts via Defender for Identity, and Microsoft-connected applications. They don't provide visibility into SaaS applications outside the Microsoft perimeter, can't easily handle the mover (role change) scenario without additional scripting complexity, require ongoing maintenance when Microsoft updates its API, and don't natively produce the compliance-grade audit artifacts that SOC 2 access management controls require.
When should you move from a script-based IGA approach to a dedicated platform?
The transition point is typically when the script stack's maintenance overhead exceeds the cost of a platform, when non-Microsoft application coverage becomes a security concern, when compliance requirements demand structured audit evidence rather than script-generated logs, or when the mover and shadow IT scenarios require coverage that the script approach wasn't designed to handle. The transition doesn't require abandoning existing scripts — platforms that support custom HTTP Request actions or on-prem script execution agents can preserve existing logic while adding the governance layer.
















