Skip to content

Dashboard-Daten-API

ENTWURF — Nur für interne Entwickler

Diese API-Referenz ist für interne Entwicklungsteams bestimmt.

Übersicht

Was es ist: Die Dashboard-Daten-API liefert voraggregierte Kennzahlen zur Identitätslage in sechs Bereichen: Konten, Identitäten, Gruppen, Bedrohungen, Audit und Plattformstatus. Jeder Bereich bietet einen Endpunkt für den aktuellen Zustand und einen Verlaufsendpunkt mit wöchentlichen Snapshots.

Warum es wichtig ist: Diese Endpunkte sind die primäre Datenquelle sowohl für die integrierten Dashboards von Discovery als auch für die benutzerdefinierten Dashboard-Widgets von Control. Control speichert diese Daten lokal zwischen und führt KPI-Berechnungen darüber aus, um kundenorientierte Identitätsrisiko-Dashboards zu betreiben.

Endpunkte

MethodePfadBeschreibungAuth
GET/api/v1/dashboard/statusAktuelle AnsichtszeitJWT
GET/api/v1/dashboard/accountKontolage-MetrikenJWT
GET/api/v1/dashboard/account/historyKontometriken — 52 WochenJWT
GET/api/v1/dashboard/identityIdentitätsanzahlen nach QuelleJWT
GET/api/v1/dashboard/identity/historyIdentitätsmetriken — 52 WochenJWT
GET/api/v1/dashboard/groupGruppenanzahlen und PrivilegierungsstatusJWT
GET/api/v1/dashboard/group/historyGruppenmetriken — 52 WochenJWT
GET/api/v1/dashboard/threatRisikobewertungen und KompromittierungsmetrikenJWT
GET/api/v1/dashboard/threat/historyBedrohungsmetriken — 52 WochenJWT
GET/api/v1/dashboard/auditFehlgeschlagene AnmeldeversucheJWT
GET/api/v1/dashboard/audit/historyAudit-Metriken — 365 TageJWT
GET/api/v1/dashboard/platformPlattformknoten, Provider, DatenquellenJWT

Gemeinsamer Abfrageparameter: Alle Endpunkte für den aktuellen Zustand akzeptieren einen optionalen ?time=<ms>-Abfrageparameter (Millisekunden seit Epoch), um einen historischen Snapshot abzurufen. Standardmäßig wird die aktuelle Ansichtszeit verwendet.


GET /api/v1/dashboard/status

Die aktuelle Dashboard-Ansichtszeit abrufen. Dieser Zeitstempel repräsentiert den letzten Datenaggregationspunkt.

Anfrage:

http
GET /api/v1/dashboard/status
Authorization: Bearer <token>

Antwort (200):

json
{
  "viewTime": 1707696000000
}
FeldTypBeschreibung
viewTimeint64Millisekunden seit Epoch — Zeitstempel der letzten Datenaggregation

GET /api/v1/dashboard/account

Aktuelle Kontolage-Metriken abrufen, einschließlich Anzahlen, MFA-Status, veralteter Anmeldeinformationen und Aufschlüsselung nach Datenquellen.

Anfrage:

http
GET /api/v1/dashboard/account
Authorization: Bearer <token>

Antwort (200):

json
{
  "viewTime": 1707696000000,
  "count": {
    "total": 15420,
    "mapped": 12890,
    "shared": 342,
    "type": {
      "User Account": 11200,
      "Service Account": 3100,
      "Computer Account": 1120
    },
    "totalChange": 45,
    "mappedChange": 32,
    "sharedChange": -2,
    "orphaned": 1230,
    "compromised": 18
  },
  "multiFactorAuth": {
    "enabled": 9800,
    "disabled": 4620,
    "unknown": 1000,
    "provider": [
      { "name": "Microsoft Authenticator", "count": 5200 },
      { "name": "Okta Verify", "count": 3100 },
      { "name": "Duo Security", "count": 1500 }
    ],
    "providers": 3,
    "pending": 420
  },
  "account": [
    {
      "dataSourceId": "ds-ad-001",
      "dataSourceName": "Corporate AD",
      "platform": "ActiveDirectory",
      "count": 8500,
      "type": { "User Account": 7200, "Service Account": 800, "Computer Account": 500 }
    },
    {
      "dataSourceId": "ds-azure-001",
      "dataSourceName": "Azure AD",
      "platform": "AzureAD",
      "count": 4200,
      "type": { "User Account": 3800, "Service Account": 400 }
    }
  ],
  "stalePassword": [
    { "days": 90, "count": 1240, "change": -15 },
    { "days": 180, "count": 620, "change": -8 },
    { "days": 365, "count": 180, "change": 2 }
  ],
  "staleAccount": [
    { "days": 90, "count": 890, "change": -22 },
    { "days": 180, "count": 450, "change": -10 },
    { "days": 365, "count": 120, "change": 0 }
  ],
  "created": [
    { "days": 1, "count": 12, "change": 3 },
    { "days": 7, "count": 45, "change": -5 },
    { "days": 30, "count": 180, "change": 12 }
  ]
}

