Skip to main content
Applies to BloodHound Enterprise only For Certificate, Client Secret, and Username and Password authentication methods, creating a Microsoft Entra ID application registration is a prerequisite for AzureHound Enterprise data collection. If you are using Azure Managed Identity authentication, an app registration is not required — skip directly to Configure authentication. For app registration-based authentication, the setup involves the following steps: For Certificate, Client Secret, and Username and Password authentication, some steps are required before you can complete the AzureHound configuration. At minimum, you must create the application registration because AzureHound requires an Entra ID Directory (tenant) ID and Application (client) ID. For Azure Managed Identity authentication, these steps are not required — see Managed identity instead.

Create a new app registration

This section guides you through the minimum steps to create a new application registration in Microsoft Entra ID for AzureHound Enterprise data collection.
See the Microsoft documentation for more information.
1

Navigate to Entra ID

Log into the Microsoft Entra admin center as a user with the Global Administrator role, or the following less privileged roles:
2

Create a new app registration

  1. In the left menu, click Entra ID > App registrations > New registration.
  2. In the Name field, enter a name for the application to identify it in your organization. Make sure the supported account type is set to the Accounts in this organizational directory only (Single tenant) option. A URI is not required.
    A view of the Azure portal showing the New registration page with fields to enter the application name and supported account types.
  3. Click Register to create the application registration.
3

Retrieve details for AzureHound configuration

In the Overview menu, copy the Application (client) ID and Directory (tenant) ID.
You will need this information later to configure AzureHound Enterprise.
A view of the Azure portal showing the application registration details page with the Application (client) ID and Directory (tenant) ID fields highlighted.

Add required API permissions

This section describes how to configure the required Microsoft Graph API permissions for the AzureHound Enterprise application registration.
See the Microsoft documentation for more information.
This section applies to Certificate, Client Secret, and Username and Password authentication methods. For Azure Managed Identity authentication, Microsoft Graph permissions must be granted directly to the managed identity’s service principal — see Managed identity for details.
1

Navigate to API permissions

On the Overview page of the app registration, click API Permissions.
2

Remove default permission

Remove the default User.Read delegated permission. It is not required for AzureHound Enterprise data collection.
A view of the Azure portal showing the API permissions page with the User.Read permission highlighted for removal.
3

Add Microsoft Graph API permissions

  1. Click Add a permission > Microsoft Graph.
  2. Select Application permissions.
    A view of the Microsoft Graph API permission selection page with the Application permissions option highlighted.
  3. Search for and check the box next to each of the following Microsoft Graph application permissions. See AzureHound Data and Permissions: Entra ID for details on the least-privilege approach:
  4. Click Add permissions.
4

Grant admin consent

After adding the required permissions, you must grant admin consent for the application to use them.
  1. Click Grant admin consent for <your_tenant_name>.
    A view of the Azure portal showing the API permissions page with the Grant admin consent button highlighted.
  2. Click Yes in the confirmation dialog.
  3. After being redirected to API Permissions again, you should see both permissions as Granted.
    A view of the Azure portal showing the API permissions page with the Directory.Read.All and RoleManagement.Read.All permissions marked as Granted.

Configure authentication

This section describes how to configure authentication methods for AzureHound Enterprise. AzureHound Enterprise supports the following authentication methods:
  • Azure Managed Identity (recommended)
  • Certificate
  • Client Secret
  • Username and Password
This section provides instructions for configuring the Azure Managed Identity and Certificate authentication methods. For information on other methods, see the Microsoft documentation.
Managed identities provide the most secure authentication method because they remove the need to manage credentials directly. Microsoft recommends user-assigned managed identities for Microsoft services, so this example uses the user-assigned type. AzureHound Enterprise also supports system-assigned managed identities, but that workflow is not covered in this guide. For this setup, create a user-assigned managed identity in Azure and assign it to the Azure resource where you plan to run AzureHound Enterprise.
To complete AzureHound configuration, you will need the user-assigned managed identity Client ID. AzureHound Enterprise must run on the Azure resource where that identity is assigned.
1

Navigate to Azure Managed Identities

Sign in to the Azure portal and search for Managed Identities in the top search bar.
2

Create a user-assigned managed identity

Click Create and enter the required information to create a new user-assigned managed identity.
See the Microsoft documentation for more information.
3

Assign the managed identity to the AzureHound Enterprise host

Assign the user-assigned managed identity to the Azure resource where you plan to run AzureHound Enterprise, such as a virtual machine or app service.
Azure Managed Identity authentication only works when AzureHound Enterprise runs on an Azure resource that has access to the managed identity. See the Microsoft documentation for more information.
4

Grant required permissions to the managed identity

AzureHound authenticates directly as the managed identity — no app registration is involved. You must grant both types of required permissions directly to the managed identity’s service principal:
  • Microsoft Graph API permissions — The Azure portal provides no user interface for granting Microsoft Graph application permissions to a managed identity’s service principal. You must use PowerShell (or Azure Cloud Shell) to assign these permissions directly. See AzureHound Data and Permissions: Entra ID for details on the least-privilege approach.
  • AzureHound Reader role — Assign the AzureHound Reader custom role to the managed identity’s service principal at the Tenant Root Group scope. See Create and assign required access roles below.
The following PowerShell script (Microsoft Graph SDK) assigns all required Microsoft Graph application permissions to your managed identity’s service principal. Replace the $managedIdentityClientId placeholder with the Client ID found in the Azure portal under Managed Identities > your identity > Overview.

Certificate

Certificates provide stronger authentication than client secrets or username and password combinations, but you must manage and rotate them properly. For this setup, you must also upload the certificate to the app registration if you’re using the AzureHound Enterprise CLI tool to create the certificate.
If you have not already created a certificate, see Create an AzureHound Configuration before proceeding.
1

