Özel grafikler için Graf REST API'leri (önizleme)

Graph REST API'leri, Microsoft Sentinel veri gölünüzdeki özel grafikleri listelemenize ve sorgulamanıza olanak sağlar. Herhangi bir HTTP istemcisinden, otomasyon işlem hattından veya özel uygulamadan özel grafiklerinizle program aracılığıyla etkileşim kurmak için bu API'leri kullanın.

Özel grafikler oluşturma hakkında daha fazla bilgi için bkz. Güvenlik veri gölünde özel grafikler oluşturma.

Kimlik Doğrulama

Graph REST API'leri OAuth 2.0 taşıyıcı belirteci kimlik doğrulamasını kullanır. API'leri çağırmak için Microsoft Entra ID bir erişim belirteci alın ve her isteğin Authorization üst bilgisine ekleyin.

Erişim belirteci alma

  1. Bir uygulamayı Microsoft Entra ID'a kaydedin veya mevcut bir uygulama kaydını kullanın. Daha fazla bilgi için bkz. Uygulama kaydetme.
  2. Uygulamaya Microsoft Defender XDR için gerekli izinleri verin.
  3. OAuth 2.0 istemci kimlik bilgileri akışını kullanarak veya oturum açmış bir kullanıcı adına erişim belirteci isteyin.

belirteci isteklere ekleme

Belirteci her API isteğinin Authorization üst bilgisine ekleyin:

Authorization: Bearer <access_token>

Temel URL

Tüm Graph REST API uç noktaları aşağıdaki temel URL'yi kullanır:

https://api.securityplatform.microsoft.com

Grafik listeleme

Kiracınızda kullanılabilen tüm özel grafikleri listeleyin.

Istek

GET https://api.securityplatform.microsoft.com/graphs/graph-instances?graphTypes=Custom

İstek gövdesi gerekmez.

Yanıt

{
  "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"
    }
  ]
}

Yanıt özellikleri

Özellik Tür Açıklama
name Dize Graf örneğinin adı.
mapFileName Dize Grafikle ilişkilendirilmiş harita dosyasının adı.
mapFileVersion Dize Harita dosyasının sürümü.
graphDefinitionName Dize Bu örneği derlemek için kullanılan grafik tanımının adı.
graphDefinitionVersion Dize Graf tanımının sürümü.
refreshFrequency Dize Grafik verilerinin ne sıklıkta yenilendiği.
createTime Dize Grafik örneği oluşturulduğunda.
lastUpdateTime Dize Graf örneğinin en son ne zaman güncelleştirildiğini.
lastSnapshotTime Dize En son veri anlık görüntüsünün zaman damgası.
lastSnapshotRequestTime Dize Son anlık görüntü istendiğinde.
instanceStatus Dize Grafik örneğinin geçerli durumu.

Yanıt durum kodları

Durum kodu Açıklama
200 Tamam Liste başarıyla alındı.

Graf sorgulama

Graph Sorgu Dili (GQL) kullanarak özel bir grafı sorgulama. GQL hakkında daha fazla bilgi için bkz. Microsoft Sentinel grafı için GQL başvurusu.

Not

{graphName} name, liste işleminden döndürülen grafı ifade eder.

Istek

POST https://api.securityplatform.microsoft.com/graphs/graph-instances/{graphName}/query
Content-Type: application/json

İstek gövdesi

{
  "query": "string",
  "queryLanguage": "GQL"
}

İstek gövdesi özellikleri

Özellik Tür Gerekli Açıklama
query Dize Evet Yürütülecek GQL sorgusu.
queryLanguage Dize Evet Sorgu dili. olmalıdır GQL.
responseFormats Dize dizisi Hayır Sorgu yanıtının biçimini denetler. Aşağıdaki değerlerden birini veya her ikisini de kabul eder: Table, Graph. Belirtilmezse varsayılan Table olarak ayarlanır.

Yanıt biçimleri

responseFormats özelliği yanıtın yapısını denetler:

Biçim Açıklama
Table Ham tablosal verileri döndürür (belirtilmezse varsayılan).
Graph Düğümler ve kenarlar ile graf yapılandırılmış verileri döndürür.

Bir veya iki biçim isteyebilirsiniz:

  • ["Table"] - Yalnızca tablo biçimini döndürür.
  • ["Graph"] - Yalnızca grafik biçimini döndürür.
  • ["Table", "Graph"] - Yanıttaki her iki biçimi de döndürür.

Örnek: Temel sorgu

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"
}

Örnek: Her iki yanıt biçimiyle de sorgu

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"
}

Örnek yanıt (her iki biçim)

{
  "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"
}

Yanıt durum kodları

Durum kodu Açıklama
200 Tamam Sorgu başarıyla yürütüldü.
404 Bulunamadı Belirtilen grafik örneği yok.

Hata yanıtı örneği

{
    "error": {
        "code": "GraphInstanceNotFound",
        "message": "Graph Instance CustomGraph1 does not exist.",
        "target": null,
        "details": []
    }
}

Sonraki adımlar