AccountDashboard-Felder

FeldTypBeschreibung
viewTimeint64Snapshot-Zeitstempel (ms)
countAccountCountAggregierte Kontostatistiken
multiFactorAuthMultiFactorAuthMFA-Registrierungsstatus
accountAccountInfo[]Aufschlüsselung nach Datenquellen
stalePasswordCount[]Anzahl veralteter Passwörter bei 90/180/365-Tage-Schwellenwerten
staleAccountCount[]Anzahl veralteter Konten bei 90/180/365-Tage-Schwellenwerten
createdCount[]Neu erstellte Konten in 1/7/30-Tage-Fenstern

AccountCount

FeldTypBeschreibung
totaluint64Gesamtzahl erkannter Konten
mappeduint64Einem Identitätsbesitzer zugeordnete Konten
shareduint64Geteilte Konten
typemap<string, uint64>Kontoanzahl nach Typ (User, Service, Computer)
totalChangeint64Differenz zum vorherigen Zeitraum
mappedChangeint64Differenz zum vorherigen Zeitraum
sharedChangeint64Differenz zum vorherigen Zeitraum
orphaneduint64Konten ohne Besitzer
compromiseduint64Als kompromittiert markierte Konten

MultiFactorAuth

FeldTypBeschreibung
enableduint32Konten mit aktivierter MFA
disableduint32Konten mit deaktivierter MFA
unknownuint32Konten mit unbekanntem MFA-Status
providerMfaProvider[]Aufschlüsselung nach MFA-Provider
providersuint32Gesamtzahl unterschiedlicher MFA-Provider
pendinguint32Konten mit ausstehender MFA-Registrierung

AccountInfo

FeldTypBeschreibung
dataSourceIdstringEindeutiger Bezeichner der Datenquelle
dataSourceNamestringAnzeigename
platformstringPlattformtyp (ActiveDirectory, AzureAD, Okta, Linux usw.)
countuint64Gesamtzahl der Konten aus dieser Datenquelle
typemap<string, uint64>Kontoanzahl nach Typ innerhalb dieser Datenquelle

Count (verwendet für stalePassword, staleAccount, created)

FeldTypBeschreibung
daysuint32Schwellenwert in Tagen (z. B. 90, 180, 365)
countuint32Anzahl übereinstimmender Konten
changeint32Differenz zum vorherigen Zeitraum

GET /api/v1/dashboard/account/history

Wöchentliche Kontolage-Snapshots der letzten 52 Wochen abrufen. Jeder Eintrag im history-Array ist ein vollständiges AccountDashboard-Objekt mit einer anderen viewTime.

Anfrage:

http
GET /api/v1/dashboard/account/history
Authorization: Bearer <token>

Antwort (200):

json
{
  "history": [
    {
      "viewTime": 1707696000000,
      "count": { "total": 15420, "mapped": 12890, "..." : "..." },
      "multiFactorAuth": { "enabled": 9800, "..." : "..." },
      "account": [ "..." ],
      "stalePassword": [ "..." ],
      "staleAccount": [ "..." ],
      "created": [ "..." ]
    },
    {
      "viewTime": 1707091200000,
      "count": { "total": 15375, "..." : "..." },
      "...": "..."
    }
  ]
}

Jedes Element folgt der oben definierten AccountDashboard-Struktur.


GET /api/v1/dashboard/identity

Aktuelle Identitätsanzahlen aufgeschlüsselt nach Datenquelle abrufen.

Anfrage:

http
GET /api/v1/dashboard/identity
Authorization: Bearer <token>

Antwort (200):

json
{
  "viewTime": 1707696000000,
  "total": 3200,
  "identity": [
    {
      "dataSourceId": "ds-ad-001",
      "dataSourceName": "Corporate AD",
      "platform": "ActiveDirectory",
      "count": 2100
    },
    {
      "dataSourceId": "ds-azure-001",
      "dataSourceName": "Azure AD",
      "platform": "AzureAD",
      "count": 1100
    }
  ]
}

