Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Interfejsy API REST programu Graph umożliwiają wyświetlanie list i wykonywanie zapytań dotyczących wykresów niestandardowych w usłudze data lake Microsoft Sentinel. Te interfejsy API umożliwiają programowe interakcje z wykresami niestandardowymi z dowolnego klienta HTTP, potoku automatyzacji lub aplikacji niestandardowej.
Aby uzyskać więcej informacji na temat tworzenia wykresów niestandardowych, zobacz Tworzenie wykresów niestandardowych w usłudze Security Data Lake.
Uwierzytelnianie
Interfejsy API REST programu Graph używają uwierzytelniania tokenu elementu nośnego OAuth 2.0. Aby wywołać interfejsy API, uzyskaj token dostępu z Microsoft Entra ID i dołącz go do Authorization nagłówka każdego żądania.
Uzyskiwanie tokenu dostępu
- Zarejestruj aplikację w Microsoft Entra ID lub użyj istniejącej rejestracji aplikacji. Aby uzyskać więcej informacji, zobacz Rejestrowanie aplikacji.
- Przyznaj aplikacji wymagane uprawnienia do Microsoft Defender XDR.
- Zażądaj tokenu dostępu przy użyciu przepływu poświadczeń klienta OAuth 2.0 lub w imieniu zalogowanego użytkownika.
Dołączanie tokenu do żądań
Dodaj token do nagłówka Authorization każdego żądania interfejsu API:
Authorization: Bearer <access_token>
Podstawowy adres URL
Wszystkie punkty końcowe interfejsu API REST programu Graph używają następującego podstawowego adresu URL:
https://api.securityplatform.microsoft.com
Wykresy listy
Wyświetl listę wszystkich wykresów niestandardowych dostępnych w dzierżawie.
Żądanie
GET https://api.securityplatform.microsoft.com/graphs/graph-instances?graphTypes=Custom
Treść żądania nie jest wymagana.
Odpowiedzi
{
"value": [
{
"name": "custom_graph_10",
"mapFileName": "custom_graph_10",
"mapFileVersion": "1.0.0",
"graphDefinitionName": "custom_graph_10",
"graphDefinitionVersion": "1.0.0",
"refreshFrequency": "00:00:00",
"createTime": "11/04/2025 22:32:43",
"lastUpdateTime": "11/04/2025 22:32:43",
"lastSnapshotTime": "2025-11-04T22:34:04.7105015+00:00",
"lastSnapshotRequestTime": "2025-11-04T22:32:52.0187838+00:00",
"instanceStatus": "Ready"
},
{
"name": "notebook_graph_5",
"mapFileName": null,
"mapFileVersion": null,
"graphDefinitionName": "notebook_graph_5",
"graphDefinitionVersion": "1.0.0",
"refreshFrequency": "00:00:00",
"createTime": "11/04/2025 20:15:22",
"lastUpdateTime": "11/04/2025 20:15:22",
"lastSnapshotTime": null,
"lastSnapshotRequestTime": null,
"instanceStatus": "Creating"
}
]
}
Właściwości odpowiedzi
| Właściwość | Typ | Opis |
|---|---|---|
name |
Ciąg | Nazwa wystąpienia grafu. |
mapFileName |
Ciąg | Nazwa pliku mapy skojarzonego z wykresem. |
mapFileVersion |
Ciąg | Wersja pliku mapy. |
graphDefinitionName |
Ciąg | Nazwa definicji grafu użytej do skompilowania tego wystąpienia. |
graphDefinitionVersion |
Ciąg | Wersja definicji grafu. |
refreshFrequency |
Ciąg | Jak często dane grafu są odświeżane. |
createTime |
Ciąg | Po utworzeniu wystąpienia grafu. |
lastUpdateTime |
Ciąg | Kiedy wystąpienie grafu zostało ostatnio zaktualizowane. |
lastSnapshotTime |
Ciąg | Sygnatura czasowa najnowszej migawki danych. |
lastSnapshotRequestTime |
Ciąg | Kiedy zażądano ostatniej migawki. |
instanceStatus |
Ciąg | Bieżący stan wystąpienia grafu. |
Kody stanu odpowiedzi
| Kod stanu | Opis |
|---|---|
| 200 OK | Lista została pomyślnie pobrana. |
Wykonywanie zapytań dotyczących grafu
Wykonywanie zapytań względem grafu niestandardowego przy użyciu języka zapytań programu Graph (GQL). Aby uzyskać więcej informacji na temat GQL, zobacz GQL reference for Microsoft Sentinel graph (Dokumentacja GQL dla grafu Microsoft Sentinel).
Uwaga
{graphName} odnosi się do name wykresu zwróconego z operacji listy.
Żądanie
POST https://api.securityplatform.microsoft.com/graphs/graph-instances/{graphName}/query
Content-Type: application/json
Treść żądania
{
"query": "string",
"queryLanguage": "GQL"
}
Właściwości treści żądania
| Właściwość | Typ | Wymagany | Opis |
|---|---|---|---|
query |
Ciąg | Tak | Zapytanie GQL do wykonania. |
queryLanguage |
Ciąg | Tak | Język zapytań. Musi być GQL. |
responseFormats |
Tablica ciągów | Nie | Steruje formatem odpowiedzi zapytania. Akceptuje jedną lub obie z następujących wartości: Table, Graph. Wartość domyślna to Table , jeśli nie zostanie określona. |
Formaty odpowiedzi
Właściwość responseFormats kontroluje strukturę odpowiedzi:
| Formatowanie | Opis |
|---|---|
Table |
Zwraca nieprzetworzone dane tabelaryczne (domyślne, jeśli nie zostały określone). |
Graph |
Zwraca dane ustrukturyzowane na wykresie z węzłami i krawędziami. |
Możesz zażądać jednego lub obu formatów:
-
["Table"]— Zwraca tylko format tabeli. -
["Graph"]— Zwraca tylko format grafu. -
["Table", "Graph"]— Zwraca oba formaty w odpowiedzi.
Przykład: zapytanie podstawowe
POST https://api.securityplatform.microsoft.com/graphs/graph-instances/{graphName}/query
Content-Type: application/json
{
"query": "MATCH (u)-[v]->(w) RETURN * LIMIT 2",
"queryLanguage": "GQL"
}
Przykład: Zapytanie o oba formaty odpowiedzi
POST https://api.securityplatform.microsoft.com/graphs/graph-instances/{graphName}/query
Content-Type: application/json
{
"query": "MATCH (n:User)-[r:HasAccess]->(m:Resource) RETURN n, r, m LIMIT 100",
"responseFormats": ["Table", "Graph"],
"queryLanguage": "GQL"
}
Przykładowa odpowiedź (oba formaty)
{
"status": 200,
"result": {
"rawData": {
"tables": [
{
"tableName": "PrimaryResult",
"columns": [
{
"columnName": "u",
"dataType": "dynamic"
},
{
"columnName": "r",
"dataType": "dynamic"
},
{
"columnName": "g",
"dataType": "dynamic"
}
],
"rows": [
[
{
"oid": "node-user-001",
"labels": ["User"],
"properties": {
"name": "Aino Rebane",
"email": "aino.rebane@contoso.com",
"department": "Engineering"
}
},
{
"oid": "edge-001",
"labels": ["HasRole"],
"sourceOid": "node-user-001",
"targetOid": "node-group-001",
"properties": {
"assignedDate": "2024-01-15T10:30:00Z",
"assignedBy": "admin@contoso.com"
}
},
{
"oid": "node-group-001",
"labels": ["Group"],
"properties": {
"name": "Administrators",
"description": "System administrators group",
"memberCount": 25
}
}
]
]
}
]
},
"graph": {
"nodes": [
{
"id": "node-user-001",
"labels": ["User"],
"properties": {
"name": "Aino Rebane",
"email": "aino.rebane@contoso.com",
"department": "Engineering"
}
},
{
"id": "node-group-001",
"labels": ["Group"],
"properties": {
"name": "Administrators",
"description": "System administrators group",
"memberCount": 25
}
},
{
"id": "node-group-002",
"labels": ["Group"],
"properties": {
"name": "Engineering Team",
"description": "Software engineering team",
"memberCount": 150
}
}
],
"edges": [
{
"id": "edge-001",
"sourceId": "node-user-001",
"targetId": "node-group-001",
"labels": ["HasRole"],
"properties": {
"assignedDate": "2024-01-15T10:30:00Z",
"assignedBy": "admin@contoso.com"
}
},
{
"id": "edge-002",
"sourceId": "node-user-001",
"targetId": "node-group-002",
"labels": ["HasRole"],
"properties": {
"assignedDate": "2024-02-01T14:20:00Z",
"assignedBy": "hr@contoso.com"
}
}
]
}
},
"correlationId": "aaaa0000-bb11-2222-33cc-444444dddddd"
}
Kody stanu odpowiedzi
| Kod stanu | Opis |
|---|---|
| 200 OK | Zapytanie zostało wykonane pomyślnie. |
| Nie znaleziono 404 | Określone wystąpienie grafu nie istnieje. |
Przykład odpowiedzi na błąd
{
"error": {
"code": "GraphInstanceNotFound",
"message": "Graph Instance CustomGraph1 does not exist.",
"target": null,
"details": []
}
}