> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iru.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft Azure Network

> Connect Azure Network management APIs to Iru Compliance for VNets, NSGs, firewalls, routes, load balancers, and public IPs via OAuth.

### About Microsoft Azure Network

The **Microsoft Azure Network** source reads **virtual network** layout, **network security groups**, **Azure Firewall** policy, **route tables**, **load balancers**, and **public IP** configuration from your subscription through **Azure Resource Manager**. Authentication is **delegated OAuth 2.0** (Microsoft Entra ID) as the user who completes the wizard. Iru does **not** change network resources.

For **subscription-wide** visibility, assign **Reader** at **subscription** scope. Roles granted only on individual resource groups can hide resources outside those groups.

### How It Works

Iru uses Microsoft’s **OAuth 2.0 authorization code flow** against **Azure Resource Manager**. The requested scope is:

`https://management.azure.com/user_impersonation`

| Detail             | Value                                                  |
| ------------------ | ------------------------------------------------------ |
| **Category**       | Developer tools                                        |
| **Authentication** | OAuth 2.0 (Microsoft Entra ID, Azure Resource Manager) |
| **Vendor plan**    | Any Azure subscription with network resources          |

#### What Iru collects

| Data type                      | Notes                                                   |
| ------------------------------ | ------------------------------------------------------- |
| Virtual networks (VNets)       | Address spaces, subnets, DNS settings, peering          |
| Network security groups (NSGs) | Inbound and outbound rules, associated subnets and NICs |
| Azure Firewalls                | Rules, threat intelligence, DNS proxy settings          |
| Route tables                   | User-defined routes and subnet associations             |
| Load balancers                 | Front-end IPs, backend pools, rules, health probes      |
| Public IP addresses            | Allocation method, DNS labels, associations             |

The built-in **Reader** role at subscription scope includes `Microsoft.Network/*/read` for these resource types (no write permissions).

Official references: [Virtual Network documentation](https://learn.microsoft.com/azure/virtual-network/), [Network security groups](https://learn.microsoft.com/azure/virtual-network/network-security-groups-overview), [Networking built-in roles](https://learn.microsoft.com/azure/role-based-access-control/built-in-roles/networking), [Network REST API](https://learn.microsoft.com/rest/api/virtualnetwork/).

### Prerequisites

* **Microsoft Entra ID** sign-in to the [Azure portal](https://portal.azure.com).
* **Reader** (or higher) on the **subscription** you connect. Assign at **subscription** scope for full inventory.
* Browser **pop-ups** allowed so the connector wizard can open when you enable the source.

Confirm access: **Subscriptions** → your subscription → **Access control (IAM)** → **View my access**.

Example role assignment (replace placeholders):

```bash theme={null}
az role assignment create \
  --assignee <your-user-principal-name> \
  --role "Reader" \
  --scope /subscriptions/<subscription-id>
```

### Connect Microsoft Azure Network to Iru

Use **Microsoft Azure** first to confirm portal access and **Reader** coverage on the subscription, then complete OAuth in **Iru Compliance**. The wizard shows **Step 1 of 1: Perform OAuth Authentication**.

<Tabs>
  <Tab title="Microsoft Azure">
    <Note>
      Complete this tab before you start OAuth in **Iru Compliance**.
    </Note>

    <Steps>
      <Step title="Sign in to the Azure portal">
        Open [portal.azure.com](https://portal.azure.com) and sign in with the account you will use in the Iru wizard.
      </Step>

      <Step title="Open your target subscription">
        Search for **Subscriptions**, then open the subscription whose **virtual networks**, **NSGs**, and related networking resources Iru should read.
      </Step>

      <Step title="Verify Reader access">
        Open **Access control (IAM)** → **View my access**. Confirm **Reader** (or equivalent read) at subscription scope, per **Prerequisites**.
      </Step>

      <Step title="Allow pop-ups in your browser">
        Allow **pop-ups** for your **Iru** hostname so the Microsoft consent window can open.
      </Step>

      <Step title="Plan for the right Entra tenant">
        If you use multiple tenants, use a clean browser session so OAuth signs in to the tenant that owns the subscription.
      </Step>
    </Steps>

    <Note>
      Continue on the [**Iru Compliance**](#iru-compliance) tab.
    </Note>
  </Tab>

  <Tab title="Iru Compliance">
    <Note>
      Finish the [**Microsoft Azure**](#microsoft-azure) tab first.
    </Note>

    <Steps>
      <Step title="Open Sources">
        In Iru Compliance, on the left navigation bar, expand **Compliance** and select **Sources**.

        <Frame>
          <img src="https://mintcdn.com/iru/7HsGH7lnQ8GpVmI0/assets/media/images/iru-navigation-compliance-sources.png?fit=max&auto=format&n=7HsGH7lnQ8GpVmI0&q=85&s=595982441fd777b333b3ecfea24adc24" alt="Left navigation: Compliance expanded, Sources selected" width="424" height="1056" data-path="assets/media/images/iru-navigation-compliance-sources.png" />
        </Frame>
      </Step>

      <Step title="Turn on the integration">
        Find **Microsoft Azure Network** (set **Category** to **Developer tools** or use **Search by name or description**). On that card, turn on the **toggle** to start the connector wizard.
      </Step>

      <Step title="Launch OAuth and sign in">
        Select **Launch OAuth Authentication**. When the Microsoft window opens, sign in with the same account you verified in the Azure portal and click **Accept** on the consent screen.
      </Step>

      <Step title="Finish the connection">
        When the OAuth window closes and Iru finishes the exchange, the wizard shows **Connection Configured**.
      </Step>

      <Step title="Confirm the source is Active">
        Close the **Iru is requesting access to external services** browser tab, then return to **Compliance** → **Sources** and confirm the **Microsoft Azure Network** card is **Active**.
      </Step>
    </Steps>
  </Tab>
</Tabs>

### Troubleshooting

<AccordionGroup>
  <Accordion title="Nothing opens when you turn the source on">
    Check **pop-up blocker** settings for the Iru site and try again.
  </Accordion>

  <Accordion title="Empty or partial network inventory">
    Confirm **Reader** is assigned at **subscription** scope if you expect a full subscription view. **Reader** scoped only to a **resource group** may omit resources in other groups.
  </Accordion>

  <Accordion title="Wrong Microsoft Entra tenant">
    Sign **out** of the Microsoft pop-up and sign in with the account for the **correct** tenant.
  </Accordion>

  <Accordion title="Broken status">
    Turn **Microsoft Azure Network** **off** and **on** in **Sources**, then complete OAuth again.
  </Accordion>
</AccordionGroup>

### Related Articles

<CardGroup cols={2}>
  <Card title="Sources Management" icon="plug" href="/en/compliance/sources-management">
    Browse and manage every Compliance source.
  </Card>

  <Card title="Getting Started With Compliance" icon="rocket" href="/en/compliance/getting-started-with-compliance">
    Frameworks, actions, and **Artifacts**.
  </Card>

  <Card title="Iru Overview" icon="layer-group" href="/en/iru/platform-overview/iru-overview">
    How Endpoint, Compliance, and Identity fit together.
  </Card>

  <Card title="Artifacts Management" icon="folder-open" href="/en/compliance/artifacts-management">
    Upload, review, and organize evidence from sources and actions.
  </Card>
</CardGroup>
