You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Darling: non-interactive Entra auth (Service Principal + Managed Identity) for headless targets #3484
Support non-interactive Microsoft Entra auth — Service Principal (client id + secret) and Managed Identity — for headless Darling target connections, so a 24/7 collector can monitor Azure SQL DB / MI with Entra auth. Requested by a prospect evaluating Darling for enterprise 24/7 monitoring; the auth already works in Lite.
Scope
IN:ServicePrincipal (ActiveDirectoryServicePrincipal) and ManagedIdentity (ActiveDirectoryManagedIdentity) — both non-interactive, the right fit for an unattended service.
OUT (explicitly): the interactive modes — EntraMFA, EntraDeviceCodeAuth, EntraDefaultCredential. Those need a broker/interactive user and stay refused headless, with a clear message pointing to the two supported modes.
Approach — 1:1 from Lite
The auth machinery is already in shared PerformanceMonitor.Common (AuthenticationTypes, the Entra connection-string mapping Lite uses). Reuse it; do not re-author. Work:
Open Darling's auth validation gate (DarlingMcpServerAdminTools "auth must be Windows or SQL") to accept the two non-interactive Entra modes; keep interactive modes refused.
Extend the darling.json server-config shape to carry the auth mode + Service Principal client id and DPAPI-encrypted client secret (reuse DarlingSecrets LocalMachine+entropy, same as SQL passwords); Managed Identity carries an optional user-assigned client id and no secret.
Build the target connection string via the shared Entra path.
Live Entra requires an AAD-authenticated Azure SQL target + an app registration, which is hard in-house — and Lite itself pins this behavior with unit tests (its EntraDefaultCredential is documented "unverified against a live Entra tenant"). Mirror that: unit-pin the connection-string mapping, the validation accept/refuse matrix, and the secret DPAPI round-trip. A live smoke against a real tenant is a follow-up if/when a tenant is available.
Activity
Merge pull request #3486 from erikdarlingdata/feature/3484-darling-en…
Viewer add-server dialogs: Service Principal + Managed Identity (GUI …
Support non-interactive Entra auth (Service Principal + Managed Ident…
MCP write tools report what happened: every server you add lands in a…
The Entra providers left the core SqlClient package in 7.x and Darlin…
The Entra providers left the core SqlClient package in 7.x and Darlin…