[Tidak digunakan lagi] Membuat konektor tanpa kode warisan untuk Microsoft Azure Sentinel
Penting
Pengumpulan log dari banyak appliance dan perangkat sekarang didukung oleh Common Event Format (CEF) melalui AMA, Syslog melalui AMA, atau Log Kustom melalui konektor data AMA di Microsoft Sentinel. Untuk informasi selengkapnya, lihat Menemukan konektor data Microsoft Azure Sentinel Anda.
Penting
Ada versi Platform Konektor Tanpa Kode (CCP) yang lebih baru. Untuk informasi selengkapnya tentang CCP baru, lihat Membuat konektor tanpa kode (Pratinjau).
Referensikan dokumen ini jika Anda perlu memelihara atau memperbarui konektor data berdasarkan versi lama CCP ini.
CCP menyediakan mitra, pengguna tingkat lanjut, dan pengembang dengan kemampuan untuk membuat konektor kustom, menghubungkannya, dan menyerap data ke Microsoft Azure Sentinel. Konektor yang dibuat melalui CCP dapat disebarkan melalui API, templat ARM, atau sebagai solusi dalam hub konten Microsoft Sentinel.
Konektor yang dibuat menggunakan CCP sepenuhnya SaaS, tanpa persyaratan apa pun untuk penginstalan layanan, dan juga menyertakan pemantauan kesehatan dan dukungan penuh dari Microsoft Sentinel.
Buat konektor data Anda dengan mendefinisikan konfigurasi JSON, dengan pengaturan tentang bagaimana halaman konektor data di Microsoft Azure Sentinel terlihat bersama dengan pengaturan polling yang menentukan bagaimana fungsi koneksi.
Penting
Versi Platform Konektor Tanpa Kode (CCP) ini dalam PRATINJAU, tetapi juga dianggap Warisan. Ketentuan Tambahan Pratinjau Azure mencakup persyaratan hukum tambahan yang berlaku untuk fitur Azure yang masih dalam versi beta, pratinjau, atau belum dirilis ke ketersediaan umum.
Gunakan langkah-langkah berikut ini untuk membuat konektor CCP Anda dan menyambungkan ke sumber data Anda dari Microsoft Sentinel:
- Mengonfigurasi antarmuka pengguna konektor
- Mengonfigurasi pengaturan polling konektor
- Menyebarkan konektor Anda ke ruang kerja Microsoft Sentinel Anda
- Menyambungkan Microsoft Sentinel ke sumber data Anda dan memulai penyerapan data
Artikel ini menguraikan sintaks yang digunakan dalam konfigurasi dan prosedur CCP JSON untuk menyebarkan konektor Anda melalui API, templat ARM, atau solusi Microsoft Sentinel.
Prasyarat
Sebelum membangun konektor, kami sarankan Anda memahami bagaimana sumber data Anda berperilaku dan persis bagaimana Microsoft Sentinel perlu terhubung.
Misalnya, Anda harus mengetahui jenis titik akhir autentikasi, penomoran halaman, dan API yang diperlukan agar koneksi berhasil.
Membuat file konfigurasi JSON konektor
Konektor CCP kustom Anda memiliki dua bagian JSON utama yang diperlukan untuk penyebaran. Isi area ini untuk menentukan bagaimana konektor Anda ditampilkan di portal Azure dan bagaimana konektor menghubungkan Microsoft Azure Sentinel ke sumber data Anda.
connectorUiConfig
. Menentukan elemen visual dan teks yang ditampilkan pada halaman konektor data dalam Microsoft Sentinel. Untuk informasi selengkapnya, lihat Mengonfigurasi antarmuka pengguna konektor Anda.pollingConfig
. Menentukan cara Microsoft Sentinel mengumpulkan data dari sumber data Anda. Untuk informasi selengkapnya, lihat Mengonfigurasi pengaturan polling konektor Anda.
Kemudian, jika Anda menyebarkan konektor tanpa kode melalui ARM, Anda akan membungkus bagian ini di templat ARM untuk konektor data.
Tinjau konektor data CCP lainnya sebagai contoh atau unduh contoh templat, DataConnector_API_CCP_template.json (Pratinjau).
Mengonfigurasi antarmuka pengguna konektor Anda
Bagian ini menjelaskan opsi konfigurasi yang tersedia untuk menyesuaikan antarmuka pengguna halaman konektor data.
Gambar berikut menunjukkan halaman konektor data sampel, disorot dengan angka yang sesuai dengan area penting antarmuka pengguna:
- Judul. Judul yang ditampilkan untuk konektor data Anda.
- Logo. Ikon yang ditampilkan untuk konektor data Anda. Menyesuaikan ini hanya dimungkinkan saat menyebarkan sebagai bagian dari solusi.
- Status. Menunjukkan apakah konektor data Anda tersambung ke Microsoft Azure Sentinel atau tidak.
- Bagan data. Menampilkan kueri yang relevan dan jumlah data yang terserap dalam dua minggu terakhir.
- Tab Instruksi. Menyertakan bagian Prasyarat , dengan daftar validasi minimal sebelum pengguna dapat mengaktifkan konektor, dan Instruksi, untuk memandu pengaktifan pengguna konektor. Bagian ini dapat berisi teks, tombol, formulir, tabel, dan widget umum lainnya untuk menyederhanakan proses.
- Tab langkah selanjutnya. Menyertakan informasi yang berguna dalam memahami cara menemukan data dalam log peristiwa, seperti kueri sampel.
Berikut adalah bagian dan sintaksis yang connectorUiConfig
diperlukan untuk mengonfigurasi antarmuka pengguna:
Nama Properti | Tipe | Deskripsi |
---|---|---|
ketersediaan | { "status": 1, "isPreview": Boolean} |
status: 1 Menunjukkan konektor umumnya tersedia untuk pelanggan. isPreview Menunjukkan apakah akan menyertakan akhiran (Pratinjau) ke nama konektor. |
connectivityCriteria | { "type": SentinelKindsV2, "value": APIPolling } |
Objek yang menentukan cara memverifikasi apabila konektor sudah ditentukan dengan benar. Gunakan nilai yang ditunjukkan di sini. |
dataTypes | dataTypes[] | Daftar dari semua jenis data untuk konektor Anda, dan kueri untuk mengambil waktu dari peristiwa terakhir bagi setiap jenis data. |
descriptionMarkdown | String | Deskripsi untuk konektor dengan kemampuan untuk menambahkan bahasa markdown untuk meningkatkannya. |
graphQueries | graphQueries[] | Kueri yang menyajikan penyerapan data selama dua minggu terakhir di panel Bagan data. Menyediakan salah satu kueri untuk seluruh jenis data milik konektor data, atau kueri yang berbeda untuk setiap jenis data. |
graphQueriesTableName | String | Menentukan nama dari tabel Analitik Log tempat asal penarikan data untuk kueri Anda. Nama tabel bisa berupa string apa pun, tetapi harus berakhir di _CL . Misalnya: TableName_CL |
instructionsSteps | instructionSteps[] | Array dari bagian widget yang menjelaskan cara memasang konektor, yang ditampilkan pada tab Instruksi. |
metadata | metadata | Metadata ditampilkan di bawah deskripsi konektor. |
izin | permissions[] | Informasi yang ditampilkan di bawah bagian Prasyarat UI yang Mencantumkan izin yang diperlukan untuk mengaktifkan atau menonaktifkan konektor. |
penerbit | String | Ini adalah teks yang ditampilkan di bagian Penyedia . |
sampleQueries | sampleQueries[] | Kueri sampel bagi pelanggan untuk memahami cara menemukan data dalam log peristiwa, yang akan ditampilkan pada tab Langkah berikutnya. |
title | String | Judul yang ditampilkan dalam halaman konektor data. |
Menggabungkan semua potongan-potongan ini rumit. Gunakan alat validasi pengalaman pengguna halaman konektor untuk menguji komponen yang Anda satukan.
dataTypes
Nilai Array | Tipe | Deskripsi |
---|---|---|
nama | String | Deskripsi yang bermaknalastDataReceivedQuery untuk, termasuk dukungan untuk variabel. Contoh: {{graphQueriesTableName}} |
lastDataReceivedQuery | String | Kueri KQL yang mengembalikan satu baris, dan menunjukkan terakhir kali data diterima, atau tidak ada data jika tidak ada data yang relevan. Contoh: {{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time) |
graphQueries
Menentukan kueri yang menyajikan penyerapan data selama dua minggu terakhir dalam panel Bagan data.
Menyediakan salah satu kueri untuk seluruh jenis data milik konektor data, atau kueri yang berbeda untuk setiap jenis data.
Nilai Array | Tipe | Deskripsi |
---|---|---|
metricName | String | Nama yang bermakna untuk grafik Anda. Contoh: Total data received |
legenda | String | String yang muncul pada legenda ke sebelah kanan bagan, termasuk referensi variabel. Contoh: {{graphQueriesTableName}} |
baseQuery | String | Kueri yang memfilter peristiwa yang relevan, termasuk referensi variabel. Contoh: TableName_CL | where ProviderName == "myprovider" atau {{graphQueriesTableName}} |
instructionSteps
Bagian ini menyediakan parameter yang menentukan set instruksi yang muncul pada halaman konektor data Anda dalam Microsoft Sentinel.
Properti Array | Tipe | Deskripsi |
---|---|---|
title | String | Opsional. Menentukan judul untuk instruksi. |
description | String | Opsional. Menentukan deskripsi yang bermakna untuk instruksi Anda. |
innerSteps | Array | Opsional. Menentukan array dari langkah instruksi dalam. |
instruksi | Array instruksi | Harus diisi. Menentukan array instruksi dari jenis parameter tertentu. |
bottomBorder | Boolean | Opsional. Ketika true , menambahkan batas bawah ke area instruksi pada halaman konektor dalam Microsoft Sentinel |
isComingSoon | Boolean | Opsional. Ketika true , menambahkan judul Segera hadir pada halaman konektor dalam Microsoft Sentinel |
petunjuk
Menampilkan sekelompok instruksi, dengan berbagai opsi sebagai parameter dan kemampuan untuk menumpuk lebih banyak instruksiSteps dalam grup.
Parameter | Properti array | Deskripsi |
---|---|---|
APIKey | APIKey | Tambahkan tempat penampung ke file konfigurasi JSON konektor Anda. |
CopyableLabel | CopyableLabel | Memperlihatkan bidang teks dengan tombol salin di akhir. Saat tombol dipilih, nilai bidang disalin. |
InfoMessage | InfoMessage | Menentukan pesan informasi sebaris. |
InstructionStepsGroup | InstructionStepsGroup | Menampilkan sekelompok instruksi, secara opsional diperluas atau dapat diciutkan, di bagian instruksi terpisah. |
InstallAgent | InstallAgent | Menampilkan tautan ke bagian lain Azure untuk mencapai berbagai persyaratan penginstalan. |
APIKey
Anda mungkin ingin membuat templat file konfigurasi JSON, dengan parameter tempat penampung, untuk digunakan kembali di beberapa konektor, atau bahkan untuk membuat konektor dengan data yang saat ini tidak Anda miliki.
Untuk membuat parameter tempat penampung, tentukan array tambahan yang dinamai userRequestPlaceHoldersInput
pada bagian Instruksi file konfigurasi JSON CCP Anda, menggunakan sintaks berikut:
"instructions": [
{
"parameters": {
"enable": "true",
"userRequestPlaceHoldersInput": [
{
"displayText": "Organization Name",
"requestObjectKey": "apiEndpoint",
"placeHolderName": "{{placeHolder}}"
}
]
},
"type": "APIKey"
}
]
Parameter userRequestPlaceHoldersInput
mencakup atribut berikut:
Nama | Tipe | Deskripsi |
---|---|---|
Teks Tampilan | String | Menentukan nilai tampilan kotak teks, yang ditampilkan kepada pengguna saat tersambung. |
RequestObjectKey | String | Menentukan ID di bagian permintaan dari pollingConfig untuk mengganti nilai tempat penampung dengan nilai yang disediakan pengguna. Jika Anda tidak menggunakan atribut ini, gunakan atribut PollingKeyPaths sebagai gantinya. |
PollingKeyPaths | String | Menentukan array objek JsonPath yang mengarahkan panggilan API ke mana saja dalam templat, untuk mengganti nilai tempat penampung dengan nilai pengguna. Contoh: "pollingKeyPaths":["$.request.queryParameters.test1"] Jika Anda tidak menggunakan atribut ini, gunakan atribut RequestObjectKey sebagai gantinya. |
PlaceHolderName | String | Menentukan nama parameter tempat penampung dalam file templat JSON. Ini bisa menjadi nilai yang unik, seperti {{placeHolder}} . |
CopyableLabel
Contoh:
Kode sampel:
{
"parameters": {
"fillWith": [
"WorkspaceId",
"PrimaryKey"
],
"label": "Here are some values you'll need to proceed.",
"value": "Workspace is {0} and PrimaryKey is {1}"
},
"type": "CopyableLabel"
}
Nilai Array | Tipe | Deskripsi |
---|---|---|
fillWith | ENUM | Opsional. Array dari variabel lingkungan digunakan untuk mengisi tempat penampung. Pisahkan beberapa tempat penampung dengan koma. Misalnya: {0},{1} Nilai yang didukung: workspaceId , workspaceName , primaryKey , MicrosoftAwsAccount , subscriptionId |
label | String | Tentukan teks untuk label di atas kotak teks. |
value | String | Menentukan nilai yang akan ditampilkan dalam kotak teks, mendukung tempat penampung. |
baris | Baris | Opsional. Menentukan baris dalam area antarmuka pengguna. Secara default, set ke 1. |
wideLabel | Boolean | Opsional. Menentukan label lebar untuk string panjang. Secara default, set ke false . |
InfoMessage
Berikut adalah contoh pesan informasi sebaris:
Sebaliknya, gambar berikut menunjukkan pesan informasi tidak-sebaris:
Nilai Array | Tipe | Deskripsi |
---|---|---|
text | String | Menentukan teks yang akan ditampilkan dalam pesan. |
dapat dilihat | Boolean | Menentukan apakah pesan ditampilkan. |
inline | Boolean | Menentukan cara pesan informasi ditampilkan. - true : (Direkomendasikan) Menampilkan pesan informasi yang disematkan dalam instruksi. - false : Menambahkan latar belakang biru. |
InstructionStepsGroup
Berikut adalah contoh grup instruksi yang dapat diperluas:
Nilai Array | Tipe | Deskripsi |
---|---|---|
title | String | Menentukan judul untuk langkah instruksi. |
canCollapseAllSections | Boolean | Opsional. Menentukan apabila bagian tersebut adalah akordeon yang dapat diciutkan atau tidak. |
noFxPadding | Boolean | Opsional. Jika true , mengurangi lapisan ketinggian untuk menghemat ruang. |
diperluas | Boolean | Opsional. Jika true menampilkan sebagai diperluas secara default. |
Untuk contoh terperinci, lihat konfigurasi JSON untuk konektor DNS Windows.
InstallAgent
Beberapa jenis InstallAgent muncul sebagai tombol, yang lain akan muncul sebagai tautan. Berikut adalah contoh keduanya:
Nilai Array | Tipe | Deskripsi |
---|---|---|
linkType | ENUM | Menentukan jenis tautan, sebagai salah satu nilai berikut: InstallAgentOnWindowsVirtualMachine InstallAgentOnWindowsNonAzure InstallAgentOnLinuxVirtualMachine InstallAgentOnLinuxNonAzure OpenSyslogSettings OpenCustomLogsSettings OpenWaf OpenAzureFirewall OpenMicrosoftAzureMonitoring OpenFrontDoors OpenCdnProfile AutomaticDeploymentCEF OpenAzureInformationProtection OpenAzureActivityLog OpenIotPricingModel OpenPolicyAssignment OpenAllAssignmentsBlade OpenCreateDataCollectionRule |
policyDefinitionGuid | String | Diperlukan saat menggunakan LinkType OpenPolicyAssignment . Untuk konektor berbasis kebijakan, menentukan GUID dari definisi kebijakan bawaan. |
assignMode | ENUM | Opsional. Untuk konektor berbasis kebijakan, mendefinisikan mode penetapan, sebagai salah satu nilai berikut: Initiative , Policy |
dataCollectionRuleType | ENUM | Opsional. Untuk konektor berbasis DCR, menentukan jenis aturan pengumpulan data sebagai salah satu jenis berikut: SecurityEvent , ForwardEvent |
metadata
Bagian ini menyediakan metadata di UI konektor data di bawah area Deskripsi .
Nilai Koleksi | Tipe | Deskripsi |
---|---|---|
jenis | String | Menentukan jenis templat ARM yang Anda buat. Selalu gunakan dataConnector . |
sumber | String | Menjelaskan sumber data Anda, menggunakan sintaks berikut: { "kind": tali"name": tali} |
pembuat | String | Menjelaskan penulis konektor data, menggunakan sintaks berikut: { "name": tali} |
support | String | Jelaskan dukungan yang disediakan untuk konektor data menggunakan sintaks berikut: { "tier": tali"name": tali"email": tali"link": String URL} |
permissions
Nilai array | Tipe | Deskripsi |
---|---|---|
kustom | String | Menjelaskan izin kustom apa pun yang diperlukan untuk koneksi data Anda, dalam sintaks berikut: { "name": tali, "description": tali} Contoh: Nilai kustom ditampilkan di bagian Prasyarat Microsoft Azure Sentinel dengan ikon informasi biru. Dalam contoh GitHub, ini berkorelasi dengan baris Kunci token pribadi GitHub API: Anda memerlukan akses ke token pribadi GitHub... |
lisensi | ENUM | Menentukan lisensi yang diperlukan, sebagai salah satu dari nilai berikut: OfficeIRM , OfficeATP , Office365 , AadP1P2 , Mcas , Aatp , Mdatp , Mtp , IoT Contoh: Nilai lisensi ditampilkan dalam Microsoft Sentinel sebagai: Lisensi: Diperlukan Azure AD Premium P2 |
resourceProvider | resourceProvider | Menjelaskan prasyarat untuk sumber daya Azure Anda. Contoh: Nilai resourceProvider ditampilkan di bagian Prasyarat Microsoft Azure Sentinel sebagai: Ruang kerja: diperlukan izin baca dan tulis. Kunci: izin baca untuk kunci bersama ke ruang kerja yang diperlukan. |
penyewa | array nilai ENUM Contoh: "tenant": [ "GlobalADmin", "SecurityAdmin" ] |
Menentukan izin yang diperlukan, sebagai satu atau lebih dari nilai-nilai berikut: "GlobalAdmin" , "SecurityAdmin" , "SecurityReader" , "InformationProtection" Contoh: menampilkan nilai penyewa di Microsoft Azure Sentinel sebagai: Izin Penyewa: Memerlukan Global Administrator atau Security Administrator pada penyewa ruang kerja |
resourceProvider
nilai sub array | Tipe | Deskripsi |
---|---|---|
penyedia | ENUM | Menjelaskan penyedia sumber daya, dengan salah satu nilai berikut: - Microsoft.OperationalInsights/workspaces - Microsoft.OperationalInsights/solutions - Microsoft.OperationalInsights/workspaces/datasources - microsoft.aadiam/diagnosticSettings - Microsoft.OperationalInsights/workspaces/sharedKeys - Microsoft.Authorization/policyAssignments |
providerDisplayName | String | Item daftar di bawah Prasyarat yang akan menampilkan tanda centang merah "x" atau hijau saat requiredPermissions divalidasi di halaman konektor. Contoh "Workspace" |
permissionsDisplayText | String | Menampilkan teks untuk izin Baca, Tulis, atau Baca dan Tulis yang harus sesuai dengan nilai yang dikonfigurasi dalam requiredPermissions |
requiredPermissions | { "action": Boolean, "delete": Boolean, "read": Boolean, "write": Boolean} |
Menjelaskan izin minimum yang diperlukan untuk konektor. |
cakupan | ENUM | Menjelaskan cakupan konektor data, sebagai salah satu nilai berikut: "Subscription" , "ResourceGroup" , "Workspace" |
sampleQueries
nilai array | Tipe | Deskripsi |
---|---|---|
description | String | Deskripsi yang bermakna untuk kueri sampel. Contoh: Top 10 vulnerabilities detected |
query | String | Kueri sampel digunakan untuk mengambil data tentang jenis data. Contoh: {{graphQueriesTableName}}\n | sort by TimeGenerated\n | take 10 |
Mengonfigurasi opsi tautan lainnya
Untuk menentukan tautan sebaris menggunakan markdown, gunakan contoh berikut. Di sini tautan disediakan dalam deskripsi instruksi:
{
"title": "",
"description": "Make sure to configure the machine's security according to your organization's security policy\n\n\n[Learn more >](https://aka.ms/SecureCEF)"
}
Untuk menentukan link sebagai templat ARM, gunakan contoh berikut sebagai panduan:
{
"title": "Azure Resource Manager (ARM) template",
"description": "1. Click the **Deploy to Azure** button below.\n\n\t[]({URL to custom ARM template})"
}
Memvalidasi pengalaman pengguna halaman konektor data
Ikuti langkah-langkah ini untuk merender dan memvalidasi pengalaman pengguna konektor.
- Utilitas pengujian dapat diakses oleh URL ini - https://aka.ms/sentineldataconnectorvalidateurl
- Buka Microsoft Azure Sentinel -> Konektor Data
- Klik tombol "impor" dan pilih file json yang hanya berisi bagian
connectorUiConfig
konektor data Anda.
Untuk informasi selengkapnya tentang alat validasi ini, lihat panduan Build instruksi konektor di build GitHub kami.
Catatan
Karena parameter instruksi APIKey khusus untuk konektor tanpa kode, hapus sementara bagian ini untuk menggunakan alat validasi, atau akan gagal.
Mengonfigurasi pengaturan polling konektor Anda
Bagian ini menjelaskan konfigurasi untuk cara data dipilih dari sumber data Anda untuk konektor data tanpa kode.
Kode berikut menampilkan sintaks dari bagian pollingConfig
file konfigurasi CCP.
"pollingConfig": {
"auth": {
},
"request": {
},
"response": {
},
"paging": {
}
}
Bagian pollingConfig
ini mencakup properti berikut:
Nama | Tipe | Deskripsi |
---|---|---|
Auth | String | Menjelaskan properti autentikasi untuk polling data. Untuk informasi selengkapnya, lihat konfigurasi autentikasi. |
auth.authType | String | Wajib. Menentukan jenis autentikasi, bertumpuk di dalam objek auth , sebagai salah satu nilai berikut: Basic , APIKey , OAuth2 |
Permintaan | JSON berlapis | Wajib. Menjelaskan payload permintaan untuk polling data, seperti titik akhir API. Untuk informasi selengkapnya, lihat konfigurasi permintaan. |
respons | JSON berlapis | Wajib. Menjelaskan objek respons dan pesan berlapis yang dikembalikan dari API ketika melakukan polling data. Untuk informasi selengkapnya, lihat konfigurasi respons. |
penomoran | JSON berlapis | Opsional. Menjelaskan payload penomoran halaman saat melakukan polling data. Untuk informasi selengkapnya, lihat konfigurasi penomoran halaman. |
Untuk informasi selengkapnya, lihat Sampel kode pollingConfig.
konfigurasi autentikasi
auth
Bagian konfigurasi pollingConfig mencakup parameter berikut, tergantung pada jenis yang ditentukan dalam elemen authType:
Parameter authType dasar
Nama | Tipe | Deskripsi |
---|---|---|
Username | String | Wajib. Menentukan nama pengguna. |
Password | String | Wajib. Menentukan kata sandi pengguna. |
Parameter authType APIKey
Nama | Tipe | Deskripsi |
---|---|---|
APIKeyName | String | Opsional. Menentukan nama kunci API Anda, sebagai salah satu nilai berikut: - XAuthToken - Authorization |
IsAPIKeyInPostPayload | Boolean | Menentukan tempat kunci API Anda didefinisikan. True: Kunci API didefinisikan dalam payload permintaan POST Salah: Kunci API ditentukan di dalam header |
APIKeyIdentifier | String | Opsional. Menentukan nama pengidentifikasi untuk kunci API. Misalnya, tempat otorisasi ditentukan sebagai "Authorization": "token <secret>" , parameter ini ditentukan sebagai: {APIKeyIdentifier: “token”}) |
Parameter authType OAuth2
Platform Konektor Tanpa Kode mendukung pemberian kode otorisasi OAuth 2.0.
Jenis pemberian Kode Otorisasi digunakan oleh klien rahasia serta publik untuk menukar kode otorisasi dengan token akses.
Setelah pengguna kembali ke klien melalui URL pengalihan, aplikasi akan mendapatkan kode otorisasi dari URL dan menggunakannya untuk meminta token akses.
Nama | Tipe | Deskripsi |
---|---|---|
FlowName | String | Wajib. Menentukan alur OAuth2. Nilai yang didukung: AuthCode - memerlukan alur otorisasi |
AccessToken | String | Opsional. Menentukan token akses OAuth2, relevan saat token akses tidak kedaluwarsa. |
AccessTokenPrepend | String | Opsional. Menentukan prepend token akses OAuth2. Defaultnya adalah Bearer . |
RefreshToken | String | Wajib untuk jenis autentikasi OAuth2. Menentukan token refresh OAuth2. |
TokenEndpoint | String | Wajib untuk jenis autentikasi OAuth2. Menentukan titik akhir layanan token OAuth2. |
AuthorizationEndpoint | String | Opsional. Menentukan titik akhir layanan otorisasi OAuth2. Hanya digunakan selama onboarding atau saat memperbarui token refresh. |
RedirectionEndpoint | String | Opsional. Menentukan titik akhir pengalihan selama onboarding. |
AccessTokenExpirationDateTimeInUtc | String | Opsional. Menentukan tanggal waktu kedaluwarsa token akses, dalam format UTC. Relevan ketika token akses tidak kedaluwarsa, dan oleh karena itu memiliki tanggal waktu yang besar dalam UTC, atau ketika token akses memiliki tanggal waktu kedaluwarsa yang besar. |
RefreshTokenExpirationDateTimeInUtc | String | Wajib untuk jenis autentikasi OAuth2. Menentukan tanggal waktu kedaluwarsa token refresh dalam format UTC. |
TokenEndpointHeaders | Dictionary<string, object> | Opsional. Menentukan header saat memanggil titik akhir layanan token OAuth2. Menentukan string dalam format dictionary<string, string> yang diserialisasi: {'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
AuthorizationEndpointHeaders | Dictionary<string, object> | Opsional. Menentukan header saat memanggil titik akhir layanan otorisasi OAuth2. Hanya digunakan selama onboarding atau saat memperbarui token refresh. Menentukan string dalam format dictionary<string, object> yang diserialisasi: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... } |
AuthorizationEndpointQueryParameters | Dictionary<string, object> | Opsional. Menentukan parameter kueri saat memanggil titik akhir layanan otorisasi OAuth2. Hanya digunakan selama onboarding atau saat memperbarui token refresh. Menentukan string dalam format dictionary<string, object> yang diserialisasi: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... } |
TokenEndpointQueryParameters | Dictionary<string, object> | Opsional. Menentukan parameter kueri saat memanggil titik akhir layanan token OAuth2. Menentukan string dalam format dictionary<string, object> yang diserialisasi: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... } |
IsTokenEndpointPostPayloadJson | Boolean | Opsional, default adalah false. Menentukan apakah parameter kueri berada dalam format JSON dan diatur dalam payload POST permintaan. |
IsClientSecretInHeader | Boolean | Opsional, default adalah false. Menentukan apakah nilai client_id dan client_secret didefinisikan dalam header, seperti yang dilakukan dalam skema Autentikasi dasar, alih-alih dalam payload POST. |
RefreshTokenLifetimeinSecAttributeName | String | Opsional. Menentukan nama atribut dari respons titik akhir token, menentukan masa hidup token refresh, dalam hitungan detik. |
IsJwtBearerFlow | Boolean | Opsional, default adalah false. Menentukan apakah Anda menggunakan JWT atau tidak. |
JwtHeaderInJson | Dictionary<string, object> | Opsional. Menentukan header JWT dalam format JSON. Menentukan string dalam format dictionary<string, object> yang diserialisasi: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>...} |
JwtClaimsInJson | Dictionary<string, object> | Opsional. Mendefinisikan klaim JWT dalam format JSON. Menentukan string dalam format dictionary<string, object> yang diserialisasi: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ...} |
JwtPem | String | Opsional. Menentukan kunci rahasia, dalam format PEM Pkcs1: '-----BEGIN RSA PRIVATE KEY-----\r\n{privatekey}\r\n-----END RSA PRIVATE KEY-----\r\n' Pastikan untuk mempertahankan kode '\r\n' . |
RequestTimeoutInSeconds | Bilangan bulat | Opsional. Menentukan batas waktu dalam detik saat memanggil titik akhir layanan token. Default adalah 180 detik |
Berikut contoh bagaimana konfigurasi OAuth 2 mungkin terlihat:
"pollingConfig": {
"auth": {
"authType": "OAuth2",
"authorizationEndpoint": "https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent",
"redirectionEndpoint": "https://portal.azure.com/TokenAuthorize",
"tokenEndpoint": "https://oauth2.googleapis.com/token",
"authorizationEndpointQueryParameters": {},
"tokenEndpointHeaders": {
"Accept": "application/json"
},
"TokenEndpointQueryParameters": {},
"isClientSecretInHeader": false,
"scope": "https://www.googleapis.com/auth/admin.reports.audit.readonly",
"grantType": "authorization_code",
"contentType": "application/x-www-form-urlencoded",
"FlowName": "AuthCode"
},
Parameter authType sesi
Nama | Tipe | Deskripsi |
---|---|---|
QueryParameters | Dictionary<string, object> | Opsional. Daftar parameter kueri, dalam format serial dictionary<string, string> : {'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
IsPostPayloadJson | Boolean | Opsional. Menentukan apakah parameter kueri ada di dalam format JSON. |
Header | Dictionary<string, object> | Opsional. Menentukan header yang digunakan saat memanggil titik akhir untuk mendapatkan ID sesi, dan saat memanggil API titik akhir. Menentukan string dalam dictionary<string, string> format {'<attr_name>': '<val>', '<attr_name>': '<val>'... } serial: |
SessionTimeoutInMinutes | String | Opsional. Menentukan batas waktu sesi, dalam hitungan menit. |
SessionIdName | String | Opsional. Menentukan nama ID untuk sesi. |
SessionLoginRequestUri | String | Opsional. Menentukan URI permintaan login sesi. |
Konfigurasi permintaan
request
Bagian konfigurasi pollingConfig mencakup parameter berikut:
Nama | Tipe | Deskripsi |
---|---|---|
apiTitik akhir | String | Wajib. Menentukan titik akhir asal penarikan data. |
httpMethod | String | Wajib. Menentukan metode API: GET atau POST |
queryTimeFormat | String, atau UnixTimestamp atau UnixTimestampInMills | Wajib. Menentukan format yang digunakan untuk menentukan waktu kueri. Nilai ini bisa berupa string, atau dalam format UnixTimestamp atau UnixTimestampInMills untuk menunjukkan waktu mulai dan akhir kueri dalam UnixTimestamp. |
startTimeAttributeName | String | Opsional. Menentukan nama dari atribut yang menentukan waktu mulai kueri. |
endTimeAttributeName | String | Opsional. Menentukan nama dari atribut yang menentukan waktu akhir kueri. |
queryTimeIntervalAttributeName | String | Opsional. Menentukan nama dari atribut yang menentukan interval waktu kueri. |
queryTimeIntervalDelimiter | String | Opsional. Menentukan pemisah interval waktu kueri. |
queryWindowInMin | Bilangan bulat | Opsional. Menentukan jendela kueri yang tersedia, dalam hitungan menit. Nilai minimum: 5 |
queryParameters | Dictionary<string, object> | Opsional. Menentukan parameter yang dilalui dalam kueri pada jalur eventsJsonPaths . Menentukan string dalam format dictionary<string, string> yang diserialisasi: {'<attr_name>': '<val>', '<attr_name>': '<val>'... } . |
queryParametersTemplate | String | Opsional. Menentukan templat parameter kueri yang akan digunakan saat meneruskan parameter kueri dalam skenario lanjutan. Misalnya: "queryParametersTemplate": "{'cid': 1234567, 'cmd': 'reporting', 'format': 'siem', 'data': { 'from': '{_QueryWindowStartTime}', 'to': '{_QueryWindowEndTime}'}, '{_APIKeyName}': '{_APIKey}'}" {_QueryWindowStartTime} dan {_QueryWindowEndTime} hanya didukung dalam parameter permintaan queryParameters dan queryParametersTemplate . {_APIKeyName} dan {_APIKey} hanya didukung dalam parameter permintaan queryParametersTemplate . |
isPostPayloadJson | Boolean | Opsional. Menentukan apakah payload POST berada dalam format JSON. |
rateLimitQPS | Laju | Opsional. Menentukan jumlah panggilan atau kueri yang diizinkan dalam hitungan detik. |
timeoutInSeconds | Bilangan bulat | Opsional. Menentukan batas waktu permintaan, dalam hitungan detik. |
retryCount | Bilangan bulat | Opsional. Menentukan jumlah permintaan mencoba ulang untuk mencoba jika dibutuhkan. |
header | Dictionary<string, object> | Opsional. Menentukan nilai header permintaan, dalam dictionary<string, object> format serial: {'<attr_name>': '<serialized val>', '<attr_name>': '<serialized val>'... } |
Konfigurasi respons
response
Bagian konfigurasi pollingConfig mencakup parameter berikut:
Kode berikut menunjukkan contoh nilai eventsJsonPaths untuk pesan tingkat atas:
"eventsJsonPaths": [
"$"
]
Konfigurasi penomoran halaman
paging
Bagian konfigurasi pollingConfig mencakup parameter berikut:
Nama | Tipe | Deskripsi |
---|---|---|
pagingType | String | Wajib. Menentukan jenis penomoran untuk digunakan dalam hasil, sebagai salah satu nilai berikut: None , LinkHeader , NextPageToken , NextPageUrl , Offset |
linkHeaderTokenJsonPath | String | Opsional. Menentukan jalur JSON untuk menautkan header di JSON respons, jika LinkHeader tidak ditentukan dalam header respons. |
nextPageTokenJsonPath | String | Opsional. Menentukan jalur ke JSON token halaman berikutnya. |
hasNextFlagJsonPath | String | Opsional. Menentukan jalur ke HasNextPage atribut bendera. |
nextPageTokenResponseHeader | String | Opsional. Menentukan nama header token halaman berikutnya dalam respons. |
nextPageParaName | String | Opsional. Menentukan nama halaman berikutnya dalam permintaan. |
nextPageRequestHeader | String | Opsional. Menentukan nama header halaman berikutnya dalam permintaan. |
nextPageUrl | String | Opsional. Menentukan URL halaman berikutnya, jika berbeda dari URL permintaan awal. |
nextPageUrlQueryParameters | String | Opsional. Menentukan parameter kueri URL halaman berikutnya jika berbeda dari URL permintaan awal. Menentukan string dalam dictionary<string, object> format {'<attr_name>': <val>, '<attr_name>': <val>... } serial: |
offsetParaName | String | Opsional. Menentukan nama dari parameter offset. |
pageSizeParaName | String | Opsional. Menentukan nama parameter ukuran halaman. |
PageSize | Bilangan bulat | Menentukan ukuran penomoran halaman. |
Sampel kode pollingConfig
Kode berikut menunjukkan contoh pollingConfig
bagian dari file Konfigurasi CCP:
"pollingConfig": {
"auth": {
"authType": "APIKey",
"APIKeyIdentifier": "token",
"APIKeyName": "Authorization"
},
"request": {
"apiEndpoint": "https://api.github.com/../{{placeHolder1}}/audit-log",
"rateLimitQPS": 50,
"queryWindowInMin": 15,
"httpMethod": "Get",
"queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
"retryCount": 2,
"timeoutInSeconds": 60,
"headers": {
"Accept": "application/json",
"User-Agent": "Scuba"
},
"queryParameters": {
"phrase": "created:{_QueryWindowStartTime}..{_QueryWindowEndTime}"
}
},
"paging": {
"pagingType": "LinkHeader",
"pageSizeParaName": "per_page"
},
"response": {
"eventsJsonPaths": [
"$"
]
}
}
Menyebarkan konektor Anda dalam Microsoft Sentinel dan mulai menyerap data
Setelah membuat file konfigurasi JSON Anda, termasuk antarmuka pengguna dan konfigurasi polling, maka sebarkan konektor pada ruang kerja Microsoft Sentinel Anda.
Gunakan salah satu dari opsi berikut untuk menyebarkan konektor data Anda.
Tip
Keuntungan menyebarkan melalui templat Azure Resource Manager (ARM) adalah bahwa beberapa nilai sudah terpasang tetap di templat, dan Anda tidak perlu menentukannya secara manual dalam panggilan API.
Bungkus koleksi konfigurasi JSON Anda dalam templat ARM untuk menyebarkan konektor Anda. Untuk memastikan bahwa konektor data Anda disebarkan ke ruang kerja yang benar, pastikan untuk menentukan ruang kerja di templat ARM, atau pilih ruang kerja saat menyebarkan templat ARM.
Siapkan file JSON templat ARM untuk konektor Anda. Misalnya, lihat file JSON templat ARM berikut:
- Konektor data dalam Solusi Slack
- Konektor data dalam solusi GitHub
Pada portal Azure, cari Sebarkan templat kustom.
Pada halaman Penyebaran kustom, pillih Buat templat Anda sendiri di >File muatan editor. Telusuri dan pilih templat ARM lokal Anda, lalu simpan perubahannya.
Pilih grup langganan dan sumber daya Anda, kemudian masukkan ruang kerja Analitik Log tempat Anda ingin menyebarkan konektor kustom.
Pilih Tinjau + buat untuk menyebarkan konektor kustom Anda ke Microsoft Sentinel.
Dalam Microsoft Sentinel, buka halaman Konektor data, cari konektor baru Anda. Konfigurasikan untuk mulai menyerap data.
Untuk informasi selengkapnya, lihat Menyebarkan templat lokal dalam dokumentasi Azure Resource Manager.
Konfigurasikan konektor data Anda untuk menyambungkan sumber data Anda dan mulai menyerap data ke Microsoft Sentinel. Anda dapat tersambung ke sumber data Anda baik melalui portal, seperti dengan konektor data out-of-the-box, atau melalui API.
Saat Anda menggunakan portal Azure untuk tersambung, data pengguna dikirim secara otomatis. Saat Anda tersambung melalui API, Anda harus mengirim parameter autentikasi yang relevan dalam panggilan API.
Pada halaman konektor data Microsoft Sentinel, ikuti petunjuk yang disediakan untuk menyambungkan ke konektor data Anda.
Halaman konektor data di Microsoft Azure Sentinel dikontrol oleh konfigurasi InstructionSteps dalam
connectorUiConfig
elemen file konfigurasi CCP JSON. Jika Anda memiliki masalah dengan koneksi antarmuka pengguna, pastikan Anda memiliki konfigurasi yang benar untuk jenis autentikasi Anda.Dalam Microsoft Sentinel, buka halaman Log dan verifikasi bahwa Anda melihat log dari sumber data yang mengalir masuk ke ruang kerja Anda.
Jika Anda tidak melihat data mengalir masuk ke Microsoft Sentinel, maka periksalah dokumentasi sumber data dan sumber daya pemecahan masalah, periksa detail konfigurasi, dan periksa konektivitas. Untuk info selengkapnya, lihat Memantau kesehatan konektor data Anda.
Memutuskan sambungan konektor Anda
Jika Anda tidak lagi memerlukan data konektor, putuskan sambungan konektor untuk menghentikan aliran data.
Pilih salah satu metode berikut:
Portal Azure: Pada halaman konektor data Microsoft Sentinel Anda, pilih Putuskan Sambungan.
API: Gunakan API PUTUSKAN SAMBUNGAN untuk mengirim panggilan PUT tanpa isi ke URL berikut:
https://management.azure.com /subscriptions/{{SUB}}/resourceGroups/{{RG}}/providers/Microsoft.OperationalInsights/workspaces/{{WS-NAME}}/providers/Microsoft.SecurityInsights/dataConnectors/{{Connector_Id}}/disconnect?api-version=2021-03-01-preview
Langkah berikutnya
Jika Anda belum melakukannya, bagikan konektor data baru tanpa kode dengan komunitas Microsoft Sentinel! Buat solusi untuk konektor data Anda dan bagikan dalam Marketplace Microsoft Sentinel.
Untuk informasi selengkapnya, lihat