# Azure Integration

The Microsoft Azure integration allows Sprinto to read resources and monitor security configurations across your Azure subscription. Once connected, Sprinto continuously evaluates your Azure environment against applicable compliance requirements and surfaces findings on the platform.

Sprinto requires read-level access to your Azure subscription in order to:

* Monitor cloud resources and configurations
* Evaluate security posture
* Map evidence to relevant controls
* Track compliance status in real time

You can integrate Azure using either:

1. **Azure PowerShell (recommended)** – Automated setup using generated scripts
2. **Manual configuration** – Create and configure the Azure application yourself

***

### Available integration methods

When you click **Connect** next to Azure under **Cloud Providers**, you can choose one of the following:

* **Use Azure PowerShell (Recommended)**
* **Create application manually**

Both methods create a dedicated Azure app (`sprinto-auditor-app`) with the required read permissions.

***

## Method 1: Integrate using Azure PowerShell (Recommended)

This method automatically creates the required Azure application and assigns the necessary permissions.

#### Step 1: Start the integration in Sprinto

1. Log in to the Sprinto dashboard.
2. Navigate to **Settings** → **Integrations**.
3. In the All tab, search for Microsoft Azure.&#x20;
4. Under **Cloud Providers**, click **Connect** next to **Microsoft Azure**.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FH2RHHf9ZQvkTQswWEY1k%2FScreenshot%202026-02-12%20at%2012.18.17.png?alt=media&#x26;token=88328281-3f4f-4f2c-bc6f-8fd2b847fb81" alt="" width="563"><figcaption></figcaption></figure>

5. Review the permissions required and click **Next**.
6. Select **Use Azure PowerShell**.
7. Enter your **Azure Subscription Name**.\
   (You can find it in Azure under **Account → Subscriptions**.)
8. Click **Continue**.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2F8V5JphuFskCDgO9y6Zjt%2FScreenshot%202026-02-12%20at%2012.24.32.png?alt=media&#x26;token=1ca1de5c-8de4-44df-bdb3-177a267f1c99" alt="" width="375"><figcaption></figcaption></figure>

***

#### Step 2: Run the PowerShell script

1. Under **Step A**, click **Copy PowerShell Code**.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FdgFNGAyfB7PUOpU5INZe%2FScreenshot%202026-02-12%20at%2012.31.10.png?alt=media&#x26;token=543a4574-9ff9-4979-b734-a4cd0ea50679" alt="" width="375"><figcaption></figcaption></figure>

2. Open **Azure Cloud Shell** or your local Azure PowerShell terminal.
3. Paste and execute the copied script.

This script:

* Creates an application named `sprinto-auditor-app`
* Assigns the required Microsoft Graph permissions
* Configures the appropriate role access

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2F1zv17399uddCDSCfZaE1%2Fpoweshell.png?alt=media&#x26;token=71c8c31d-dae3-4dc5-bf5a-0b3785774122" alt="" width="563"><figcaption></figcaption></figure>

***

#### Step 3: Grant admin consent

1. In Azure, go to **App Registrations**.
2. Search for and select **sprinto-auditor-app**.
3. Navigate to **API Permissions**.
4. Click **Grant admin consent for Default Directory**.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FXVmyUMhGFOlDM7PASKyc%2Fazure-grant-permission.jpeg?alt=media&#x26;token=5bb1a94e-7a63-4e60-a063-77171dac0981" alt="" width="563"><figcaption></figcaption></figure>

Admin consent is required for Sprinto to read directory data.

***

#### Step 4: Add Role Assignment in Azure Console

1. Go to Subscription in the Azure console.
2. Click on **Access control (IAM)**.
3. Click **Add role assignment**.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2Fi4tBpDYZEEhu1lfqSBvp%2FScreenshot%202026-02-11%20at%204.28.23%E2%80%AFPM.png?alt=media&#x26;token=bbfeb1c1-6879-4f8a-a8e7-905768c72ba8" alt="" width="563"><figcaption></figcaption></figure>

4. Select Reader Role and click **Next**.
5. Click on **Select members**.
6. Search for `sprinto-auditor-app` and select it.
7. Click **Review + Assign**.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2Fjjmc3D6VNKFfkO7JtCxk%2FScreenshot%202026-02-11%20at%204.30.10%E2%80%AFPM.png?alt=media&#x26;token=4b5c2493-d781-4b79-9b9d-c1127523ec5f" alt="" width="563"><figcaption></figcaption></figure>

8. Refresh the role assignment list to see the assignment for `sprinto-auditor-app` .

***

#### Step 5: Generate and copy JSON output

1. In Sprinto, move to **Step C**.
2. Copy the provided PowerShell code.
3. Run it in PowerShell to generate a JSON output.
4. Copy the JSON result.
5. Paste the JSON into the **Step 2** box in Sprinto.
6. Click **Connect**.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2Fqmz4XvA3j9p3nC4xGeAp%2Fazure-complete-integration.jpeg?alt=media&#x26;token=60de0bac-0ec2-46fa-8a91-46927ebf0ba2" alt="" width="563"><figcaption></figcaption></figure>

The Azure integration will now be configured.

***

## Method 2: Integrate Azure manually

Use this method if you prefer to configure Azure access manually.

### Step 1: Create a new App Registration

1. Log in to the Azure Portal.
2. Go to **App registrations**.
3. Click **New registration**.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2Ffxkut3OBTCdfcjIKQnl8%2FScreenshot%202026-02-11%20at%204.17.10%E2%80%AFPM.png?alt=media&#x26;token=b04477d4-ff6f-47b6-97e2-0ff804567899" alt="" width="563"><figcaption></figcaption></figure>

