Entitätsabfrage-API
ENTWURF — Nur für interne Entwickler
Diese API-Referenz ist für interne Entwicklungsteams bestimmt.
Übersicht
Was es ist: Die Entitätsabfrage-API ermöglicht die programmatische Suche und den Abruf von Identitätsdaten, die von Discovery erfasst wurden. Sie unterstützt Server-Side Row Model (SSRM)-Abfragen mit Filterung, Sortierung, Gruppierung und Paginierung.
Warum es wichtig ist: Produktübergreifende Integrationen stützen sich auf Entitätsabfragen zum Abrufen von Konten, Besitzern, Gruppen und anderen Identitätsobjekten. Hydden Control nutzt diese Endpunkte zur Synchronisierung von Identitätsdaten für Zugriffsüberprüfungen.
Endpunkte
| Methode | Pfad | Beschreibung | Authentifizierung erforderlich |
|---|---|---|---|
POST | /internal/v1/entity/query | Den Entitätsdatenspeicher abfragen | JWT + API-Token |
POST | /internal/v1/entity/query/columns | Spaltendefinitionen für eine Abfrage abrufen | JWT + API-Token |
POST /internal/v1/entity/query
Eine serverseitige Abfrage gegen den Entitätsdatenspeicher ausführen. Unterstützt Paginierung, Filterung, Sortierung und Zeilengruppierung.
Anfrage:
POST /internal/v1/entity/query
Authorization: Bearer <token>
Content-Type: application/json
{
"ViewTime": "2026-02-12T00:00:00Z",
"offset": 0,
"limit": 100,
"filterModel": {
"Status": {
"filterType": "text",
"type": "equals",
"filter": "active"
}
},
"sortModel": [
{
"colId": "Account Name",
"sort": "asc"
}
],
"rowGroupCols": [],
"groupKeys": []
}Anfragefelder:
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
ViewTime | string (ISO 8601) | Nein | Zeitpunkt-Snapshot. Standardmäßig aktuelle Zeit. |
offset | integer | Ja | Anzahl der zu überspringenden Zeilen |
limit | integer | Ja | Maximale Anzahl zurückzugebender Zeilen (max. 10000) |
filterModel | object | Nein | Spaltenfilter-Bedingungen |
sortModel | array | Nein | Sortierreihenfolge-Definitionen |
rowGroupCols | array | Nein | Spalten für die Gruppierung |
groupKeys | array | Nein | Gruppenschlüsselwerte für Drill-Down |
Antwort (200):
{
"columns": [
{ "field": "Id", "headerName": "ID" },
{ "field": "Account Name", "headerName": "Account Name" },
{ "field": "Email", "headerName": "Email" },
{ "field": "Status", "headerName": "Status" },
{ "field": "Data Source Id", "headerName": "Data Source" }
],
"rows": [
{
"Id": "acc-uuid-001",
"Account Name": "jdoe",
"Email": "jdoe@example.com",
"Status": "active",
"Data Source Id": "ds-uuid-001"
}
],
"totalCount": 1542,
"viewTime": "2026-02-12T00:00:00Z"
}Control-Integration
Control ruft Entitätsabfrage-Endpunkte mit vorkonfigurierten Such-IDs auf, um bestimmte Datensätze abzurufen:
| Control-Operation | Discovery-Endpunkt | Such-ID |
|---|---|---|
| Konten auflisten | POST /api/v1/global/ssrmquery/{id} | ASpnJ4bLpFRGBZxEwAEPullOFx5 |
| Kontobesitzer auflisten | POST /api/v1/global/ssrmquery/{id} | UVYaMSAx8evNujhC75QELLRej2T |
| Massenbesitzer-Konten | POST /api/v1/global/ssrmquery/{id} | DUrG0M5i1MYn0H99KwSpezBqLtt |
| Massengruppenmitgliedschaften | POST /api/v1/global/ssrmquery/{id} | W8fSFbTri7TqbXWgdZVpBjLZMNn |
| Gruppen auflisten | POST /api/v1/global/search/{id} | 5giWu96fvwE0N3LVgm60eKfI6X6 |
| Gruppenmitglieder abrufen | GET /api/v1/global/search/{id} | 8XYzi8x3XmVmA47OehS6q1K8Jia |
Control-Feldzuordnung: Control ordnet Discovery-Antwortfelder seinem internen Account-Modell zu:
| Discovery-Feld | Control-Feld | Hinweise |
|---|---|---|
Id | AccountID | Eindeutiger Bezeichner |
Account Name | AccountName | Anzeigename |
Account Type | AccountType | Kontoklassifizierung |
Email | Email | Primäre E-Mail |
UPN | UPN | User Principal Name |
Data Source Id | ApplicationID | Ordnet Konto der Anwendung zu |
Status | Status | Aktiver/inaktiver Zustand |
POST /internal/v1/entity/query/columns
Spaltendefinitionen für einen Abfragetyp abrufen. Verwenden Sie dies, um verfügbare Felder vor dem Erstellen einer Abfrage zu ermitteln.
Anfrage:
POST /internal/v1/entity/query/columns
Authorization: Bearer <token>
Content-Type: application/json
{
"queryType": "accounts"
}Antwort (200):
{
"columns": [
{ "field": "Id", "headerName": "ID", "type": "string" },
{ "field": "Account Name", "headerName": "Account Name", "type": "string" },
{ "field": "Email", "headerName": "Email", "type": "string" },
{ "field": "Status", "headerName": "Status", "type": "string" },
{ "field": "TotalThreat", "headerName": "Total Threat", "type": "number" }
]
}