IdentityDashboard-Felder

FeldTypBeschreibung
viewTimeint64Snapshot-Zeitstempel (ms)
totaluint64Gesamtzahl der Identitätsbesitzer
identityIdentityInfo[]Aufschlüsselung nach Datenquellen

IdentityInfo

FeldTypBeschreibung
dataSourceIdstringEindeutiger Bezeichner der Datenquelle
dataSourceNamestringAnzeigename
platformstringPlattformtyp
countuint64Identitätsanzahl aus dieser Quelle

GET /api/v1/dashboard/identity/history

Wöchentliche Identitäts-Snapshots der letzten 52 Wochen abrufen.

Anfrage:

http
GET /api/v1/dashboard/identity/history
Authorization: Bearer <token>

Antwort (200):

json
{
  "history": [
    {
      "viewTime": 1707696000000,
      "total": 3200,
      "identity": [ "..." ]
    }
  ]
}

GET /api/v1/dashboard/group

Aktuelle Gruppenanzahlen einschließlich Aufschlüsselung privilegierter Gruppen abrufen.

Anfrage:

http
GET /api/v1/dashboard/group
Authorization: Bearer <token>

Antwort (200):

json
{
  "viewTime": 1707696000000,
  "total": 890,
  "privileged": 45,
  "group": [
    {
      "dataSourceId": "ds-ad-001",
      "dataSourceName": "Corporate AD",
      "platform": "ActiveDirectory",
      "count": 620,
      "privileged": 32
    },
    {
      "dataSourceId": "ds-azure-001",
      "dataSourceName": "Azure AD",
      "platform": "AzureAD",
      "count": 270,
      "privileged": 13
    }
  ]
}

GroupDashboard-Felder

FeldTypBeschreibung
viewTimeint64Snapshot-Zeitstempel (ms)
totaluint64Gesamtzahl der Gruppen
privilegeduint64Als hochprivilegiert markierte Gruppen
groupGroupInfo[]Aufschlüsselung nach Datenquellen

GroupInfo

FeldTypBeschreibung
dataSourceIdstringEindeutiger Bezeichner der Datenquelle
dataSourceNamestringAnzeigename
platformstringPlattformtyp
countuint64Gruppenanzahl aus dieser Quelle
privilegeduint64Privilegierte Gruppen aus dieser Quelle

GET /api/v1/dashboard/group/history

Wöchentliche Gruppen-Snapshots der letzten 52 Wochen abrufen.

Anfrage:

http
GET /api/v1/dashboard/group/history
Authorization: Bearer <token>

Antwort (200):

json
{
  "history": [
    {
      "viewTime": 1707696000000,
      "total": 890,
      "privileged": 45,
      "group": [ "..." ]
    }
  ]
}

GET /api/v1/dashboard/threat

Aktuelle Bedrohungs- und Risikometriken abrufen, einschließlich mandantenweiter Risikobewertungen, Kontobedrohungsverteilung, Kompromittierungsindikatoren und Risikoauswirkungskategorien.

Anfrage:

http
GET /api/v1/dashboard/threat
Authorization: Bearer <token>

Antwort (200):

json
{
  "viewTime": 1707696000000,
  "tenantThreat": {
    "overall": 42.5,
    "privileged": 68.3,
    "service_accounts": 31.2
  },
  "account": [
    {
      "name": "Corporate AD",
      "low": 7200,
      "moderate": 1800,
      "critical": 120
    },
    {
      "name": "Azure AD",
      "low": 3500,
      "moderate": 600,
      "critical": 45
    }
  ],
  "compromise": {
    "name": "Compromise Summary",
    "identity": 8,
    "account": 18,
    "highRisk": 12
  },
  "impacts": {
    "stale_credentials": 35.2,
    "orphaned_accounts": 22.8,
    "excessive_privilege": 18.5,
    "mfa_gaps": 15.1,
    "shared_accounts": 8.4
  }
}

ThreatDashboard-Felder

FeldTypBeschreibung
viewTimeint64Snapshot-Zeitstempel (ms)
tenantThreatmap<string, double>Aggregierte Risikobewertungen nach Kategorie
accountAccountThreat[]Bedrohungsverteilung nach Datenquelle
compromiseCompromiseThreatZusammenfassung kompromittierter Entitäten
impactsmap<string, double>Risikoauswirkungsbewertungen nach Kategorie