Navigate to Entra ID Certificates & secrets

  1. On the Overview page of the app registration, click Certificates & secrets.
    The AzureHound app registration Overview page with the Certificates & secrets menu item highlighted.
  2. Click Certificates.
    The Certificates & secrets page with the Certificates tab highlighted.
2

Upload certificate

  1. Click Upload certificate.
    The Certificates page showing the Upload certificate button.
  2. Locate the cert.pem file that you created during AzureHound configuration.
  3. Click the folder icon, select the cert.pem file, and add a description (optional).
    The upload dialog with a selected certificate file and optional description field.
  4. Click Add.

Configure application branding

This section applies only if you created an app registration (Certificate, Client Secret, or Username and Password authentication). It does not apply to Azure Managed Identity authentication, since no app registration exists to brand.
Optionally, add branding to help users identify the AzureHound Enterprise application in the Entra ID admin center. These steps do not affect collector functionality.
1

Download application logo

You can download the AzureHound Enterprise icon from this site to use for the application logo in the Entra ID admin center.
2

Open the Branding & properties section

In the Entra ID admin center, navigate to the AzureHound Enterprise application and open the Branding & properties section.
Screenshot of the Branding & properties section of the AzureHound Enterprise application in the Entra ID admin center.
3

Upload the application logo

Click Select a file and browse to the icon file you downloaded.
Screenshot of the file upload dialog for the application logo in the Branding & properties section.
4

Set the application name and home page URL

  1. In the Name field, enter a human-readable name for the application, for example, BloodHound Enterprise Collector (AzureHound).
  2. In the Home page URL field, enter your BloodHound Enterprise tenant URL. This is for record keeping only.
5

Save the branding settings

Click Save and review the results.
The Branding & properties section showing the saved AzureHound Enterprise application logo and name.

Create and assign required access roles

This section describes how to assign the required access roles for AzureHound Enterprise data collection. For Certificate, Client Secret, and Username and Password authentication methods, assign the role to the app registration’s service principal. For Azure Managed Identity authentication, assign the role to the managed identity’s service principal instead. The AzureHound Reader role is a least-privilege custom role that grants AzureHound the minimum permissions required to collect data from Azure Resource Manager. Assigning this role at the Tenant Root Group scope ensures AzureHound can collect data across all current and future subscriptions in the tenant.
If you don’t have any management groups, you can skip this section. However, AzureHound will log a warning during each collection indicating it cannot collect management group data.Alternatively, you can create your Tenant Root Group by following the prompts in the Azure portal. This ensures visibility if another administrator begins using subscriptions in the future.
1

Navigate to the Tenant Root Group

  1. Log into the Azure portal as a user with the User Access Administrator role.
  2. Search for and select the Management groups item in the top search bar.
    The Azure portal search bar with Management groups selected from results.
  3. Select Tenant Root Group.
    The Management groups page showing Tenant Root Group selected.
2

Create the AzureHound Reader custom role

  1. Select Access control (IAM).
    The Tenant Root Group page with Access control (IAM) selected.
  2. Click Add, then Add custom role.
    The Access control (IAM) page with Add and Add custom role options highlighted.
  3. Download azurehound-reader-role.json, open it in a text editor, and replace <tenantRootGroupId> with your Tenant Root Management Group ID (this is your Entra ID tenant ID).
    The azurehound-reader-role.json file showing where to replace the tenantRootGroupId placeholder.
  4. In Basics > File, upload the edited file and click Review + create.
    The Add custom role Basics page with the edited role file uploaded and ready for review.
    See AzureHound Data Collection and Permissions: Azure Resource Manager for details on each least-privilege permission in the AzureHound Reader role.
  5. Review the role and click Create at the bottom of the page.
    The custom role review page with the Create button available at the bottom.
3

Assign the AzureHound Reader role

  1. Back in Access control (IAM), click Add, then Add role assignment.
    The Access control (IAM) page with Add role assignment selected from the Add menu.
  2. Search for the AzureHound Reader role and select it.
    The role assignment screen with the AzureHound Reader role selected.
  3. Click Members.
    The role assignment workflow showing the Members step.
  4. Click Select members.
    The Members step with the Select members button highlighted.
  5. For Azure Managed Identity authentication, under Assign access to, select Managed identity. For Certificate, Client Secret, and Username and Password authentication, leave the default User, group, or service principal selected.
    Managed identities do not appear in the default member picker. You must switch Assign access to to Managed identity first, or your search in the next step will return no results.
  6. Search for and click on the service principal to assign the role to. For Certificate, Client Secret, and Username/Password authentication, select the AzureHound Enterprise app registration’s service principal. For Azure Managed Identity authentication, select the managed identity’s service principal.
    The member picker dialog with the AzureHound service principal selected.
  7. Validate the principal selected, then click Select.
    The member selection confirmation showing the selected service principal before applying.
4

Review the role assignment

  1. Click the tab Review + Assign.
    The role assignment workflow with the Review + Assign tab selected.
  2. Click Review + Assign at the bottom of the page.
    The Review + Assign page with the final Review + Assign button ready to submit.
  3. Confirm the role is present by refreshing this view. You may need to alter the filter to see this role.

Scripted configuration

As an alternative to the manual steps described in this document, you can use PowerShell to automate the entire configuration process.
This script applies to Certificate, Client Secret, and Username and Password authentication methods only — it is not applicable for Managed Identity authentication.
The script below registers AzureHound in Entra ID, creates the least-privilege Azure Reader role, and assigns it to the service principal. The script is idempotent—it safely handles re-runs by detecting existing resources and updating them as needed, preventing duplicate role definitions or assignments.
After running this script, follow the steps to configure an authentication certificate to complete the setup.