Skip to main content

Azure Integration Guide

Connect Azure (Microsoft Entra) to perform streamlined access reviews and automate evidence collection for infrastructure security controls.

Updated over a week ago

At-a-Glance

  • What it does: Connects Microsoft Entra (Azure) with Drata to streamline access reviews and automate evidence collection.

  • Who it’s for: Security, compliance, and IT administrators managing user access and infrastructure security.

  • Directionality: Data is read-only and flows from Azure into Drata.

Note: Microsoft Azure Active Directory was renamed to Microsoft Entra. To learn more, go to Microsoft’s documentation, New name for Azure Active Directory.

Prerequisites & Data Access

Account / Role Needed:

    • To register the Drata app, create client secrets, and grant Graph API permissions.

  • Access to Azure subscription(s) to assign the Reader role (and Key Vault Reader role for GCC High).

    • To assign the Reader role (and Key Vault Reader role in GCC High) to the Drata app.

Additional Notes:

  • If you want to connect multiple Microsoft subscriptions, set up an integration for each one.

  • You can limit or customize who is synced into Drata by specifying group object IDs. To learn more, go to Microsoft's Edit group settings.

    • Each member within the top level of a group is synced.

    • Nested groups sync as one individual; members of nested groups are not pulled individually. For complex scenarios, use Microsoft's dynamic group feature.

Permissions & Data Table

Drata requires the following Microsoft Graph API application permissions and Azure RBAC role assignments.

Permission / Scope

Why It’s Needed

Data Accessed (Read Only)

User.Read.All

Used in access reviews to import personnel.

User directory data

Reports.Read.All

Used in evidence collection (e.g., MFA checks).

Audit & usage reports

Directory.Read.All

Used when syncing groups into Drata.

Group memberships, directory info

Policy.Read.All

Used in monitoring to confirm policy configurations.

Policy objects

AuditLog.Read.All

Used in infrastructure monitoring to detect changes (e.g., role or policy updates).

Audit log data

Reader role

Provides subscription-wide read-only visibility.

Infrastructure configuration data

Key Vault Reader role (GCC High)

Required only in Azure GCC High environments. Grants read-only access to Key Vault properties and metadata (not secrets/keys).

Key Vault metadata (properties only)

Step-by-Step Setup

Step 1: Register a new Drata App in Microsoft

  1. Log into the Microsoft Entra portal with Global Administrator role.

    • Application name: Drata Entra App

    • Supported account types: Accounts in this organizational directory only

    • Redirect URL: Leave blank.

  2. Copy the Application (client) ID and Directory (tenant) ID.

  3. Enter these values in Drata:

    • Tenant ID: Entra’s Directory (tenant) ID.

    • Application ID: Entra’s Application (client) ID.


Step 2: Create a Client Secret

  1. Follow Microsoft’s documentation on how to add a client secret.

    • Description: Drata application secret

    • Expiration: 24 months

      • Note: The integration gets disconnected when the secret expires, so we recommend setting a reminder to ensure it stays active.

  2. (❗Important Step) Copy the secret value (not the secret ID).

  3. (❗Important Step) Refresh the Certificates & Secrets page to confirm activation.

    • Note: Microsoft holds the client secret in a pending state until the page is refreshed.

  4. Paste the secret value into Drata’s Application Secret field.


Step 3: Add Permissions

To learn more about Microsoft's read-only permissions, refer to Microsoft’s documentation: Application permission to Microsoft Graph.

  1. On your newly registered app overview page, in the left sidebar, under Manage and select API permissions.

  2. Select + Add a permission.

  3. Select Microsoft Graph API → Application permissions.

  4. Add the following 5 permissions:

    • User.Read.All

    • Reports.Read.All

    • Directory.Read.All

    • Policy.Read.All

    • AuditLog.Read.All

  5. Select Add permissions, then Grant admin consent.

Note about User.Read permission:
When you register a new application in Microsoft Entra, Microsoft automatically assigns the delegated permission User.Read. This only allows a signed-in user to read their own profile. Drata does not use this permission.

Instead, Drata requires the application permission User.Read.All, which provides directory-wide read access needed for access reviews. You do not need to remove User.Read; it can remain in place but is unused by Drata.


Step 4: Assign Azure Roles

Find subscription ID:

  1. In Azure Subscriptions, copy your Subscription ID and enter it into Drata. Refer to Microsoft’s documentation to find your Azure subscription ID.

Assign the Reader role to the Drata App:

  1. In the Azure portal, go to your subscription → Access control (IAM).

  2. Select + Add → Add role assignment. For more information, refer to Step 2: Open the Add role assignment page.

  3. Choose the Reader role (built-in). For more information, refer to Step 3: Select the appropriate role.

    • Important (Azure GCC High only): In addition to the Reader role, you must also assign the Key Vault Reader role to the Drata Entra App in your subscription.

  4. Under Assign access to, select User, group, or service principal.

  5. Select + Select Members and choose your service principal Drata Entra App.

  6. Save the assignment. Refer to Microsoft’s documentation to learn how to select who needs access ( Skip steps 5-9 since Drata does not manage identities). ​


Choose Who to Sync into Drata

In Drata, you can select who you would like to sync from Azure. Choose who you want to bring into Drata from this infrastructure provider

  • Everyone → Sync all members.

  • Specific Groups → Enter group object IDs.

    • To learn more about Microsoft's group settings and group object ID, go to Microsoft's Edit group settings.

    • Nested groups sync as one entity.

    • For complex scenarios, use dynamic groups.

    • Note: Each member within the top level of a group is synced. Nested groups are synced as one individual. Individual members of any nested group are not synced. For more complex group membership, refer to Microsoft's dynamic group feature.

Complete the Connection: Azure

When connecting, enter the following values from Azure:

Drata Field

Azure Value (Where to Find It)

Tenant ID

Directory (tenant) ID from the app’s Overview page in Entra.

Application ID

Application (client) ID from the app’s Overview page in Entra.

Client Secret Value

Secret Value generated in Certificates & Secrets (not Secret ID).

Subscription ID

Subscription ID from the Subscriptions page in the Azure portal.

For steps on accessing and using the Connections page in Drata, refer to The Connections Page in Drata.

Important Notes

  • Expired secrets disconnect the integration — refresh regularly.

  • Integration enforces the principle of least privilege (read-only).

Edge Cases:

  • Nested groups sync as one entity only.

  • Expired/missing secrets cause failures.

  • Duplicates may appear if a user is synced from multiple connections.

Monitoring tests covered

Did this answer your question?