AccountThreat

FeldTypBeschreibung
namestringName der Datenquelle oder Kategorie
lowuint32Konten mit niedrigem Risiko
moderateuint32Konten mit mittlerem Risiko
criticaluint32Konten mit kritischem Risiko

CompromiseThreat

FeldTypBeschreibung
namestringZusammenfassungsbezeichnung
identityuint32Kompromittierte Identitätsbesitzer
accountuint32Kompromittierte Konten
highRiskuint32Hochrisiko-kompromittierte Entitäten

GET /api/v1/dashboard/threat/history

Wöchentliche Bedrohungs-Snapshots der letzten 52 Wochen abrufen.

Anfrage:

http
GET /api/v1/dashboard/threat/history
Authorization: Bearer <token>

Antwort (200):

json
{
  "history": [
    {
      "viewTime": 1707696000000,
      "tenantThreat": { "overall": 42.5, "..." : "..." },
      "account": [ "..." ],
      "compromise": { "..." : "..." },
      "impacts": { "..." : "..." }
    }
  ]
}

GET /api/v1/dashboard/audit

Aktuelle Audit-Metriken abrufen, hauptsächlich Daten zu fehlgeschlagenen Anmeldungen.

Anfrage:

http
GET /api/v1/dashboard/audit
Authorization: Bearer <token>

Antwort (200):

json
{
  "viewTime": 1707696000000,
  "failedLogon": 3420,
  "failedLogons": {
    "1707609600000": 120,
    "1707613200000": 85,
    "1707616800000": 210,
    "1707620400000": 95
  }
}

AuditDashboard-Felder

FeldTypBeschreibung
viewTimeint64Snapshot-Zeitstempel (ms)
failedLogonuint64Gesamtzahl fehlgeschlagener Anmeldungen im aktuellen Zeitraum
failedLogonsmap<uint64, uint64>Fehlgeschlagene Anmeldungen gruppiert nach Zeitstempel (ms)

GET /api/v1/dashboard/audit/history

Tägliche Audit-Snapshots der letzten 365 Tage abrufen.

Anfrage:

http
GET /api/v1/dashboard/audit/history
Authorization: Bearer <token>

Antwort (200):

json
{
  "history": [
    {
      "viewTime": 1707696000000,
      "failedLogon": 3420,
      "failedLogons": { "..." : "..." }
    }
  ]
}

GET /api/v1/dashboard/platform

Plattform-Infrastrukturstatus abrufen, einschließlich Discovery-Knoten, Authentifizierungs-Providern und Datenquellen-Erfassungsstatus.

Anfrage:

http
GET /api/v1/dashboard/platform
Authorization: Bearer <token>

Antwort (200):

json
{
  "viewTime": 1707696000000,
  "tenant": "acme-corp",
  "version": "2026.2.0",
  "provider": [
    {
      "id": "oidc-azure",
      "name": "Azure AD SSO",
      "registered": 450,
      "pendingSignup": 12,
      "pendingApproval": 3
    }
  ],
  "client": [
    { "id": "node-001", "name": "dc-collector-01", "online": true },
    { "id": "node-002", "name": "cloud-collector-01", "online": true },
    { "id": "node-003", "name": "linux-collector-01", "online": false }
  ],
  "dataSource": [
    {
      "id": "ds-ad-001",
      "name": "Corporate AD",
      "type": "ActiveDirectory",
      "lastCollection": {
        "success": true,
        "status": "completed",
        "entities": 12500,
        "accounts": 8500,
        "groups": 620,
        "roles": 0,
        "running": false,
        "startTime": 1707688800000,
        "finishTime": 1707690600000
      },
      "dailySuccess": 24,
      "dailyFailures": 0
    }
  ]
}

PlatformDashboard-Felder

FeldTypBeschreibung
viewTimeint64Snapshot-Zeitstempel (ms)
tenantstringMandantenbezeichner
versionstringVersion der Discovery-Plattform
providerOpenIdProvider[]Konfigurierte Authentifizierungs-Provider
clientPlatformClient[]Discovery-Collector-/Knotenstatus
dataSourceDataSource[]Datenquellen-Erfassungsstatus

OpenIdProvider

FeldTypBeschreibung
idstringEindeutiger Bezeichner des Providers
namestringAnzeigename
registereduint32Über diesen Provider registrierte Benutzer
pendingSignupuint32Benutzer, die auf den Abschluss der Registrierung warten
pendingApprovaluint32Benutzer, die auf Admin-Genehmigung warten

