The Azure Entra ID AirSync connector syncs identity and directory data from Microsoft Entra ID (formerly Azure Active Directory) to DevRev. This connector enables you to import users, groups, applications, devices, roles, policies, and audit logs from your Azure tenant into DevRev for unified identity management and access governance.
The connector uses Microsoft Graph API to extract data and supports both full and incremental syncs. Data flows one-way from Azure Entra ID to DevRev.
The connector extracts the following entities from your Azure Entra ID tenant:
Entity | Description |
|---|---|
Users | All user accounts including guest users, with profile information (email, display name, job title, department, etc.) |
Groups | Security groups, Microsoft 365 groups, and distribution lists |
Group Members | Membership relationships between users and groups |
Directory Roles | Administrative roles (Global Administrator, User Administrator, etc.) |
Role Members | Assignments of directory roles to users |
Entity | Description |
|---|---|
Applications | App registrations in your Azure tenant |
Service Principals | Enterprise applications and managed identities |
App Roles | Custom application roles defined in service principals |
App Role Assignments | Assignments of app roles to users and groups |
Entity | Description |
|---|---|
Devices | Azure AD joined, registered, and hybrid joined devices |
Organizational Contacts | External contacts not part of your directory |
Entity | Description |
|---|---|
Authentication Methods | MFA methods registered by users (phone, authenticator app, etc.) |
Authentication Methods Policy | Tenant-wide MFA policy configuration |
Conditional Access Policies | Policies controlling access based on conditions (location, device, risk, etc.) |
PIM Eligible Roles | Privileged Identity Management role eligibility (requires Azure AD Premium P2) |
Lifecycle Workflows | Automated user lifecycle workflows (requires Entra ID Governance) |
Entity | Description |
|---|---|
License Assignments | Microsoft 365 and Azure licenses assigned to users |
Directory Audit Logs | Audit trail of administrative actions in your tenant |
Sign-In Logs | User authentication events and sign-in activity |
The connector also syncs extension attributes (custom fields) defined on users in your Azure tenant. These custom attributes are automatically mapped to DevRev custom fields.
Before installing the connector, you need:
Azure Entra ID tenant with appropriate licenses
Azure AD Administrator access to create app registrations and grant permissions
DevRev organization with AirSync enabled
Sign in to the Azure Portal
Navigate to Azure Active Directory > App registrations
Click New registration
Enter a name (e.g., "DevRev AirSync Connector")
Select Accounts in this organizational directory only (single tenant)
Leave Redirect URI blank
Click Register
After creating the app registration, note down these values (you'll need them to configure the connector):
Tenant ID: Found under Overview > Directory (tenant) ID
Can also use your Azure domain name (e.g., contoso.onmicrosoft.com)
Client ID: Found under Overview > Application (client) ID
In your app registration, go to Certificates & secrets
Click New client secret
Enter a description (e.g., "DevRev Connector Secret")
Select an expiration period:
Recommended: 24 months (you'll need to rotate before expiry)
Set a calendar reminder to rotate the secret before it expires
Click Add
Important: Copy the secret Value immediately (it won't be shown again)
In your app registration, go to API permissions
Click Add a permission
Select Microsoft Graph > Application permissions
Add the following permissions:
Required Permissions (Core Entities)
User.Read.All - Read all users
Group.Read.All - Read all groups
GroupMember.Read.All - Read group memberships
RoleManagement.Read.Directory - Read directory roles
Directory.Read.All - Read directory data
Optional Permissions (Extended Features)
Add these if you want to sync additional entities:
Application.Read.All - Applications and service principals
Device.Read.All - Device registrations
OrgContact.Read.All - Organizational contacts
UserAuthenticationMethod.Read.All - MFA methods
Policy.Read.All - Conditional Access policies and MFA policy
Organization.Read.All - License information
AuditLog.Read.All - Audit logs and sign-in logs
RoleEligibilitySchedule.Read.Directory - PIM eligible roles (requires Azure AD Premium P2)
LifecycleWorkflows.Read.All - Lifecycle workflows (requires Entra ID Governance)
Grant Admin Consent
After adding all permissions:
Click Grant admin consent for [Your Organization]
Confirm by clicking Yes
Verify all permissions show a green checkmark under Status
Important: Without admin consent, the connector cannot access your Azure data.
Log in to your DevRev organization
Navigate to Settings > Integrations > Marketplace
Search for Azure Entra ID
Click on the Azure Entra ID connector card
Click Install
Review the permissions requested by the connector
Click Confirm to complete installation
After installation, click Create connection or navigate to Settings > Integrations > Connections
Click New connection and select Azure Entra ID
Fill in the connection form with the values from your Azure app registration:
Field | Value | Example |
|---|---|---|
Connection Name | A friendly name for this connection | "Production Azure Tenant" |
Tenant ID / Subdomain | Your Azure tenant ID or domain name |
|
Client ID | Application (Client) ID from Azure |
|
Client Secret | Client secret value from Azure |
|
Click Test Connection to verify credentials
If the test succeeds, click Save
If the test fails, verify:
Credentials are copied correctly (no extra spaces)
Admin consent was granted for all permissions
The client secret hasn't expired
The first sync extracts all entities from your Azure tenant:
Navigate to Settings > Integrations > Connections
Find your Azure Entra ID connection
Click Sync now or Run sync
Select Full sync
Click Start sync
What happens during initial sync:
The connector authenticates to Microsoft Graph API
Extracts all entities based on granted permissions
Processes entities in order (users, groups, roles, etc.)
Stores data in DevRev with proper mappings
Creates sync checkpoint for incremental syncs
Duration: Initial sync time depends on tenant size:
Small tenant (< 1,000 users): 5-15 minutes
Medium tenant (1,000-10,000 users): 15-60 minutes
Large tenant (> 10,000 users): 1-3 hours
After the initial sync, subsequent syncs only fetch changed entities:
Click Sync now again
Select Incremental sync (default)
Click Start sync
What happens during incremental sync:
Uses Microsoft Graph delta queries
Only fetches entities that changed since last sync
Much faster than full sync (typically completes in minutes)
Automatically handles deletions
To keep data up-to-date automatically:
In your connection settings, click Schedule sync
Choose a sync frequency:
Every hour - For real-time identity management
Every 6 hours - Balanced (recommended)
Daily - For less critical integrations
Select sync time if using daily schedule
Click Save schedule
New entities: Added to DevRev
Updated entities: Existing records updated with new data
Custom attributes: Azure extension properties map to DevRev custom fields
The connector uses Microsoft Graph delta queries to efficiently track changes:
Delta tokens are valid for 7 days
If a delta token expires, the connector automatically falls back to full sync
Some entities (like audit logs) use time-windowed queries instead of delta
The connector gracefully handles missing permissions:
If a permission is missing, that entity type is skipped
Other entities continue syncing normally
Warnings are logged for missing permissions
No sync failure occurs
Rotate secrets regularly: Set calendar reminders to rotate client secrets before expiry
Use least privilege: Only grant permissions for entities you need to sync
Monitor access: Review sign-in logs for the service principal regularly
Separate environments: Use different app registrations for dev/staging/production
Schedule syncs during off-peak hours: For large tenants, schedule full syncs during nights or weekends
Use incremental syncs: Only run full syncs when necessary (after configuration changes)
Monitor sync duration: If syncs take too long, contact DevRev support to optimize
Test before production: Verify in a test DevRev org first
Monitor sync status: Check for failed syncs regularly
Keep permissions updated: If you add new entities, update API permissions
Document custom attributes: Maintain a list of Azure extension properties and their DevRev mappings
Enable audit logging: Ensure AuditLog.Read.All permission is granted
Review sync logs: Periodically review what data is being synced
Understand data residency: Data flows from Azure to DevRev (check both systems' data residency)
Set retention policies: Configure how long DevRev retains synced data
Problem: "Authentication failed" or "Invalid credentials"
Solutions:
Verify Tenant ID, Client ID, and Client Secret are correct
Ensure no extra spaces when copying credentials
Check if client secret has expired (create a new one if needed)
Confirm admin consent was granted
Problem: "Permission denied" or "Insufficient privileges"
Solutions:
Verify all required permissions are granted
Ensure admin consent was clicked (green checkmarks in Azure Portal)
Wait 5-10 minutes after granting consent (propagation delay)
Try revoking and re-granting admin consent
Problem: Sync shows "In Progress" for hours
Solutions:
Large tenants may take several hours for initial sync (this is normal)
Check DevRev status page for any platform issues
If stuck for more than 6 hours, cancel and retry sync
Contact DevRev support if issue persists
Problem: "Rate limit exceeded" error
Solutions:
Microsoft Graph API has throttling limits
Wait 15-30 minutes before retrying
Reduce sync frequency for very large tenants
Connector automatically retries with exponential backoff
Problem: Some entities not syncing
Solutions:
Check if required permissions are granted for those entities
PIM roles require Azure AD Premium P2 license
Lifecycle workflows require Entra ID Governance license
Review sync logs for permission warnings
Problem: User count in DevRev doesn't match Azure
Solutions:
Guest users are included in sync (may not be visible in Azure portal count)
Deleted users are soft-deleted in DevRev (may still appear in count)
Run a fresh full sync to ensure data consistency
Verify filters or sync rules aren't excluding users
Problem: Custom attributes not appearing
Solutions:
Azure extension properties must be defined in Azure first
Wait for full sync cycle to complete after adding extension properties
Verify extension property naming follows Azure conventions
Check DevRev custom field mappings
Problem: "PIM Eligible Roles" not syncing
Solution: Requires Azure AD Premium P2 license. If you don't have P2, this entity will be skipped (this is expected behavior).
Problem: "Lifecycle Workflows" not syncing
Solution: Requires Entra ID Governance license. Without it, this entity is skipped automatically.
DevRev Support: Contact through your DevRev organization
Documentation: support.devrev.ai
Microsoft Graph API Docs: learn.microsoft.com/graph
Include the following information:
Connection name and Azure tenant ID
Error message or unexpected behavior
Sync type (full or incremental)
Approximate tenant size (number of users)
Permissions granted in Azure app registration
Timestamp of failed sync
No. This connector is read-only. It only extracts data from Azure Entra ID and does not create, update, or delete any entities in Azure.
Recommended: Every 6 hours for most organizations. Use hourly syncs if you need near real-time identity data. Daily syncs are sufficient for less critical use cases.
Yes. Create a separate connection for each Azure tenant. Each tenant requires its own app registration in Azure.
Syncs will fail with authentication errors. Create a new client secret in Azure Portal and update the connection in DevRev with the new secret value.
No. This connector is designed for Azure AD (Entra ID) corporate tenants, not B2C tenants.
Currently, the connector syncs all users. Contact DevRev support if you need filtering capabilities for your use case.
Yes. Both member users and guest users (external accounts invited to your tenant) are synced.
Azure audit log retention depends on your license:
Basic Azure AD: 7 days
Azure AD Premium P1/P2: 30 days
The connector syncs logs within the available retention window.
The connector uses the global Microsoft Graph API (graph.microsoft.com). For Azure Government Cloud support, contact DevRev.
Data in transit: Encrypted using TLS 1.2+
Authentication: OAuth 2.0 with client credentials
API access: Uses Microsoft Graph API with application permissions
Data residency: Check DevRev and Azure data residency policies for your regions
This connector follows:
Microsoft Graph API best practices
DevRev security standards
OWASP security guidelines for API integration
The connector syncs:
User profile information (names, emails, job titles, etc.)
Group memberships and role assignments
Application and device metadata
Authentication events and audit logs
The connector does not sync:
User passwords or credentials
File attachments or documents
Email content or calendar data
Chat or Teams messages