4. Enter the name: `sprinto-auditor-app`.
5. Leave **Supported account types** as default.
6. Click **Register**.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2Fw2QH1kALoWf0NA85H17M%2FScreenshot%202026-02-11%20at%204.17.50%E2%80%AFPM.png?alt=media&#x26;token=d9526189-1076-4954-8e36-44289732f336" alt="" width="563"><figcaption></figcaption></figure>

Save the following values:

* **Application (Client) ID**
* **Directory (Tenant) ID**

You will need these in Sprinto.

***

### Step 2: Create a Client Secret

1. Open the newly created app.
2. Go to **Certificates & secrets**.
3. Click **New client secret**.
4. Enter a description (for example: Sprinto Secret).
5. Set expiry to **24 months**.
6. Click **Add**.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FEyUFq4Wc6MbUabnLwR4i%2FScreenshot%202026-02-11%20at%204.20.04%E2%80%AFPM.png?alt=media&#x26;token=6bcc670e-0cf9-4121-908f-7ab1b8ee9cd8" alt="" width="563"><figcaption></figcaption></figure>

7. Copy and securely save the **Secret Value**.

{% hint style="info" %}

#### Note

It is recommended by Sprinto to set the expiry to 24 months. This is to avoid updating your client secret often.
{% endhint %}

***

### Step 3: Configure API permissions

1. Go to **API permissions**.
2. Click **Add a permission**.
3. Select **Microsoft Graph**.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FQDbtUebAja13NiPRoTqM%2FScreenshot%202026-02-11%20at%204.21.35%E2%80%AFPM.png?alt=media&#x26;token=5a17fd9e-2fca-46ec-a310-093f88dfc450" alt="" width="563"><figcaption></figcaption></figure>

4. Choose **Application permissions**.
5. Under the Directory section, select:
   * `Directory.Read.All`
6. Click **Add permissions**.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2F54VRDJT6fdhzRuLaUq3W%2FScreenshot%202026-02-11%20at%204.23.26%E2%80%AFPM.png?alt=media&#x26;token=09210fbd-732a-46ed-97b0-537ec6fb0096" alt="" width="563"><figcaption></figcaption></figure>

7. Click **Grant admin consent for Default Directory**.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FRwJY2wF2emQqd9M8RKbq%2FScreenshot%202026-02-11%20at%204.25.48%E2%80%AFPM.png?alt=media&#x26;token=4f76bc01-ae51-429b-8e5c-ae6d64dde9ce" alt="" width="563"><figcaption></figcaption></figure>

***

### Step 4: Assign Reader role to the app

1. Navigate to **Subscriptions**.
2. Select your subscription.
3. Click **Access Control (IAM)**.
4. Click **Add role assignment**.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2F1bUv3oycJjw8UIQEiVc3%2FScreenshot%202026-02-11%20at%204.28.23%E2%80%AFPM.png?alt=media&#x26;token=15e6bba7-4062-4c98-9b95-fece1835f436" alt="" width="563"><figcaption></figcaption></figure>

5. Select **Reader** role.
6. Click **Next**.
7. Click **Select members**.
8. Search for `sprinto-auditor-app`.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FHjwQF35L15qlk94RFtFZ%2FScreenshot%202026-02-11%20at%204.29.40%E2%80%AFPM.png?alt=media&#x26;token=47817a5d-9d13-4981-a4f0-c88912ea11ee" alt="" width="563"><figcaption></figcaption></figure>

5. Click **Select**.
6. Click **Review + assign**.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2Fd89C6uDAr1sHFPZUpaVz%2FScreenshot%202026-02-11%20at%204.30.10%E2%80%AFPM.png?alt=media&#x26;token=a90ec3ed-216e-4856-9676-2bdf1f8476f3" alt="" width="563"><figcaption></figcaption></figure>

***

### Step 5: Complete setup in Sprinto

1. Return to Sprinto.
2. Click **Connect** next to Azure.
3. Select **Create application manually**.
4. Click **Continue**.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FAH1KR4XMqGHpad5gTGDx%2FScreenshot%202026-02-12%20at%2015.52.49.png?alt=media&#x26;token=daf4dc7b-db24-434d-9aac-bc105f24f750" alt="" width="375"><figcaption></figcaption></figure>

5. Enter the following details:
   * **Tenant ID**
   * **Application ID**
   * **Application Client Secret**
   * **Subscription ID**

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FbUIHds3Cs60ltszMci79%2FScreenshot%202026-02-12%20at%2015.54.58.png?alt=media&#x26;token=ab6e3c2d-b616-4c46-8d8e-52bf76cc9d5c" alt="" width="375"><figcaption></figcaption></figure>

6. Click **Connect**.
7. Check the confirmation box:\
   \&#xNAN;*I have registered a new app and gave appropriate permissions.*
8. Click **Connect with Azure**.

***

### Post-integration behaviour

After successful setup:

* Sprinto begins syncing Azure data.
* Initial sync may take up to **24 hours**.
* Compliance findings and resource posture will appear in the dashboard automatically.

***

### Troubleshooting

#### Admin consent button is disabled

Ensure you are logged in as an Azure Global Administrator or Application Administrator.

#### Permission errors during sync

Confirm that:

* `Directory.Read.All` is granted
* Admin consent has been approved
* Reader role is assigned at the subscription level

#### JSON validation fails (PowerShell method)

Re-run the Step C script and ensure:

* The correct subscription is selected
* The full JSON output is copied without modification

#### Sync not reflecting data

Wait up to 24 hours for the first sync cycle. If issues persist, contact Sprinto Support.

***

Once the above steps are completed the integration will be up and running and in the next 24 hours Sprinto will be able to sync data and start reporting the same on the platform, please feel free to reach out to Sprinto Support at <support@sprinto.com> in case you face any challenges.
