[Zastaralé] Vytvoření staršího konektoru bez kódu pro Microsoft Sentinel
Důležité
Shromažďování protokolů z mnoha zařízení a zařízení teď podporuje common event Format (CEF) prostřednictvím AMA, Syslogu přes AMA nebo vlastní protokoly prostřednictvím datového konektoru AMA v Microsoft Sentinelu. Další informace najdete v tématu Vyhledání datového konektoru služby Microsoft Sentinel.
Důležité
Existuje novější verze platformy konektoru bez kódu (CCP). Další informace o nové ústřední protistraně naleznete v tématu Vytvoření bezkódového konektoru (Preview).
Pokud potřebujete udržovat nebo aktualizovat datový konektor na základě této starší, starší verze ústřední protistrany, použijte tento dokument.
Ústřední protistrana poskytuje partnerům, pokročilým uživatelům a vývojářům možnost vytvářet vlastní konektory, připojovat je a ingestovat data k Microsoft Sentinelu. Konektory vytvořené prostřednictvím ústřední protistrany je možné nasadit prostřednictvím rozhraní API, šablony ARM nebo jako řešení v centru obsahu Služby Microsoft Sentinel.
Konektory vytvořené pomocí ústřední protistrany jsou plně SaaS bez jakýchkoli požadavků na instalace služeb a zahrnují také monitorování stavu a plnou podporu z Microsoft Sentinelu.
Vytvořte datový konektor definováním konfigurací JSON s nastavením, jak stránka datového konektoru v Microsoft Sentinelu vypadá, spolu s nastaveními dotazování, která definují, jak funguje připojení.
Důležité
Tato verze codeless Connector Platform (CCP) je ve verzi PREVIEW, ale také se považuje za starší verzi. Dodatkové podmínky Azure Preview zahrnují další právní podmínky, které se vztahují na funkce Azure, které jsou v beta verzi, preview nebo které ještě nejsou vydány v obecné dostupnosti.
Pomocí následujících kroků vytvořte konektor PRO ÚSTŘEDNÍ PROTISTRANu a připojte se ke zdroji dat z Microsoft Sentinelu:
- Konfigurace uživatelského rozhraní konektoru
- Konfigurace nastavení dotazování konektoru
- Nasazení konektoru do pracovního prostoru Microsoft Sentinelu
- Připojte Microsoft Sentinel ke zdroji dat a začněte ingestovat data.
Tento článek popisuje syntaxi používanou v konfiguracích a postupech JSON PRO ÚSTŘEDNÍ PROTISTRANu pro nasazení konektoru prostřednictvím rozhraní API, šablony ARM nebo řešení Microsoft Sentinel.
Požadavky
Před vytvořením konektoru doporučujeme pochopit, jak se váš zdroj dat chová a jak přesně se bude Microsoft Sentinel muset připojit.
Budete například potřebovat znát typy koncových bodů ověřování, stránkování a rozhraní API, které jsou potřeba pro úspěšná připojení.
Vytvoření konfiguračního souboru JSON konektoru
Váš vlastní konektor PRO ÚSTŘEDNÍ PROTISTRANu má dva primární oddíly JSON potřebné pro nasazení. Vyplňte tyto oblasti, abyste definovali, jak se váš konektor zobrazí na webu Azure Portal a jak propojuje Microsoft Sentinel s vaším zdrojem dat.
connectorUiConfig
. Definuje vizuální prvky a text zobrazený na stránce datového konektoru v Microsoft Sentinelu. Další informace najdete v tématu Konfigurace uživatelského rozhraní konektoru.pollingConfig
. Definuje, jak Microsoft Sentinel shromažďuje data z vašeho zdroje dat. Další informace najdete v tématu Konfigurace nastavení dotazování konektoru.
Pokud pak nasadíte konektor bez kódu prostřednictvím ARM, zabalíte tyto části do šablony ARM pro datové konektory.
Projděte si další datové konektory ÚSTŘEDNÍ PROTISTRANy jako příklady nebo si stáhněte ukázku šablony DataConnector_API_CCP_template.json (Preview).
Konfigurace uživatelského rozhraní konektoru
Tato část popisuje možnosti konfigurace, které jsou k dispozici pro přizpůsobení uživatelského rozhraní stránky datového konektoru.
Následující obrázek znázorňuje ukázkovou stránku datového konektoru se zvýrazněnou čísly, která odpovídají oblastem uživatelského rozhraní:
- Název. Název zobrazený pro datový konektor.
- Logo. Ikona zobrazená pro datový konektor Přizpůsobení je možné pouze při nasazování v rámci řešení.
- Stav: Určuje, jestli je datový konektor připojený k Microsoft Sentinelu nebo ne.
- Datové grafy Zobrazí relevantní dotazy a množství přijatých dat za poslední dva týdny.
- Karta Pokyny Obsahuje část Požadavky se seznamem minimálních ověření, než uživatel může konektor povolit, a pokyny, aby provedl povolení konektoru uživatelem. Tato část může zahrnovat text, tlačítka, formuláře, tabulky a další běžné widgety, které zjednoduší proces.
- Karta Další kroky Obsahuje užitečné informace pro pochopení, jak najít data v protokolech událostí, jako jsou ukázkové dotazy.
Tady jsou connectorUiConfig
oddíly a syntaxe potřebné ke konfiguraci uživatelského rozhraní:
Název vlastnosti | Type | Popis |
---|---|---|
dostupnosti | { "status": 1, "isPreview": Booleovský} |
stav: 1 Označuje, že konektor je obecně dostupný zákazníkům. isPreview Označuje, zda zahrnout (Preview) příponu názvu konektoru. |
connectivityCriteria | { "type": SentinelKindsV2, "value": APIPolling } |
Objekt, který definuje, jak ověřit, jestli je konektor správně definovaný. Použijte zde uvedené hodnoty. |
datové typy | dataTypes[] | Seznam všech datových typů konektoru a dotaz pro načtení času poslední události pro každý datový typ. |
descriptionMarkdown | String | Popis konektoru s možností přidat jazyk Markdown, který ho vylepšuje. |
GraphQueries | graphQueries[] | Dotazy, které představují příjem dat za poslední dva týdny v podokně Datové grafy Zadejte jeden dotaz pro všechny datové typy datového konektoru nebo jiný dotaz pro každý datový typ. |
graphQueriesTableName | String | Definuje název tabulky Log Analytics, ze které se natahují data pro vaše dotazy. Název tabulky může být libovolný řetězec, ale musí končit . _CL Příklad: TableName_CL |
instructionsSteps | instructionSteps[] | Pole částí widgetu, které vysvětlují, jak nainstalovat konektor, se zobrazí na kartě Pokyny . |
metadata | metadata | Metadata zobrazená pod popisem konektoru. |
permissions | oprávnění[] | Informace zobrazené v části Požadavky uživatelského rozhraní, ve kterém jsou uvedena oprávnění požadovaná k povolení nebo zakázání konektoru. |
vydavatel | String | Toto je text zobrazený v části Poskytovatel . |
sampleQueries | sampleQueries[] | Ukázkové dotazy pro zákazníka, abyste pochopili, jak najít data v protokolu událostí, které se mají zobrazit na kartě Další kroky . |
title | String | Nadpis zobrazený na stránce datového konektoru |
Dát všechny tyto kousky dohromady je složité. K otestování součástí, které jste sestavili, použijte nástroj pro ověření uživatelského prostředí stránky konektoru.
datové typy
Hodnota pole | Typ | Popis |
---|---|---|
Jméno | String | Smysluplný popis proměnnélastDataReceivedQuery , včetně podpory proměnné. Příklad: {{graphQueriesTableName}} |
lastDataReceivedQuery | String | Dotaz KQL, který vrátí jeden řádek, a označuje čas posledního přijetí dat nebo žádná data, pokud neexistují žádná relevantní data. Příklad: {{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time) |
GraphQueries
Definuje dotaz, který zobrazuje příjem dat za poslední dva týdny v podokně Datové grafy .
Zadejte jeden dotaz pro všechny datové typy datového konektoru nebo jiný dotaz pro každý datový typ.
Hodnota pole | Typ | Popis |
---|---|---|
metricName | String | Smysluplný název grafu Příklad: Total data received |
legenda | String | Řetězec, který se zobrazí v legendě napravo od grafu, včetně odkazu na proměnnou. Příklad: {{graphQueriesTableName}} |
baseQuery | String | Dotaz, který filtruje relevantní události, včetně odkazu na proměnnou. Příklad: TableName_CL | where ProviderName == "myprovider" nebo {{graphQueriesTableName}} |
instructionSteps
Tato část obsahuje parametry, které definují sadu pokynů, které se zobrazí na stránce datového konektoru v Microsoft Sentinelu.
Array – vlastnost | Typ | Popis |
---|---|---|
title | String | Nepovinné. Definuje název pro vaše pokyny. |
popis | String | Nepovinné. Definuje smysluplný popis pokynů. |
innerSteps | Pole | Nepovinné. Definuje pole vnitřních kroků instrukce. |
instrukce | Pole instrukcí | Povinný: Definuje pole instrukcí konkrétního typu parametru. |
bottomBorder | Logická hodnota | Nepovinné. Když true přidá dolní okraj do oblasti instrukcí na stránce konektoru v Microsoft Sentinelu |
isComingSoon | Logická hodnota | Nepovinné. Když true přidáte na stránku konektoru v Microsoft Sentinelu nadpis Připravujeme |
pokyny
Zobrazí skupinu instrukcí s různými možnostmi jako parametry a možností vnořit další pokyny Ve skupinách.
Parametr | Vlastnost Pole | Popis |
---|---|---|
Klíč rozhraní API | Klíč rozhraní API | Přidejte zástupné symboly do konfiguračního souboru JSON vašeho konektoru. |
CopyableLabel | CopyableLabel | Zobrazuje textové pole s tlačítkem pro kopírování na konci. Po výběru tlačítka se hodnota pole zkopíruje. |
InfoMessage | InfoMessage | Definuje vloženou informační zprávu. |
InstructionStepsGroup | InstructionStepsGroup | Zobrazí skupinu instrukcí, volitelně rozbalené nebo sbalitelné, v samostatné části s pokyny. |
InstallAgent | InstallAgent | Zobrazí odkaz na další části Azure, aby bylo možné splnit různé požadavky na instalaci. |
Klíč rozhraní API
Můžete chtít vytvořit šablonu konfiguračního souboru JSON s parametry zástupných symbolů, opakovaně používat více konektorů nebo dokonce vytvořit konektor s daty, která aktuálně nemáte.
Chcete-li vytvořit zástupné parametry, definujte další pole pojmenované userRequestPlaceHoldersInput
v části Pokyny konfiguračního souboru JSON PRO ÚSTŘEDNÍ PROTISTRANu pomocí následující syntaxe:
"instructions": [
{
"parameters": {
"enable": "true",
"userRequestPlaceHoldersInput": [
{
"displayText": "Organization Name",
"requestObjectKey": "apiEndpoint",
"placeHolderName": "{{placeHolder}}"
}
]
},
"type": "APIKey"
}
]
Parametr userRequestPlaceHoldersInput
obsahuje následující atributy:
Name | Typ | Popis |
---|---|---|
DisplayText | String | Definuje zobrazovanou hodnotu textového pole, která se uživateli zobrazí při připojování. |
RequestObjectKey | String | Definuje ID v části požadavku parametru pollingConfig a nahradí zástupnou hodnotu zadanou uživatelem. Pokud tento atribut nepoužíváte, použijte tento PollingKeyPaths atribut. |
PollingKeyPaths | String | Definuje pole objektů JsonPath , které směruje volání rozhraní API na libovolné místo v šabloně, aby nahradila zástupnou hodnotu hodnotou uživatele. Příklad: "pollingKeyPaths":["$.request.queryParameters.test1"] Pokud tento atribut nepoužíváte, použijte tento RequestObjectKey atribut. |
PlaceHolderName | String | Definuje název zástupného parametru v souboru šablony JSON. Může to být libovolná jedinečná hodnota, například {{placeHolder}} . |
CopyableLabel
Příklad:
Ukázkový kód:
{
"parameters": {
"fillWith": [
"WorkspaceId",
"PrimaryKey"
],
"label": "Here are some values you'll need to proceed.",
"value": "Workspace is {0} and PrimaryKey is {1}"
},
"type": "CopyableLabel"
}
Hodnota pole | Typ | Popis |
---|---|---|
fillWith | VÝČET | Nepovinné. Pole proměnných prostředí sloužících k naplnění zástupného symbolu Oddělte více zástupných symbolů čárkami. Příklad: {0},{1} Podporované hodnoty: workspaceId , workspaceName , primaryKey , MicrosoftAwsAccount subscriptionId |
označit | String | Definuje text pro popisek nad textovým polem. |
value | String | Definuje hodnotu, která se má v textovém poli prezentovat, podporuje zástupné symboly. |
řádky | Řádky | Nepovinné. Definuje řádky v oblasti uživatelského rozhraní. Ve výchozím nastavení je nastavená hodnota 1. |
wideLabel | Logická hodnota | Nepovinné. Určuje široký popisek dlouhých řetězců. Ve výchozím nastavení je nastavena hodnota false . |
InfoMessage
Tady je příklad vložené informační zprávy:
Naproti tomu následující obrázek ukazuje nelineovou informační zprávu:
Hodnota pole | Typ | Popis |
---|---|---|
text | String | Definujte text, který se má zobrazit ve zprávě. |
viditelný | Logická hodnota | Určuje, zda je zpráva zobrazena. |
vložený | Logická hodnota | Určuje způsob zobrazení informační zprávy. - true : (Doporučeno) Zobrazí informační zprávu vloženou v pokynech. - false : Přidá modré pozadí. |
InstructionStepsGroup
Tady je příklad rozbalitelné skupiny instrukcí:
Hodnota pole | Typ | Popis |
---|---|---|
title | String | Definuje název kroku instrukce. |
canCollapseAllSections | Logická hodnota | Nepovinné. Určuje, zda je oddíl sbalitelným akordeonem nebo ne. |
noFxPadding | Logická hodnota | Nepovinné. Pokud true sníží odsazení výšky, aby se ušetřilo místo. |
rozšířený | Logická hodnota | Nepovinné. Pokud true se ve výchozím nastavení zobrazí jako rozbalené. |
Podrobný příklad najdete v souboru JSON konfigurace konektoru DNS systému Windows.
InstallAgent
Některé typy InstallAgent se zobrazí jako tlačítko, jiné se zobrazí jako odkaz. Tady jsou příklady obou:
Hodnoty pole | Typ | Popis |
---|---|---|
linkType | VÝČET | Určuje typ propojení jako jednu z následujících hodnot: InstallAgentOnWindowsVirtualMachine InstallAgentOnWindowsNonAzure InstallAgentOnLinuxVirtualMachine InstallAgentOnLinuxNonAzure OpenSyslogSettings OpenCustomLogsSettings OpenWaf OpenAzureFirewall OpenMicrosoftAzureMonitoring OpenFrontDoors OpenCdnProfile AutomaticDeploymentCEF OpenAzureInformationProtection OpenAzureActivityLog OpenIotPricingModel OpenPolicyAssignment OpenAllAssignmentsBlade OpenCreateDataCollectionRule |
policyDefinitionGuid | String | Vyžaduje se při použití openPolicyAssignment linkType. Pro konektory založené na zásadách definuje identifikátor GUID předdefinované definice zásad. |
assignMode | VÝČET | Nepovinné. Pro konektory založené na zásadách definuje režim přiřazení jako jednu z následujících hodnot: Initiative , Policy |
dataCollectionRuleType | VÝČET | Nepovinné. U konektorů založených na DCR definuje typ pravidla shromažďování dat jako jeden z následujících způsobů: SecurityEvent ForwardEvent |
metadata
Tato část obsahuje metadata v uživatelském rozhraní datového konektoru v oblasti Popis .
Hodnota kolekce | Typ | Popis |
---|---|---|
laskavý | String | Definuje typ šablony ARM, kterou vytváříte. Vždy používejte dataConnector . |
source | String | Popisuje zdroj dat pomocí následující syntaxe: { "kind": řetězec"name": řetězec} |
autor | String | Popisuje autora datového konektoru pomocí následující syntaxe: { "name": řetězec} |
podpora | String | Popis podpory datového konektoru pomocí následující syntaxe: { "tier": řetězec"name": řetězec"email": řetězec"link": Řetězec adresy URL} |
oprávnění
Hodnota pole | Typ | Popis |
---|---|---|
clo | String | Popisuje všechna vlastní oprávnění požadovaná pro vaše datové připojení v následující syntaxi: { "name": string, "description": řetězec} Příklad: Celní hodnota se zobrazí v části Požadavky služby Microsoft Sentinel s modrou informační ikonou. V příkladu GitHubu to koreluje s řádkovým klíčem osobního tokenu rozhraní API GitHubu: Potřebujete přístup k osobnímu tokenu GitHubu... |
opravňuje licencí | VÝČET | Definuje požadované licence jako jednu z následujících hodnot: OfficeIRM ,OfficeATP , Office365 , AadP1P2 , Mcas , Aatp , Mdatp , Mtp IoT Příklad: Hodnota licencí se zobrazí v Microsoft Sentinelu jako: Licence: Povinné Azure AD Premium P2 |
resourceProvider | resourceProvider | Popisuje všechny požadavky pro váš prostředek Azure. Příklad: Hodnota resourceProvider se zobrazí v části Požadavky služby Microsoft Sentinel jako: Pracovní prostor: Vyžaduje se oprávnění ke čtení a zápisu. Klíče: Vyžaduje se oprávnění ke čtení sdílených klíčů pro pracovní prostor. |
klient | pole hodnot ENUM Příklad: "tenant": [ "GlobalADmin", "SecurityAdmin" ] |
Definuje požadovaná oprávnění jako jednu nebo více následujících hodnot: "GlobalAdmin" , "SecurityAdmin" , , "SecurityReader" "InformationProtection" Příklad: Zobrazí hodnotu tenanta v Microsoft Sentinelu jako: Oprávnění tenanta: Vyžaduje Global Administrator nebo Security Administrator v tenantovi pracovního prostoru. |
resourceProvider
hodnota dílčího pole | Typ | Popis |
---|---|---|
poskytovatel | VÝČET | Popisuje poskytovatele prostředků s jednou z následujících hodnot: - Microsoft.OperationalInsights/workspaces - Microsoft.OperationalInsights/solutions - Microsoft.OperationalInsights/workspaces/datasources - microsoft.aadiam/diagnosticSettings - Microsoft.OperationalInsights/workspaces/sharedKeys - Microsoft.Authorization/policyAssignments |
providerDisplayName | String | Položka seznamu v části Požadavky , která zobrazí červenou nebo zelenou značku zaškrtnutí, když jsou požadovanéPermissions ověřeny na stránce konektoru. Příklad "Workspace" |
permissionsDisplayText | String | Zobrazovaný text pro oprávnění ke čtení, zápisu nebo čtení a zápisu, která by měla odpovídat hodnotám nakonfigurovaným v requiredPermissions |
requiredPermissions | { "action": Logická hodnota, "delete": Logická hodnota, "read": Logická hodnota, "write": Booleovský} |
Popisuje minimální oprávnění požadovaná pro konektor. |
rozsah | VÝČET | Popisuje rozsah datového konektoru jako jednu z následujících hodnot: "Subscription" , , "ResourceGroup" "Workspace" |
sampleQueries
maticová hodnota | Typ | Popis |
---|---|---|
popis | String | Smysluplný popis ukázkového dotazu Příklad: Top 10 vulnerabilities detected |
query | String | Ukázkový dotaz použitý k načtení dat datového typu Příklad: {{graphQueriesTableName}}\n | sort by TimeGenerated\n | take 10 |
Konfigurace dalších možností propojení
Pokud chcete definovat vložený odkaz pomocí markdownu, použijte následující příklad. Tady je odkaz uvedený v popisu instrukce:
{
"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)"
}
Pokud chcete definovat odkaz jako šablonu ARM, použijte jako vodítko následující příklad:
{
"title": "Azure Resource Manager (ARM) template",
"description": "1. Click the **Deploy to Azure** button below.\n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)]({URL to custom ARM template})"
}
Ověření uživatelského prostředí stránky datového konektoru
Pokud chcete vykreslit a ověřit uživatelské prostředí konektoru, postupujte podle těchto kroků.
- K testovacímu nástroji má tato adresa URL přístup – https://aka.ms/sentineldataconnectorvalidateurl
- Přechod na Microsoft Sentinel –> datové konektory
- Klikněte na tlačítko Importovat a vyberte soubor JSON, který obsahuje
connectorUiConfig
jenom část datového konektoru.
Další informace o tomto ověřovacím nástroji najdete v pokynech k sestavení konektoru v našem průvodci sestavením GitHubu.
Poznámka:
Vzhledem k tomu, že parametr instrukce APIKey je specifický pro konektor bez kódu, dočasně odeberte tento oddíl, aby používal ověřovací nástroj, nebo selže.
Konfigurace nastavení dotazování konektoru
Tato část popisuje konfiguraci způsobu dotazování dat ze zdroje dat pro datový konektor bez kódu.
Následující kód ukazuje syntaxi pollingConfig
oddílu konfiguračního souboru ÚSTŘEDNÍ PROTISTRANy.
"pollingConfig": {
"auth": {
},
"request": {
},
"response": {
},
"paging": {
}
}
Tato pollingConfig
část obsahuje následující vlastnosti:
Name | Typ | Popis |
---|---|---|
Auth | String | Popisuje vlastnosti ověřování pro dotazování dat. Další informace najdete v tématu Konfigurace ověřování. |
auth.authType | String | Povinné. Definuje typ ověřování, vnořený uvnitř objektuauth , jako jednu z následujících hodnot: Basic , , APIKey OAuth2 |
prosba | Vnořený JSON | Povinné. Popisuje datovou část požadavku pro dotazování dat, jako je koncový bod rozhraní API. Další informace najdete v tématu Konfigurace požadavku. |
odpověď | Vnořený JSON | Povinné. Popisuje objekt odpovědi a vnořenou zprávu vrácenou z rozhraní API při dotazování dat. Další informace najdete v tématu Konfigurace odpovědi. |
stránkování | Vnořený JSON | Nepovinné. Popisuje datovou část stránkování při dotazování dat. Další informace najdete v tématu Konfigurace stránkování. |
Další informace naleznete v části Vzorový kód pollingConfig.
Konfigurace ověřování
Část auth
konfigurace pollingConfig obsahuje následující parametry v závislosti na typu definovaném v elementu authType :
Základní parametry authType
Name | Typ | Popis |
---|---|---|
Uživatelské jméno | String | Povinné. Definuje uživatelské jméno. |
Heslo | String | Povinné. Definuje uživatelské heslo. |
Parametry apiKey authType
Name | Typ | Popis |
---|---|---|
APIKeyName | String | Nepovinné. Definuje název klíče rozhraní API jako jednu z následujících hodnot: - XAuthToken - Authorization |
IsAPIKeyInPostPayload | Logická hodnota | Určuje, kde je definovaný klíč rozhraní API. True: Klíč rozhraní API je definován v datové části požadavku POST. False: Klíč rozhraní API je definovaný v hlavičce. |
APIKeyIdentifier | String | Nepovinné. Definuje název identifikátoru pro klíč rozhraní API. Například pokud je autorizace definována jako "Authorization": "token <secret>" , tento parametr je definován jako: {APIKeyIdentifier: “token”}) |
Parametry OAuth2 authType
Platforma konektoru bez kódu podporuje udělení autorizačního kódu OAuth 2.0.
Typ udělení autorizačního kódu používají důvěrní a veřejná klienti k výměně autorizačního kódu pro přístupový token.
Jakmile se uživatel vrátí klientovi přes adresu URL přesměrování, aplikace získá autorizační kód z adresy URL a použije ho k vyžádání přístupového tokenu.
Name | Typ | Popis |
---|---|---|
Název toku | String | Povinné. Definuje tok OAuth2. Podporovaná hodnota: – vyžaduje tok autorizace. AuthCode |
AccessToken | String | Nepovinné. Definuje přístupový token OAuth2, který je relevantní v případě, že nevyprší platnost přístupového tokenu. |
AccessTokenPrepend | String | Nepovinné. Definuje předem připravený přístupový token OAuth2. Výchozí hodnota je Bearer . |
RefreshToken | String | Povinné pro typy ověřování OAuth2. Definuje obnovovací token OAuth2. |
TokenEndpoint | String | Povinné pro typy ověřování OAuth2. Definuje koncový bod služby tokenu OAuth2. |
AuthorizationEndpoint | String | Nepovinné. Definuje koncový bod autorizační služby OAuth2. Používá se pouze při onboardingu nebo při obnovování obnovovacího tokenu. |
RedirectionEndpoint | String | Nepovinné. Definuje koncový bod přesměrování během onboardingu. |
AccessTokenExpirationDateTimeInUtc | String | Nepovinné. Definuje datum a čas vypršení platnosti přístupového tokenu ve formátu UTC. Relevantní pro případ, kdy platnost přístupového tokenu nevyprší, a proto má ve standardu UTC velký čas data a času, nebo pokud má přístupový token velké datum vypršení platnosti. |
RefreshTokenExpirationDateTimeInUtc | String | Povinné pro typy ověřování OAuth2. Definuje datum a čas vypršení platnosti obnovovacího tokenu ve formátu UTC. |
TokenEndpointHeaders | Řetězec slovníku<, objekt> | Nepovinné. Definuje hlavičky při volání koncového bodu služby tokenu OAuth2. Definujte řetězec v serializovaném dictionary<string, string> formátu: {'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
AuthorizationEndpointHeaders | Řetězec slovníku<, objekt> | Nepovinné. Definuje hlavičky při volání koncového bodu autorizační služby OAuth2. Používá se pouze při onboardingu nebo při obnovování obnovovacího tokenu. Definujte řetězec v serializovaném dictionary<string, object> formátu: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... } |
AuthorizationEndpointQueryParameters | Řetězec slovníku<, objekt> | Nepovinné. Definuje parametry dotazu při volání koncového bodu autorizační služby OAuth2. Používá se pouze při onboardingu nebo při obnovování obnovovacího tokenu. Definujte řetězec v serializovaném dictionary<string, object> formátu: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... } |
TokenEndpointQueryParameters | Řetězec slovníku<, objekt> | Nepovinné. Definujte parametry dotazu při volání koncového bodu služby tokenu OAuth2. Definujte řetězec v serializovaném dictionary<string, object> formátu: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... } |
IsTokenEndpointPostPayloadJson | Logická hodnota | Volitelné, výchozí hodnota je false. Určuje, jestli jsou parametry dotazu ve formátu JSON a nastavené v datové části POST požadavku. |
IsClientSecretInHeader | Logická hodnota | Volitelné, výchozí hodnota je false. Určuje, zda client_id client_secret jsou hodnoty definovány v hlavičce, jak se provádí ve schématu základního ověřování místo v datové části POST. |
RefreshTokenLifetimeinSecAttributeName | String | Nepovinné. Definuje název atributu z odpovědi koncového bodu tokenu a určuje životnost obnovovacího tokenu v sekundách. |
IsJwtBearerFlow | Logická hodnota | Volitelné, výchozí hodnota je false. Určuje, jestli používáte JWT. |
JwtHeaderInJson | Řetězec slovníku<, objekt> | Nepovinné. Definujte hlavičky JWT ve formátu JSON. Definujte řetězec v serializovaném dictionary<string, object> formátu: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>...} |
JwtClaimsInJson | Řetězec slovníku<, objekt> | Nepovinné. Definuje deklarace identity JWT ve formátu JSON. Definujte řetězec v serializovaném dictionary<string, object> formátu: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ...} |
JwtPem | String | Nepovinné. Definuje tajný klíč ve formátu PEM Pkcs1: '-----BEGIN RSA PRIVATE KEY-----\r\n{privatekey}\r\n-----END RSA PRIVATE KEY-----\r\n' Ujistěte se, že '\r\n' je kód zavedený. |
RequestTimeoutInSeconds | Celé číslo | Nepovinné. Určuje časový limit v sekundách při volání koncového bodu služby tokenu. Výchozí hodnota je 180 sekund. |
Tady je příklad, jak může vypadat konfigurace OAuth2:
"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"
},
Parametry authType relace
Name | Typ | Popis |
---|---|---|
QueryParameters | Řetězec slovníku<, objekt> | Nepovinné. Seznam parametrů dotazu v serializovaném dictionary<string, string> formátu: {'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
IsPostPayloadJson | Logická hodnota | Nepovinné. Určuje, zda jsou parametry dotazu ve formátu JSON. |
Záhlaví | Řetězec slovníku<, objekt> | Nepovinné. Definuje hlavičku použitou při volání koncového bodu pro získání ID relace a při volání rozhraní API koncového bodu. Definujte řetězec v serializovaném dictionary<string, string> formátu: {'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
SessionTimeoutInMinutes | String | Nepovinné. Definuje časový limit relace v minutách. |
SessionIdName | String | Nepovinné. Definuje název ID relace. |
SessionLoginRequestUri | String | Nepovinné. Definuje identifikátor URI žádosti o přihlášení relace. |
Konfigurace požadavku
Část request
konfigurace pollingConfig obsahuje následující parametry:
Name | Typ | Popis |
---|---|---|
apiEndpoint | String | Povinné. Definuje koncový bod, ze které se mají načíst data. |
httpMethod | String | Povinné. Definuje metodu rozhraní API: GET nebo POST |
queryTimeFormat | String, UnixTimestamp nebo UnixTimestampInMills | Povinné. Definuje formát použitý k definování času dotazu. Tato hodnota může být řetězec nebo ve formátu UnixTimestamp nebo UnixTimestampInMills , který označuje počáteční a koncový čas dotazu v unixTimestamp. |
startTimeAttributeName | String | Nepovinné. Definuje název atributu, který definuje čas spuštění dotazu. |
endTimeAttributeName | String | Nepovinné. Definuje název atributu, který definuje koncový čas dotazu. |
queryTimeIntervalAttributeName | String | Nepovinné. Definuje název atributu, který definuje časový interval dotazu. |
queryTimeIntervalDelimiter | String | Nepovinné. Definuje oddělovač časového intervalu dotazu. |
queryWindowInMin | Celé číslo | Nepovinné. Definuje dostupné okno dotazu v minutách. Minimální hodnota: 5 |
queryParameters | Řetězec slovníku<, objekt> | Nepovinné. Definuje parametry předané v dotazu v cestě eventsJsonPaths . Definujte řetězec v serializovaném dictionary<string, string> formátu: {'<attr_name>': '<val>', '<attr_name>': '<val>'... } . |
queryParametersTemplate | String | Nepovinné. Definuje šablonu parametrů dotazu, která se má použít při předávání parametrů dotazu v pokročilých scénářích. Příklad: "queryParametersTemplate": "{'cid': 1234567, 'cmd': 'reporting', 'format': 'siem', 'data': { 'from': '{_QueryWindowStartTime}', 'to': '{_QueryWindowEndTime}'}, '{_APIKeyName}': '{_APIKey}'}" {_QueryWindowStartTime} a {_QueryWindowEndTime} jsou podporovány pouze v parametrech queryParameters požadavku.queryParametersTemplate {_APIKeyName} a {_APIKey} jsou podporovány pouze v parametru queryParametersTemplate požadavku. |
isPostPayloadJson | Logická hodnota | Nepovinné. Určuje, jestli je datová část POST ve formátu JSON. |
rateLimitQPS | Hodnota s dvojitou přesností | Nepovinné. Definuje počet volání nebo dotazů povolených za sekundu. |
timeoutInSeconds | Celé číslo | Nepovinné. Definuje časový limit požadavku v sekundách. |
retryCount | Celé číslo | Nepovinné. Definuje počet opakování požadavků, které se mají v případě potřeby vyzkoušet. |
hlavičky | Řetězec slovníku<, objekt> | Nepovinné. Definuje hodnotu hlavičky požadavku v serializovaném dictionary<string, object> formátu: {'<attr_name>': '<serialized val>', '<attr_name>': '<serialized val>'... } |
Konfigurace odpovědi
Část response
konfigurace pollingConfig obsahuje následující parametry:
Následující kód ukazuje příklad hodnoty eventsJsonPaths pro zprávu nejvyšší úrovně:
"eventsJsonPaths": [
"$"
]
Konfigurace stránkování
Část paging
konfigurace pollingConfig obsahuje následující parametry:
Name | Typ | Popis |
---|---|---|
pagingType | String | Povinné. Určuje typ stránkování, který se má použít ve výsledcích, jako jednu z následujících hodnot: None , LinkHeader , NextPageToken , NextPageUrl Offset |
linkHeaderTokenJsonPath | String | Nepovinné. Definuje cestu JSON k záhlaví odkazu ve formátu JSON odpovědi, pokud LinkHeader není definovaná v hlavičce odpovědi. |
nextPageTokenJsonPath | String | Nepovinné. Definuje cestu k json tokenu další stránky. |
hasNextFlagJsonPath | String | Nepovinné. Definuje cestu k atributu příznaku HasNextPage . |
nextPageTokenResponseHeader | String | Nepovinné. Definuje název záhlaví tokenu další stránky v odpovědi. |
nextPageParaName | String | Nepovinné. Určuje název další stránky v požadavku. |
nextPageRequestHeader | String | Nepovinné. Určuje název záhlaví další stránky v požadavku. |
nextPageUrl | String | Nepovinné. Určuje adresu URL další stránky, pokud se liší od počáteční adresy URL požadavku. |
nextPageUrlQueryParameters | String | Nepovinné. Určuje parametry dotazu adresy URL další stránky, pokud se liší od adresy URL počátečního požadavku. Definujte řetězec v serializovaném dictionary<string, object> formátu: {'<attr_name>': <val>, '<attr_name>': <val>... } |
offsetParaName | String | Nepovinné. Definuje název parametru posunu. |
pageSizeParaName | String | Nepovinné. Definuje název parametru velikost stránky. |
Pagesize | Integer | Definuje velikost stránkování. |
Ukázkový kód pollingConfig
Následující kód ukazuje příklad pollingConfig
části konfiguračního souboru ÚSTŘEDNÍ PROTISTRANy:
"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": [
"$"
]
}
}
Nasazení konektoru v Microsoft Sentinelu a zahájení ingestování dat
Po vytvoření konfiguračního souboru JSON, včetně uživatelského rozhraní i konfigurace dotazování, nasaďte konektor do pracovního prostoru Microsoft Sentinelu.
K nasazení datového konektoru použijte jednu z následujících možností.
Tip
Výhodou nasazení prostřednictvím šablony Azure Resource Manageru (ARM) je, že několik hodnot je předdefinovaných do šablony a nemusíte je definovat ručně při volání rozhraní API.
Zabalte kolekce konfigurace JSON do šablony ARM pro nasazení konektoru. Abyste měli jistotu, že se datový konektor nasadí do správného pracovního prostoru, nezapomeňte buď definovat pracovní prostor v šabloně ARM, nebo vybrat pracovní prostor při nasazování šablony ARM.
Připravte soubor JSON šablony ARM pro váš konektor. Podívejte se například na následující soubory JSON šablony ARM:
- Datový konektor v řešení Slack
- Datový konektor v řešení GitHubu
Na webu Azure Portal vyhledejte nasazení vlastní šablony.
Na stránce Vlastní nasazení vyberte v souboru načíst editor> vlastní šablonu. Přejděte do místní šablony ARM a vyberte ji a uložte změny.
Vyberte své předplatné a skupinu prostředků a pak zadejte pracovní prostor služby Log Analytics, do kterého chcete nasadit vlastní konektor.
Vyberte Zkontrolovat a vytvořit a nasaďte vlastní konektor do Microsoft Sentinelu.
V Microsoft Sentinelu přejděte na stránku Datové konektory a vyhledejte nový konektor. Nakonfigurujte ji tak, aby začala ingestovat data.
Další informace najdete v tématu Nasazení místní šablony v dokumentaci k Azure Resource Manageru.
Nakonfigurujte datový konektor pro připojení zdroje dat a začněte ingestovat data do Microsoft Sentinelu. Ke zdroji dat se můžete připojit prostřednictvím portálu, stejně jako u předpojímených datových konektorů nebo přes rozhraní API.
Když k připojení použijete Azure Portal, posílají se uživatelská data automaticky. Když se připojíte přes rozhraní API, budete muset ve volání rozhraní API odeslat relevantní parametry ověřování.
Na stránce datového konektoru Microsoft Sentinel postupujte podle pokynů, které jste zadali pro připojení k datovému konektoru.
Stránka datového konektoru v Microsoft Sentinelu je řízena konfigurací InstructionSteps v
connectorUiConfig
elementu konfiguračního souboru JSON PRO ÚSTŘEDNÍ PROTISTRANu. Pokud máte problémy s připojením k uživatelskému rozhraní, ujistěte se, že máte správnou konfiguraci pro váš typ ověřování.V Microsoft Sentinelu přejděte na stránku Protokoly a ověřte, že se protokoly ze zdroje dat zobrazují do vašeho pracovního prostoru.
Pokud nevidíte tok dat do Služby Microsoft Sentinel, zkontrolujte dokumentaci ke zdroji dat a prostředky pro řešení potíží, zkontrolujte podrobnosti o konfiguraci a zkontrolujte připojení. Další informace najdete v tématu Monitorování stavu datových konektorů.
Odpojení konektoru
Pokud už data konektoru nepotřebujete, odpojte konektor a zastavte tok dat.
Použijte jednu z následujících metod:
Azure Portal: Na stránce datového konektoru Microsoft Sentinelu vyberte Odpojit.
Rozhraní API: Pomocí rozhraní API DISCONNECT odešlete volání PUT s prázdným textem na následující adresu URL:
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
Další kroky
Pokud jste to ještě neudělali, sdílejte nový datový konektor bez kódu s komunitou Microsoft Sentinelu. Vytvořte řešení pro datový konektor a sdílejte ho na Webu Microsoft Sentinel Marketplace.
Další informace najdete v tématu