Browse: 🏠 · Solutions · Connectors · Methods · Tables · Content · Parsers · ASIM Parsers · ASIM Products · Logic Apps · 📊
| Attribute | Value |
|:----------|:------|
| Connector ID | BeyondTrustPMCloud |
| Publisher | BeyondTrust |
| Used in Solutions | BeyondTrustPMCloud |
| Collection Method | Azure Function |
| Connector Definition Files | BeyondTrustPMCloud_API_FunctionApp.json |
| Ingestion API | Log Ingestion API|HTTP Data Collector API — Sibling ARM template declares DCR / Log Ingestion API resources|Connector definition requires workspace key (SharedKey pattern) |
| Microsoft Learn | View on Learn |
The BeyondTrust Privilege Management Cloud data connector provides the capability to ingest activity audit logs and client event logs from BeyondTrust PM Cloud into Microsoft Sentinel.
This connector uses Azure Functions to pull data from the BeyondTrust PM Cloud API and ingest it into custom Log Analytics tables.
This connector ingests data into the following tables:
| Table | Transformations | Ingestion API | Lake-Only |
|---|---|---|---|
BeyondTrustPM_ActivityAudits_CL |
✓ | ✓ | ✓ |
BeyondTrustPM_ClientEvents_CL |
✓ | ✓ | ✓ |
💡 Tip: Tables with Ingestion API support allow data ingestion via the Azure Monitor Data Collector API, which also enables custom transformations during ingestion.
Resource Provider Permissions:
Custom Permissions:
⚠️ Note: These instructions were automatically generated from the connector's user interface definition file using AI and may not be fully accurate. Please verify all configuration steps in the Microsoft Sentinel portal.
NOTE: This connector uses Azure Functions to connect to the BeyondTrust PM Cloud API to pull logs into Microsoft Sentinel. This might result in additional data ingestion costs. Check the Azure Functions pricing page for details.
NOTE: This connector uses the OAuth 2.0 client credentials flow to authenticate with the BeyondTrust PM Cloud API.
1. STEP 1 - Obtain BeyondTrust PM Cloud API credentials
Create an API Account in your BeyondTrust PM Cloud instance with OAuth API credentials (Client ID and Client Secret). The API account requires the following permissions:
2. STEP 2 - Deploy the connector and the associated Azure Function
Use this method for automated deployment of the BeyondTrust PM Cloud data connector using an ARM Template.
Click the Deploy to Azure button below.
Select the preferred Subscription, Resource Group (must contain your Log Analytics workspace), and Location.
Enter the required parameters:
beyondtrust-pmcloud)https://yourcompany.beyondtrustcloud.com)Review advanced settings (Hosting Plan SKU, Storage Account Type) and adjust if needed.
Mark the checkbox labeled I agree to the terms and conditions stated above.
Click Purchase to deploy.
The deployment creates all required resources: Function App, Storage Account, Data Collection Endpoint, Data Collection Rules, and custom Log Analytics tables.
Data should begin flowing within 15-30 minutes of deployment.
📄 Source: [BeyondTrustPMCloud\Data Connectors\README.md](https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/BeyondTrustPMCloud\Data Connectors\README.md)
This data connector ingests security events and administrative activity from BeyondTrust Privilege Management Cloud into Microsoft Sentinel using REST API polling with Azure Functions.
📝 Note About Placeholders: Throughout this documentation, you'll see placeholders that you need to replace with your actual values:
<YOUR-FUNCTION-APP-NAME>- Your deployed function app name (e.g.,beyondtrust-pmcloud-abc123xyz)<YOUR-RESOURCE-GROUP>- Your Azure resource group name (e.g.,rg-sentinel-prod)<YOUR-WORKSPACE-NAME>- Your Log Analytics workspace name
The BeyondTrust PM Cloud Data Connector retrieves data from two primary API endpoints:
/v3/ActivityAudits/Details) - Administrative and configuration activities/v3/Events/FromStartDate) - Endpoint security events in ECS formatThe connector uses OAuth 2.0 client credentials flow for authentication and implements rate limiting to comply with BeyondTrust API limits (1000 requests per 100 seconds).
The connector creates two custom tables in your Log Analytics workspace:
BeyondTrustPM_ActivityAudits_CL - Management activities, policy changes, user managementBeyondTrustPM_ClientEvents_CL - Endpoint security events (process execution, authentication, etc.)Before starting deployment, gather these required values:
beyondtrust-pmcloud)https://yourcompany.beyondtrustcloud.com, use yourcompany)Click the "Deploy to Azure" button below:
Fill in the required parameters:
beyondtrust-pmcloud)yourcompany)Click "Review + create" and then "Create"
Note: The deployment automatically creates the custom tables (
BeyondTrustPM_ActivityAudits_CLandBeyondTrustPM_ClientEvents_CL) and Data Collection Rules (DCRs) for log ingestion. No pre-deployment scripts are required.
# Create resource group
az group create --name "rg-beyondtrust-pmcloud" --location "East US"
# Deploy the template
az deployment group create `
--resource-group "rg-beyondtrust-pmcloud" `
--template-file "azuredeploy_BeyondTrustPMCloud_API_FunctionApp.json" `
--parameters `
WorkspaceName="your-workspace-name" `
BeyondTrustTenantName="yourcompany" `
BeyondTrustClientId="your-client-id" `
BeyondTrustClientSecret="your-client-secret" `
HistoricalDataTimeframe="1d"
Create API Client:
Required API Permissions:
urn:management:api scope/v3/ActivityAudits/Details endpoint/v3/Events/FromStartDate endpointImportant: Consider the API rate limits when setting polling intervals:
You can adjust polling intervals in the Azure Function App settings:
BeyondTrust:ActivityAuditsPollingIntervalMinutesBeyondTrust:ClientEventsPollingIntervalMinutesWhen the connector runs for the first time (or when state is reset), it retrieves historical events based on the HistoricalDataTimeframe parameter:
1d (1 day of historical data)7d - Retrieve last 7 days of events12h - Retrieve last 12 hours of events30m - Retrieve last 30 minutes of events0 - No historical data (start from current time)Note: After the initial run, the connector tracks state and only retrieves new events since the last successful run.
You can adjust this setting in the Azure Function App settings:
BeyondTrust:HistoricalDataTimeframe (Consumption/Premium plans)BeyondTrust__HistoricalDataTimeframe (Flex Consumption plan)The connector requires your specific BeyondTrust PM Cloud base URL. For example:
https://yourcompany.beyondtrustcloud.comhttps://yourcompany.beyondtrustcloud.comThe connector will automatically:
-services to the subdomain (e.g., yourcompany-services.beyondtrustcloud.com)/management-api and /oauth/connect/token)Note: If your URL already contains -services, the connector will not add it again.
The Activity Audits table captures administrative and configuration changes in BeyondTrust PM Cloud with comprehensive audit details.
Core Fields:
| Field | Type | Description |
|---|---|---|
| TimeGenerated | datetime | Log Analytics ingestion timestamp |
| id | int | Unique audit record ID |
| details | string | Description of the activity |
| userId | int | Numeric user ID |
| user | string | User who performed the action |
| entity | string | Type of entity modified |
| entityName | string | Name of the entity |
| auditType | string | Type of audit action |
| created | datetime | When the activity occurred |
| changedBy | string | Source of the change |
| timeTransmitted | datetime | When transmitted to Azure |
Audit Detail Fields (dynamic type for complex nested data):
apiClientDataAuditing, computerDataAuditing, groupDataAuditing, installationKeyDataAuditingpolicyDataAuditing, policyRevisionDataAuditing, settingsDataAuditing, userDataAuditingmapToIdentityProviderGroupAuditing, openIdConfigDataAuditing, mmcRemoteClientDataAuditingcomputerPolicyDataAuditing, azureADIntegrationDataAuditing, authorizationRequestDataAuditingreputationSettingsDataAuditing, securitySettingsDataAuditing, siemIntegration* (multiple)agentDataAuditing, managementRuleDataAuditing, autoUpdate* (multiple)permissionGroupDataAuditing, identityProviderGroupDataAuditingNote: Total ~40 columns. Dynamic fields contain detailed JSON objects with before/after state for configuration changes.
The Client Events table captures endpoint security events in Elastic Common Schema (ECS) format with comprehensive context.
Event Fields:
| Field | Type | Description |
|---|---|---|
| TimeGenerated | datetime | Log Analytics ingestion timestamp |
| eventId | string | Unique event identifier |
| eventCode | string | Event type code |
| eventKind | string | Event kind (event, alert, etc.) |
| eventCategory | string | Event category |
| eventAction | string | Action performed |
| eventOutcome | string | Success/failure outcome |
| eventType | string | Event type classification |
| eventProvider | string | Event source provider |
| eventIngested | datetime | When event was ingested |
| eventReason | string | Reason for the event |
Host Fields:
| Field | Type | Description |
|---|---|---|
| hostHostname | string | Source hostname |
| hostName | string | Host name |
| hostId | string | Unique host identifier |
| hostIp | string | Host IP address |
| hostArchitecture | string | System architecture |
| hostDomain | string | Domain name |
| hostOsType | string | OS type (Windows, Linux, etc.) |
| hostOsPlatform | string | OS platform |
| hostOsName | string | OS name |
| hostOsVersion | string | OS version |
User & Identity Fields:
| Field | Type | Description |
|---|---|---|
| userId | string | User identifier |
| userName | string | Username |
| userDomain | string | User domain |
File Fields:
| Field | Type | Description |
|---|---|---|
| fileName | string | File name |
| filePath | string | Full file path |
| fileHashMd5 | string | MD5 hash |
| fileHashSha1 | string | SHA1 hash |
| fileHashSha256 | string | SHA256 hash |
Process Fields:
| Field | Type | Description |
|---|---|---|
| processPid | int | Process ID |
| processExecutable | string | Process executable path |
| processCommandLine | string | Command line arguments |
EPM-Specific Fields:
| Field | Type | Description |
|---|---|---|
| epmSchemaVersion | string | EPM schema version |
| epmGroupId | int | EPM group ID |
| epmTenantId | int | EPM tenant ID |
| epmEventAction | string | EPM-specific action |
| epmEventType | string | EPM-specific event type |
Additional Fields:
| Field | Type | Description |
|---|---|---|
| ecsVersion | string | ECS version |
| tags | string | Event tags |
| timestamp | datetime | Original event timestamp |
| timeTransmitted | datetime | When transmitted to Azure |
Complex Data Fields (dynamic type for nested JSON):
hostData, userData, fileData, processData, epmConfigurationDatanetworkData, destinationData, sourceData, relatedDataNote: Total ~50+ columns. Dynamic fields contain detailed nested objects with full context for security analysis.
// Recent administrative activities
BeyondTrustPM_ActivityAudits_CL
| where TimeGenerated >= ago(24h)
| project TimeGenerated, User, AuditType, Entity, EntityName, Details
| order by TimeGenerated desc
// Policy changes
BeyondTrustPM_ActivityAudits_CL
| where AuditType contains "Policy"
| project TimeGenerated, User, AuditType, EntityName, Details
| order by TimeGenerated desc
// Blocked process executions
BeyondTrustPM_ClientEvents_CL
| where EventAction == "process-start-blocked"
| project TimeGenerated, HostHostname, UserName, FileName, FilePath, EventReason
| order by TimeGenerated desc
// Authentication events
BeyondTrustPM_ClientEvents_CL
| where EventCategory contains "authentication"
| project TimeGenerated, HostHostname, UserName, EventAction, EventOutcome
| order by TimeGenerated desc
// High-risk file executions
BeyondTrustPM_ClientEvents_CL
| where EventAction contains "process-start" and EventOutcome == "success"
| where FileName has_any ("powershell.exe", "cmd.exe", "wscript.exe", "cscript.exe")
| project TimeGenerated, HostHostname, UserName, FileName, FilePath
| order by TimeGenerated desc
Comprehensive documentation is available in the docs/ folder:
See the Documentation Index for the complete list.
For detailed information on viewing and querying logs, see Where Do Logs Go.
Authentication Failures:
Rate Limiting:
No Data Ingestion:
Set the log level in Function App settings:
Logging:LogLevel:Default = Information (default)For issues related to:
Estimated monthly costs depend on data volume and polling frequency. Monitor usage through Azure Cost Management.
Browse: 🏠 · Solutions · Connectors · Methods · Tables · Content · Parsers · ASIM Parsers · ASIM Products · Logic Apps · 📊