PlatformClient

FeldTypBeschreibung
idstringEindeutiger Bezeichner des Knotens
namestringAnzeigename des Knotens
onlineboolOb der Knoten aktuell online ist

DataSource

FeldTypBeschreibung
idstringEindeutiger Bezeichner der Datenquelle
namestringAnzeigename
typestringPlattformtyp
lastCollectionLastCollectionLetzter Erfassungslauf
dailySuccessint64Erfolgreiche Erfassungen in den letzten 24 Stunden
dailyFailuresint64Fehlgeschlagene Erfassungen in den letzten 24 Stunden

LastCollection

FeldTypBeschreibung
successboolOb die Erfassung erfolgreich war
statusstringStatustext (completed, failed, partial)
entitiesuint32Gesamtzahl erfasster Entitäten
accountsuint32Erfasste Konten
groupsuint32Erfasste Gruppen
rolesuint32Erfasste Rollen
runningboolOb aktuell eine Erfassung läuft
startTimeint64Erfassungsstart (ms seit Epoch)
finishTimeint64Erfassungsende (ms seit Epoch)

Control-Integration — Benutzerdefinierte Dashboards

Das benutzerdefinierte Dashboard-System von Control konsumiert Discovery-Dashboard-Daten über einen zweischichtigen Ansatz:

Datenfluss

Diagrammbeschreibung: Ein Sequenzdiagramm, das den Datenfluss zwischen Discovery, Control (Cache), KPI Calculator und Dashboard Widget zeigt. Während der periodischen Synchronisierung fordert Control Kontodaten, Kontoverlauf, Bedrohungsdaten und vollständige Entitätsdaten von Discovery an. Beim Dashboard-Rendering liest der KPI Calculator zwischengespeicherte Entitäten, wendet Filter und Aggregation an und sendet KPI-Ergebnisse an das Dashboard Widget zur Visualisierung.

Was Control von diesen Endpunkten zwischenspeichert

Discovery-EndpunktControl-EntitätWidget-Daten, die es speist
/dashboard/accountACCOUNTS-AggregatRisikoverteilung, MFA-Lücken, veraltete Anmeldeinformationen
/dashboard/account/historyACCOUNTS-ZeitreiheRisikotrend-Linien, Trend bei Alter der Anmeldeinformationen
/dashboard/threatBedrohungsbewertungenRisikobewertungs-Widgets, Kompromittierungsindikatoren
/dashboard/threat/historyBedrohungs-ZeitreiheTrend der Risikoreduktion
/dashboard/groupGRUPPEN-AggregatAnzahlen privilegierter Gruppen
/dashboard/identityBESITZER-AggregatVerhältnisse von Identität zu Konto
/dashboard/platformPlattformzustandErfassungsstatus, Knotenverfügbarkeit

Wichtige Felder für KPI-Widget-Filter

Das KPI-System von Control definiert Widgets mithilfe von Filtern über diese von Discovery stammenden Felder:

KPI-FiltermusterDiscovery-QuellfeldWidget-Beispiel
total_threat IN ['HIGH','CRITICAL']AccountThreat.critical + AccountThreat.moderateHochrisiko-Konten im Zeitverlauf
privileged=true AND managed_by_pam IS NULLAccountCount.type Quervergleich TresorstatusNicht tresorgesicherte privilegierte Konten
password_age_90 IS NOT NULLstalePassword[days=90].countVeraltete Anmeldeinformationen (90+ Tage)
status IN ['disabled','inactive']AccountCount gefiltertDeaktivierte privilegierte Konten
account_no_owner IS NOT NULLAccountCount.orphanedVerwaiste privilegierte Konten

Vorgefertigte Dashboard-Vorlagen in Control

Control liefert drei Standard-Dashboards, die auf Discovery-Daten basieren:

  1. Identitätsrisiko-Reduktion — Trend hochriskanter Konten, Risikoverteilungsdiagramm, durchschnittliche Risikobewertung, Anzahl nicht tresorgesicherter privilegierter Konten
  2. PAM-/Tresor-Auswirkung — Tresorgesicherte vs. nicht tresorgesicherte privilegierte Konten, hochriskante nicht tresorgesicherte, verwaiste privilegierte, privilegierte nach Typ
  3. Privilegierte Kontohygiene — Trend veralteter Anmeldeinformationen, Passwortaltersverteilung, deaktivierte privilegierte, inaktive Konten

Hydden Documentation and Training Hub