Skip to main content

Authentication Model

The Data Collector authenticates to two Microsoft endpoints using a single service principal registered in the client tenant during the OAuth consent flow. Credentials are retrieved from the CYC secrets vault at runtime and are never logged, stored in environment variables on disk, or embedded in source code.

Credential Sets

CredentialOAuth ScopeUsed in PhasesSDK Class
ARM Credentialhttps://management.azure.com/.default1, 2, 3ClientSecretCredential
Graph Credentialhttps://graph.microsoft.com/.default4ClientSecretCredential

Required Role Assignments

The following Azure built-in roles are assigned to the CYC service principal at root management group scope during onboarding OAuth consent. These are the minimum permissions required for complete data collection.

RoleScopeRequired forAccess type
ReaderRoot management groupAll resource queries — Phases 1, 2, 3Read-only
Security ReaderRoot management groupDefender assessments and secure scoresRead-only
Billing ReaderRoot management groupCost management and consumption dataRead-only
Microsoft Sentinel ReaderPer subscription (conditional)Sentinel analytics rules, data connectors, incidents — only requested if client confirms Sentinel is deployed during intakeRead-only
Customer transparency

All permissions are displayed to the client on the Microsoft Entra ID consent screen before they accept. The Sentinel Reader role is only requested if the client indicated Sentinel is deployed in the intake questionnaire (Q4). Clients can review and revoke permissions at any time through their Entra ID portal.

No write permissions

The service principal holds no write, contribute, or owner permissions at any scope. It is architecturally incapable of creating, modifying, or deleting any resource in the client tenant.

Credential Lifecycle