.png)

Microsoft Entra ID Integration Guide
Integrate Microsoft Entra ID with enterprise systems through Microsoft Graph REST APIs, OAuth 2.0, selective change notifications, and scheduled synchronization workflows.
Microsoft Entra ID integration options at a glance
Microsoft Entra ID integrations are primarily implemented through Microsoft Graph REST APIs, which expose users, groups, applications, service principals, devices, directory roles, audit logs, and related resources. OAuth 2.0 supports delegated and application permissions, including client credentials for unattended workflows. Microsoft Graph also provides selective change notifications, resource-specific delta queries, JSON batching, and file or attachment APIs for related Microsoft 365 workloads. Martini can consume Graph endpoints, receive supported notifications through an exposed API, schedule reconciliation workflows, persist synchronization state, map Graph JSON, and apply validation, authorization, throttling, and retry rules.
Common Microsoft Entra ID integration patterns
Common Microsoft Entra ID data objects used in integrations
Authentication and security considerations
OAuth 2.0 and permissions
Microsoft Graph uses OAuth 2.0 bearer access tokens. Authorization code supports delegated access on behalf of a user, while client credentials supports unattended service-to-service workflows. Delegated scopes and application roles determine what the integration can do.
Least privilege
Use the narrowest Graph permissions for the required resources and operations. Separate read-only synchronization from user, group, application, role-assignment, and audit-log administration. Many privileged permissions require tenant administrator consent.
Credential protection
Store client secrets and certificates in Martini secure environment configuration rather than workflows, mappings, or source-controlled files. Tenant authorities, cloud endpoints, and consent configuration should be environment-specific.
Operational considerations for Microsoft Entra ID integrations
Pagination and throttling
Graph collections commonly return an @odata.nextLink. Martini workflows should follow continuation links and handle HTTP 429 responses by respecting Retry-After, reducing concurrency, and applying backoff.
Incremental synchronization
Delta queries are resource-specific. Persist delta links only after successful processing, handle deletions and invalid links, and provide a full synchronization fallback.
Notifications and renewal
Change notifications are selective rather than a universal Entra ID event stream. Validate notification requests, deduplicate deliveries, retrieve current resource state, and renew subscriptions before expiration.
Idempotency and change control
Use Graph object IDs, application IDs, service principal IDs, and external identifiers instead of display names alone. Prefer Microsoft Graph v1.0 where available and isolate beta behavior behind reusable workflows.
Testing and observability
Test permissions, pagination, partial batch responses, throttling, expired delta links, duplicate notifications, and tenant-specific cloud behavior. Monitor checkpoints, subscription expiry, retries, and permanent failures.
Why use Martini instead of scripts or point-to-point integrations?
Orchestrate more than an API call
Point-to-point scripts often combine authentication, pagination, mapping, retries, state management, and business rules in code that is difficult to reuse. Martini organizes these concerns in workflows and APIs that can be maintained as reusable integration assets.
Handle selective event coverage
Microsoft Graph change notifications do not cover every Entra ID object or operation. Martini can combine supported notifications with scheduled delta queries, reconciliation, and audit extraction in a coordinated design.
Control privileged operations
Martini can separate read, provisioning, membership, role, and application-management workflows, apply validation and approval rules, and retain correlation and processing state for operational review.
Support reliable delivery
Reusable mappings, checkpoints, idempotency rules, pagination, throttling controls, retries, and monitoring provide a more maintainable foundation than isolated scripts or tightly coupled point-to-point flows.