What is Microsoft Azure? #
Microsoft Azure is a cloud computing service created by Microsoft for building, testing, deploying, and managing applications and services through a global network of Microsoft-managed data.
Why Should You use the Microsoft Azure Connector? #
Lucidum uses the Microsoft Azure connector to retrieve data from Microsoft Azure virtual machines and Azure services, including Azure Active Directory, Azure Blob Storage, Azure Cosmos DBs, and Azure SQL DBs.
- ensure virtual machines and services are managed per your security policies
- monitor each endpoint and its status
How Does This Connector Work? #
Lucidum executes read-only requests to the REST API for Microsoft Azure and ingests only meta-data about Azure instances and services. Lucidum does not retrieve any data stored on your systems.
Prerequisite: Creating an Azure Application #
Before configuring the Microsoft Azure connector in Lucidum, you must a create a read-only application in Azure Active Directory that allows Lucidum to retrieve information from Azure.
Creating a Client in Microsoft Azure (5 minutes) #
| 1. Log in to the Azure Portal (https://portal.azure.com/ ) with an Azure AD global administrator account. |
|
| 2. Click Home > Microsoft Entra ID. |
|
| 3. In Overview page: |
|
| 4. In the Register an application page: |
|
| 5. In the <app name> page |
|
| 6. In the <app name> | Certificates & secrets page: |
|
| 7. In the <app name> | API permissions page: |
|
| 8. Click Home > Subscriptions. | |
| 9. In the Subscriptions page: |
|
| 10.In the Main pane <azure subscription>: |
|
| 11. In the Add role assignment page: |
|
| 12. In the Add role assignment page: |
|
| 13. In the Add role assignment page: |
|
| 14.In the Main pane <azure subscription>: |
|
| 15. In the Add role assignment page: |
|
| 16. In the Add role assignment page: |
|
| 17. In the Add role assignment page: |
|
Optional Prerequisite: Creating a Role for Azure Blob Storage #
NOTE: If the Azure connector ingests data from Azure Blob storage, ensure that your firewall safe-lists include the IP address of your Lucidum instance.
To access data about Microsoft Azure Blob Storage, you must define an additional role, Storage Blob Data Reader, and add it to the Lucidum read-only application in Azure Active Directory. To do this:
| 1. Log in to the Azure Portal (https://portal.azure.com/ ) with an Azure AD global administrator account. |
|
| 2. Click Home > Subscriptions. |
|
| 3. In the Main pane <azure subscription>: |
|
| 4. In the Add role assignment page: |
|
| 5. In the Add role assignment page: |
|
| 6. In the Add role assignment page: |
|
| 7. In the Main pane <azure subscription>: |
|
Troubleshooting Azure Blob Storage #
NOTE: If the Azure connector ingests data from Azure Blob storage, ensure that your firewall safe-lists include the IP address of your Lucidum instance.
If you see the error:
Exception:Not authorized to perform list blobs for any container!"
you must safe-list the IP address of your Lucidum instance.
Configuring the Microsoft Azure Connector #
To configure Lucidum to retrieve data from Azure:
- Log in to Lucidum.
- In the left pane, select Connector.
- In the Connector page, select Add Connector.
- Scroll until you find the Connector for Microsoft Azure. Click Connect. The Settings page appears.
| Field | Description | Example |
|---|---|---|
| Entra ID API Version | Version of the Entra ID API. | 1.0 |
| Entra ID Password Age Threshold | Specifies the aaximum allowed password age, in days. Users whose password is older than this are flagged as non-compliant for having a stale password. | 365 |
| Entra ID Last Certification Threshold | Specifies the maximum allowed number of days since a user’s access was certified (reviewed). If their last certification is older than this, Meridian flags the account as out of date. | 90 |
| Entra ID Stale Account Threshold | Specifies the maximum number of days without logging in before an account is considered stale. Accounts that have not logged in within that number of day, Meridian flags the account as higher risk. | 90 |
| Entra ID Campaign Overdue Grace Period | Specifies the grace period, in days, after an access review’s due date before Meridian flags it as overdue. The default of 0 means a review is overdue as soon as its due date passes. | 0 |
| Entra ID On-Behalf Request Threshold | Specifies the maximum number of access requests an account can submit on behalf of others before Meridian flags that account for excessive activity. If the access requests were unauthorized, Meridian flags the account as higher risk. | 10 |
| Entra ID Application Inactive Days Threshold | Specifies the number of days since last log in before Meridian flags an application as inactive. | 90 |
| Entra ID Vault Activity Lookback Days | Specifies the number of days of vault activity to include in reports. | 90 |
| Entra ID Nested Groups | Toggle on to resolve nested groups in Entra ID. When enabled, accounts that inherit access indirectly through a group-within-a-group are retrieved. | On/Off |
| Entra ID Maximum Group Members | Maximum number of records to retrieve from each Group in Entra ID. | 1000 |
| Client ID | Enter the Client ID for the Lucidum application in Azure AD. Client ID is the unique identifier for the Lucidum application in Azure Active Directory. Client ID is also called Application ID. You captured this value in step #5 in the section above. | 5dab08ad-3948-4605-aa68-948333ee64819 |
| Client Secret | Enter the Client Secret ID for the Lucidum application in Azure AD. You captured this value in step #6 the section above. | ************ |
| Tenant ID | Enter the tenant ID. Tenant ID is a unique identifier for your instance of Azure AD. Tenant ID is also called Directory ID. You captured this value in step #5 in the section above. | 30930e4c-6cea-4c29-89d8-81e55978da47 |
| Subscription ID | Subscription ID represents your account with Microsoft. You captured this value in step #5 in the section above. Even if you choose not to retrieve data from Azure Blob Storage, you must still provide the Subscription ID to the Lucidum connector. | d25c1387-a93e-4a8e-a45a-8ed1298932c5 |
| Services | Select one or more Azure services from which you want to ingest data. Services include:
|
|
To test the configuration, click Test.
- If the connector is configured correctly, Lucidum displays a list of services that are accessible with the connector.
- If the connector is not configured correctly, Lucidum displays an error message.
Source Documentation #
Creating an Application in Azure #
Required Permissions #
Required Permissions are:
- AuditLogs> AuditLog.Read.All.
- Directory > Directory.Read.All
- User > User.Read.All
- UserAuthenticationMethod > UserAuthenticationMethod.Read.All
Optional Permissions for identity and access data are:
- Groups > Group.Read.All
- Groups > GroupMember.Read.All
- Identity Governance > AccessReview.Read.All
- Identity Governance > EntitlementManagement.Read.All
- Identity Governance > LifecycleWorkflows.Read.All
- Identity Protection > IdentityRiskyUser.Read.All
- Management > Azure RBAC Reader
- Reports > Reports.Read.All
- Reports > AuditLog.Read.All
- Reports > UserAuthenticationMethod.Read.All
- Service Principals > Directory.Read.All
- Service Principals > Application.Read.All
- Service Principals > User.Read.All
- Add permissions
Permissions for Retrieving All Azure Subscriptions #
To set permissions to retrieve all Azure subscriptions:
- Login to the Azure portal as Global Administrator
- Follow these steps to Elevate access: https://learn.microsoft.com/en-us/azure/role-based-access-control/elevate-access-global-admin?tabs=azure-portal%2Centra-audit-logs#step-2-remove-elevated-access
- Set Access management for Azure resources to Yes.
- Sign out of the Azure portal.
- Sign in to the Azure portal.
- Navigate to Microsoft Entra ID > Enterprise Applications.
- Search for the name of the Azure application you created.
- Select the application.
- The Object ID shown here is the service principal’s object ID.
- In the search bar at the top, type Management Groups and select it.
- Find and select the Tenant Root Group from the list of management groups.
- Select Access Control (IAM) in the left-hand menu.
- Click Add > Add role assignment.
- On the Role tab, search for and select Reader.
- Click Next.
- On the Members tab, search for the service principal for the Meridian application in Azure.
- Click Select, then Review + assign.
- Follow these steps to remove elevated access: https://learn.microsoft.com/en-us/azure/role-based-access-control/elevate-access-global-admin?tabs=azure-portal%2Centra-audit-logs#step-2-remove-elevated-access.
Subscription ID #
Microsoft requires the Subscription ID when making API requests, even if you choose not to retrieve data from Azure Blob Storage. Likewise, Lucidum uses the Subscription ID to control scope and security:
- In Microsoft documentation examples, Azure API calls are scoped by subscription ID:
Azure REST API reference documentation. - Azure documentation about scope emphasizes use of subscription as the top-level scope:
Understand scope for Azure RBAC - Azure RBAC emphasizes the role of subscription-level access:
What is Azure role-based access control (Azure RBAC)? - Logging and auditing in Azure is based on subscriptions:
Subscriptions – List – REST API (Azure Resource Management) - For operational consistency, Azure requires subscription ID in the URI for resources:
Subscription – Create Or Update – REST API (Azure API Management) </li
API Documentation #
- https://learn.microsoft.com/en-us/graph/api/resources/users?view=graph-rest-1.0
- https://learn.microsoft.com/en-us/graph/api/resources/user?view=graph-rest-1.0
- https://learn.microsoft.com/en-us/graph/api/resources/directoryobject?view=graph-rest-1.0
- https://learn.microsoft.com/en-us/graph/api/resources/directoryaudit?view=graph-rest-1.0
- https://learn.microsoft.com/en-us/graph/api/resources/authenticationmethods-overview?view=graph-rest-1.0
- https://learn.microsoft.com/en-us/graph/api/resources/authenticationmethod?view=graph-rest-1.0