Graph REST API untuk grafik kustom (pratinjau)

Graph REST API memungkinkan Anda mencantumkan dan mengkueri grafik kustom di data lake Microsoft Azure Sentinel Anda. Gunakan API ini untuk berinteraksi secara terprogram dengan grafik kustom Anda dari klien HTTP, alur otomatisasi, atau aplikasi kustom apa pun.

Untuk informasi selengkapnya tentang membuat grafik kustom, lihat Membuat grafik kustom di data lake keamanan.

Authentication

Graph REST API menggunakan autentikasi token pembawa OAuth 2.0. Untuk memanggil API, dapatkan token akses dari ID Microsoft Entra dan sertakan di Authorization header setiap permintaan.

Mendapatkan token akses

  1. Daftarkan aplikasi di ID Microsoft Entra, atau gunakan pendaftaran aplikasi yang sudah ada. Untuk informasi lebih lanjut, lihat Mendaftarkan aplikasi.
  2. Berikan aplikasi izin yang diperlukan untuk Pertahanan Microsoft XDR.
  3. Minta token akses menggunakan alur kredensial klien OAuth 2.0 atau atas nama pengguna yang masuk.

Sertakan token dalam permintaan

Tambahkan token ke Authorization header setiap permintaan API:

Authorization: Bearer <access_token>

URL Dasar

Semua titik akhir Graph REST API menggunakan URL dasar berikut:

https://api.securityplatform.microsoft.com

Mencantumkan grafik

Cantumkan semua grafik kustom yang tersedia di penyewa Anda.

Permintaan

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

Tidak diperlukan isi permintaan.

Jawaban

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

Properti respons

Property Type Deskripsi
name string Nama instans grafik.
mapFileName string Nama file peta yang terkait dengan grafik.
mapFileVersion string Versi file peta.
graphDefinitionName string Nama definisi grafik yang digunakan untuk membangun instans ini.
graphDefinitionVersion string Versi definisi grafik.
refreshFrequency string Seberapa sering data grafik di-refresh.
createTime string Saat instans grafik dibuat.
lastUpdateTime string Ketika instans grafik terakhir diperbarui.
lastSnapshotTime string Tanda waktu rekam jepret data terbaru.
lastSnapshotRequestTime string Ketika rekam jepret terakhir diminta.
instanceStatus string Status instans grafik saat ini.

Kode status respons

Kode status Deskripsi
200 OK (Permintaan berhasil) Daftar berhasil diambil.

Mengkueri grafik

Mengkueri grafik kustom menggunakan Graph Query Language (GQL). Untuk informasi selengkapnya tentang GQL, lihat Referensi GQL untuk grafik Microsoft Azure Sentinel.

Note

{graphName} name mengacu pada grafik yang dikembalikan dari operasi daftar.

Permintaan

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

Badan permintaan

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

Meminta properti isi

Property Type Wajib Deskripsi
query string Yes Kueri GQL untuk dijalankan.
queryLanguage string Yes Bahasa kueri. Harus berupa GQL .
responseFormats Array string No Mengontrol format respons kueri. Menerima satu atau kedua nilai berikut: Table, Graph. Menggunakan Table jika tidak ditentukan.

Format respons

Properti responseFormats mengontrol struktur respons:

Rancangan Deskripsi
Table Mengembalikan data tabular mentah (default jika tidak ditentukan).
Graph Mengembalikan data terstruktur grafik dengan simpul dan tepi.

Anda dapat meminta satu atau kedua format:

  • ["Table"] - Hanya mengembalikan format tabel.
  • ["Graph"] - Hanya mengembalikan format grafik.
  • ["Table", "Graph"] - Mengembalikan kedua format dalam respons.

Contoh: Kueri dasar

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

Contoh: Kueri dengan kedua format respons

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

Respons sampel (kedua format)

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

Kode status respons

Kode status Deskripsi
200 OK (Permintaan berhasil) Kueri berhasil dijalankan.
404 Tidak ditemukan Instans grafik yang ditentukan tidak ada.

Contoh respons kesalahan

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

Langkah berikutnya