Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Zbieranie dzienników z wielu aplikacji i urządzeń jest teraz obsługiwane przez Common Event Format (CEF) za pośrednictwem AMA, Syslog za pośrednictwem AMA lub dzienników niestandardowych za pośrednictwem łącznika danych AMA w usłudze Microsoft Sentinel. Aby uzyskać więcej informacji, zobacz Znajdowanie łącznika danych usługi Microsoft Sentinel.
Ważne
Istnieje nowsza wersja platformy łączników bez kodu (KPCH). Aby uzyskać więcej informacji na temat nowego interfejsu KPCH, zobacz Tworzenie łącznika bez kodu (wersja zapoznawcza).
Zapoznaj się z tym dokumentem, jeśli musisz zachować lub zaktualizować łącznik danych w oparciu o starszą wersję.
CCP zapewnia partnerom, zaawansowanym użytkownikom i deweloperom możliwość tworzenia łączników niestandardowych, łączenia ich i pozyskiwania danych do Microsoft Sentinel. Łączniki utworzone za pośrednictwem CCP mogą być wdrażane za pomocą interfejsu API, szablonu ARM lub jako rozwiązanie w centrum zawartości Microsoft Sentinel.
Łączniki utworzone przy użyciu protokołu KPS są w pełni SaaS, bez żadnych wymagań dotyczących instalacji usług, a także obejmują monitorowanie kondycji i pełną obsługę usługi Microsoft Sentinel.
Utwórz łącznik danych, definiując konfiguracje JSON, które zawierają ustawienia dotyczące wyglądu strony łącznika danych w usłudze Microsoft Sentinel, oraz ustawienia odpytania, które określają sposób działania połączenia.
Ważne
Ta wersja platformy łącznika bez kodu (KPCH) jest dostępna w wersji zapoznawczej, ale jest również uważana za starszą. Dodatkowe postanowienia dotyczące wersji zapoznawczej platformy Azure obejmują dodatkowe postanowienia prawne dotyczące funkcji platformy Azure, które są dostępne w wersji beta, wersji zapoznawczej lub w inny sposób nie zostały jeszcze wydane w wersji ogólnodostępnej.
Wykonaj następujące kroki, aby utworzyć łącznik CCP i połączyć się ze źródłem danych w Microsoft Sentinel:
- Konfigurowanie interfejsu użytkownika łącznika
- Skonfiguruj ustawienia sondowania łącznika
- Wdróż łącznik do obszaru roboczego Microsoft Sentinel
- Połącz Microsoft Sentinel ze źródłem danych i rozpocznij pozyskiwanie danych.
W tym artykule opisano składnię używaną w konfiguracjach CCP JSON oraz procedurach wdrożenia łącznika za pośrednictwem interfejsu API, szablonu ARM lub rozwiązania Microsoft Sentinel.
Wymagania wstępne
Przed utworzeniem łącznika zalecamy zapoznanie się z zachowaniem źródła danych i dokładnie tym, jak usługa Microsoft Sentinel będzie musiała nawiązać połączenie.
Na przykład musisz znać typy uwierzytelniania, stronicowania i punktów końcowych interfejsu API, które są wymagane do pomyślnego nawiązania połączeń.
Tworzenie pliku konfiguracji JSON łącznika
Twój niestandardowy łącznik CCP zawiera dwie podstawowe sekcje JSON potrzebne do wdrożenia. Wypełnij te obszary, aby zdefiniować sposób wyświetlania łącznika w witrynie Azure Portal i sposobu łączenia usługi Microsoft Sentinel ze źródłem danych.
connectorUiConfig. Definiuje elementy wizualne i tekst wyświetlany na stronie łącznika danych w usłudze Microsoft Sentinel. Aby uzyskać więcej informacji, zobacz Konfigurowanie interfejsu użytkownika łącznika.pollingConfig. Definiuje sposób, w jaki usługa Microsoft Sentinel zbiera dane ze źródła danych. Aby uzyskać więcej informacji, zobacz Konfigurowanie ustawień sondowania łącznika.
Następnie, jeśli wdrożysz łącznik bez kodu za pośrednictwem usługi ARM, opakujesz te sekcje w szablonie usługi ARM dla łączników danych.
Przejrzyj inne łączniki danych CCP jako przykłady lub pobierz przykładowy szablon, DataConnector_API_CCP_template.json (wersja pokazowa).
Konfigurowanie interfejsu użytkownika łącznika
W tej sekcji opisano opcje konfiguracji dostępne do dostosowania interfejsu użytkownika strony łącznika danych.
Na poniższej ilustracji przedstawiono stronę przykładowego łącznika danych wyróżnioną numerami odpowiadającymi godnym uwagi obszarom interfejsu użytkownika:
- Tytuł. Tytuł wyświetlany dla twojego łącznika danych.
- Logo. Ikona wyświetlana dla łącznika danych. Dostosowanie tego jest możliwe tylko w przypadku wdrażania jako część rozwiązania.
- Stan. Wskazuje, czy łącznik danych jest połączony z usługą Microsoft Sentinel.
- Wykresy danych. Wyświetla odpowiednie zapytania i ilość pozyskanych danych w ciągu ostatnich dwóch tygodni.
- Karta Instrukcje. Zawiera sekcję Wymagania wstępne z listą minimalnych weryfikacji, zanim użytkownik będzie mógł włączyć łącznik i instrukcje, aby kierować włączaniem łącznika przez użytkownika. Ta sekcja może zawierać tekst, przyciski, formularze, tabele i inne typowe widżety, aby uprościć proces.
- Karta Następne kroki. Zawiera przydatne informacje dotyczące znajdowania danych w dziennikach zdarzeń, takich jak przykładowe zapytania.
Poniżej przedstawiono connectorUiConfig sekcje i składnię wymaganą do skonfigurowania interfejsu użytkownika:
| Nazwa właściwości | Typ | Opis |
|---|---|---|
| dostępność | {"status": 1,"isPreview": Boolean} |
stan: 1 Wskazuje, że łącznik jest ogólnie dostępny dla klientów. isPreview Wskazuje, czy do nazwy łącznika ma być dołączony sufiks „(Preview)”. |
| kryteria łączności | {"type": SentinelKindsV2,"value": APIPolling} |
Obiekt, który definiuje sposób sprawdzania, czy łącznik jest poprawnie zdefiniowany. Użyj wartości wskazanych tutaj. |
| dataTypes | dataTypes[] | Lista wszystkich typów danych dla łącznika oraz zapytanie służące do pobierania czasu ostatniego zdarzenia dla każdego typu danych. |
| descriptionMarkdown | Sznurek | Opis łącznika z możliwością dodawania języka markdown w celu jego ulepszenia. |
| graphQueries | graphQueries[] | Zapytania przedstawiające pozyskiwanie danych w ciągu ostatnich dwóch tygodni w okienku Wykresy danych . Podaj jedno zapytanie dla wszystkich typów danych łącznika danych lub inne zapytanie dla każdego typu danych. |
| graphQueriesTableName | Sznurek | Definiuje nazwę tabeli usługi Log Analytics, z której są pobierane dane dla zapytań. Nazwa tabeli może być dowolnym ciągiem, ale musi kończyć się ciągiem _CL. Przykład: TableName_CL |
| instrukcjeKroki | instrukcja_kroki[] | Tablica części widżetów wyjaśniających sposób instalowania łącznika wyświetlana na karcie Instrukcje . |
| metadane | metadane | Metadane wyświetlane w opisie łącznika. |
| Uprawnienia | uprawnienia[] | Informacje wyświetlane w sekcji Wymagania wstępne interfejsu użytkownika zawierające listę uprawnień wymaganych do włączenia lub wyłączenia łącznika. |
| wydawca | Sznurek | Jest to tekst wyświetlany w sekcji Dostawca . |
| sampleQueries | sampleQueries[] | Przykładowe zapytania dla klienta, aby zrozumieć, jak znaleźć dane w dzienniku zdarzeń, które mają być wyświetlane na karcie Następne kroki . |
| tytuł | Sznurek | Tytuł wyświetlany na stronie łącznika danych. |
Łączenie wszystkich tych elementów jest skomplikowane. Użyj narzędzia do weryfikacji doświadczenia użytkownika strony z łącznikiem, aby przetestować składniki, które złożyłeś.
typy danych
| Wartość tablicy | Typ | Opis |
|---|---|---|
| nazwa | Sznurek | Znaczący opis dlalastDataReceivedQuery, w tym wsparcie dla zmiennej. Przykład: {{graphQueriesTableName}} |
| lastDataReceivedQuery | Sznurek | Zapytanie KQL zwracające jeden wiersz i wskazujące ostatni raz dane odebrane lub brak danych, jeśli nie ma odpowiednich danych. Przykład: {{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time) |
graphQueries
Definiuje zapytanie, które przedstawia pozyskiwanie danych w ciągu ostatnich dwóch tygodni w okienku Wykresy danych .
Podaj jedno zapytanie dla wszystkich typów danych łącznika danych lub inne zapytanie dla każdego typu danych.
| Wartość tablicy | Typ | Opis |
|---|---|---|
| metricName | Sznurek | Zrozumiała nazwa grafu. Przykład: Total data received |
| legenda | Sznurek | Ciąg wyświetlany w legendzie po prawej stronie wykresu, w tym odwołanie do zmiennej. Przykład: {{graphQueriesTableName}} |
| baseQuery | Sznurek | Zapytanie, które filtruje odpowiednie zdarzenia, zawierające odniesienie do zmiennej. Przykład: TableName_CL | where ProviderName == "myprovider" lub {{graphQueriesTableName}} |
kroki instrukcji
Ta sekcja zawiera parametry definiujące zestaw instrukcji wyświetlanych na stronie łącznika danych w usłudze Microsoft Sentinel.
| Właściwość tablicy | Typ | Opis |
|---|---|---|
| tytuł | Sznurek | Opcjonalny. Definiuje tytuł instrukcji. |
| opis | Sznurek | Opcjonalny. Definiuje zrozumiały opis instrukcji. |
| innerSteps | Tablica | Opcjonalny. Definiuje tablicę kroków instrukcji wewnętrznych. |
| instrukcje | Tablica instrukcji | To jest wymagane. Definiuje tablicę instrukcji określonego typu parametru. |
| bottomBorder | Boolean | Opcjonalny. Gdy true, dodaje dolne obramowanie do obszaru instrukcji na stronie łącznika w usłudze Microsoft Sentinel |
| isComingSoon | Boolean | Opcjonalny. Kiedy true dodaje tytuł Coming soon na stronie łącznika w usłudze Microsoft Sentinel |
instrukcje
Przedstawia grupę instrukcji z różnymi opcjami jako parametrami oraz możliwością zagnieżdżania większej liczby kroków instrukcji w grupach.
| Parametr | Właściwość Array | Opis |
|---|---|---|
| ApiKey | ApiKey | Dodaj symbole zastępcze do pliku konfiguracji JSON łącznika. |
| Etykieta do kopiowania | Etykieta do kopiowania | Pokazuje pole tekstowe z przyciskiem kopiowania na końcu. Po wybraniu przycisku wartość pola zostanie skopiowana. |
| InfoMessage | InfoMessage | Definiuje wbudowany komunikat informacyjny. |
| GrupaKrokówInstrukcji | InstrukcjaStepsGroup | Przedstawia grupę instrukcji, opcjonalnie rozwiniętych lub zwijanych, w oddzielnej sekcji instrukcji. |
| InstallAgent | InstallAgent | Wyświetla link do innych części platformy Azure w celu spełnienia różnych wymagań dotyczących instalacji. |
ApiKey
Możesz utworzyć szablon pliku konfiguracji JSON z parametrami zastępczymi, aby ponownie użyć wielu łączników, a nawet utworzyć łącznik z danymi, które nie są obecnie dostępne.
Aby utworzyć parametry zastępcze, zdefiniuj dodatkową tablicę o nazwie userRequestPlaceHoldersInput w sekcji Instrukcje w pliku CCP JSON, przy użyciu następującej składni:
"instructions": [
{
"parameters": {
"enable": "true",
"userRequestPlaceHoldersInput": [
{
"displayText": "Organization Name",
"requestObjectKey": "apiEndpoint",
"placeHolderName": "{{placeHolder}}"
}
]
},
"type": "APIKey"
}
]
Parametr userRequestPlaceHoldersInput zawiera następujące atrybuty:
| Nazwa | Typ | Opis |
|---|---|---|
| Tekst wyświetlany | Sznurek | Definiuje wartość wyświetlaną pola tekstowego, która jest wyświetlana użytkownikowi podczas nawiązywania połączenia. |
| RequestObjectKey | Sznurek | Definiuje identyfikator w sekcji żądania w pliku pollingConfig , aby zastąpić wartość symbolu zastępczego wartością podaną przez użytkownika. Jeśli nie używasz tego atrybutu, użyj tego atrybutu PollingKeyPaths . |
| PollingKeyPaths | Sznurek | Definiuje tablicę obiektów JsonPath , która kieruje wywołanie interfejsu API do dowolnego miejsca w szablonie, aby zastąpić wartość symbolu zastępczego wartością użytkownika. Przykład: "pollingKeyPaths":["$.request.queryParameters.test1"] Jeśli nie używasz tego atrybutu, użyj tego atrybutu RequestObjectKey . |
| Nazwa symbolu zastępczego | Sznurek | Definiuje nazwę parametru zastępczego w pliku szablonu JSON. Może to być dowolna unikatowa wartość, taka jak {{placeHolder}}. |
Etykieta kopiowalna
Przykład:
przykładowy kod:
{
"parameters": {
"fillWith": [
"WorkspaceId",
"PrimaryKey"
],
"label": "Here are some values you'll need to proceed.",
"value": "Workspace is {0} and PrimaryKey is {1}"
},
"type": "CopyableLabel"
}
| Wartość tablicy | Typ | Opis |
|---|---|---|
| wypełnij | ENUM | Opcjonalny. Tablica zmiennych środowiskowych używanych do wypełnienia miejsca zastępczego. Rozdziel wiele elementów zastępczych przecinkami. Przykład: {0},{1} Obsługiwane wartości: workspaceId, , primaryKeyworkspaceName, , MicrosoftAwsAccountsubscriptionId |
| label | Sznurek | Definiuje tekst etykiety powyżej pola tekstowego. |
| wartość | Sznurek | Definiuje wartość, która ma być obecna w polu tekstowym, obsługuje symbole zastępcze. |
| Wiersze | Wiersze | Opcjonalny. Definiuje wiersze w obszarze interfejsu użytkownika. Domyślnie ustaw wartość 1. |
| wideLabel | Boolean | Opcjonalny. Określa szeroką etykietę dla długich ciągów. Domyślnie ustaw wartość false. |
InfoMessage
Oto przykład komunikatu informacyjnego wbudowanego:
Z kolei na poniższej ilustracji przedstawiono komunikat o informacjach nieliniowych:
| Wartość tablicy | Typ | Opis |
|---|---|---|
| tekst | Sznurek | Zdefiniuj tekst do wyświetlenia w wiadomości. |
| widoczny | Boolean | Określa, czy komunikat jest wyświetlany. |
| w wierszu | Boolean | Określa sposób wyświetlania komunikatu informacyjnego. - true: (Zalecane) Wyświetla komunikat informacyjny osadzony w instrukcjach. - false: Dodaje niebieskie tło. |
GrupaKrokówInstrukcji
Oto przykład rozszerzalnej grupy instrukcji:
| Wartość tablicy | Typ | Opis |
|---|---|---|
| tytuł | Sznurek | Definiuje tytuł kroku instrukcji. |
| canCollapseAllSections | Boolean | Opcjonalny. Określa, czy sekcja ma formę zwijanego akordeonu. |
| noFxPadding | Boolean | Opcjonalny. Jeśli true, zmniejsza wyściółkę wysokości, aby zaoszczędzić miejsce. |
| Rozszerzony | Boolean | Opcjonalny. Jeśli true jest wyświetlane jako rozwinięte domyślnie. |
Aby uzyskać szczegółowy przykład, zobacz konfigurację JSON łącznika DNS systemu Windows.
InstallAgent
Niektóre typy InstallAgent są wyświetlane jako przycisk, inne będą wyświetlane jako link. Oto przykłady obu tych elementów:
| Wartości tablicy | Typ | Opis |
|---|---|---|
| linkType | ENUM | Określa typ łącza jako jedną z następujących wartości: InstallAgentOnWindowsVirtualMachineInstallAgentOnWindowsNonAzureInstallAgentOnLinuxVirtualMachineInstallAgentOnLinuxNonAzureOpenSyslogSettingsOpenCustomLogsSettingsOpenWafOpenAzureFirewall
OpenMicrosoftAzureMonitoring
OpenFrontDoors OpenCdnProfile AutomaticDeploymentCEF OpenAzureInformationProtection OpenAzureActivityLog OpenIotPricingModel OpenPolicyAssignment OpenAllAssignmentsBlade OpenCreateDataCollectionRule |
| policyDefinitionGuid | Sznurek | Wymagane w przypadku używania typu łącza OpenPolicyAssignment. Dla łączników opartych na zasadach definiuje identyfikator GUID wbudowanej definicji polityki. |
| assignMode | ENUM | Opcjonalny. W przypadku łączników opartych na zasadach definiuje tryb przypisywania jako jedną z następujących wartości: Initiative, Policy |
| typRegułyZbieraniaDanych | ENUM | Opcjonalny. W przypadku łączników opartych na kontrolerze domeny definiuje typ reguły zbierania danych jako jeden z następujących: SecurityEvent, ForwardEvent |
metadane
Ta sekcja zawiera metadane w interfejsie użytkownika łącznika danych w obszarze Opis .
| Wartość kolekcji | Typ | Opis |
|---|---|---|
| rodzaj | Sznurek | Definiuje rodzaj szablonu ARM, który tworzysz. Zawsze używaj dataConnector. |
| źródłowej | Sznurek | Opisuje źródło danych przy użyciu następującej składni: {"kind":struna"name":struna} |
| autor | Sznurek | Opisuje autora łącznika danych przy użyciu następującej składni: {"name":struna} |
| wsparcie | Sznurek | Opisz obsługę łącznika danych przy użyciu następującej składni: {"tier":struna"name":struna"email":struna"link":Ciąg adresu URL} |
Uprawnienia
| Wartość tablicy | Typ | Opis |
|---|---|---|
| urząd celny | Sznurek | Opisuje wszelkie uprawnienia niestandardowe wymagane dla połączenia danych w następującej składni: {"name":ciąg,"description":struna} Przykład: wartość celna jest wyświetlana w sekcji Wymagania wstępne usługi Microsoft Sentinel z niebieską ikoną informacyjną. W przykładzie usługi GitHub jest to skorelowane z wierszem Klucz osobistego tokenu interfejsu API usługi GitHub: potrzebujesz dostępu do osobistego tokenu usługi GitHub... |
| licenses | ENUM | Definiuje wymagane licencje jako jedną z następujących wartości: OfficeIRM,OfficeATP, Office365, AadP1P2AatpMcasMdatp, , , , MtpIoT Przykład: wartość licencji jest wyświetlana w usłudze Microsoft Sentinel jako : Licencja: Wymagana usługa Azure AD — wersja Premium P2 |
| resourceProvider | resourceProvider | Opisuje wszelkie wymagania wstępne dotyczące zasobu platformy Azure. Przykład: wartość resourceProvider jest wyświetlana w sekcji Wymagania wstępne usługi Microsoft Sentinel jako: Obszar roboczy: wymagane jest uprawnienie do odczytu i zapisu. Klucze: wymagane są uprawnienia do odczytu kluczy udostępnionych dla obszaru roboczego. |
| najemca | tablica wartości ENUM Przykład: "tenant": ["GlobalADmin","SecurityAdmin"] |
Definiuje wymagane uprawnienia jako co najmniej jedną z następujących wartości: "GlobalAdmin", , "SecurityAdmin", "SecurityReader""InformationProtection" Przykład: wyświetla wartość dzierżawy w Microsoft Sentinel jako: Uprawnienia dzierżawy: Wymagane Global Administrator lub Security Administrator dla dzierżawy obszaru roboczego |
dostawca zasobów
| wartość podtablicy | Typ | Opis |
|---|---|---|
| dostawca | ENUM | Opisuje dostawcę zasobów z jedną z następujących wartości: - Microsoft.OperationalInsights/workspaces - Microsoft.OperationalInsights/solutions- Microsoft.OperationalInsights/workspaces/datasources- microsoft.aadiam/diagnosticSettings- Microsoft.OperationalInsights/workspaces/sharedKeys- Microsoft.Authorization/policyAssignments |
| providerDisplayName | Sznurek | Element listy w obszarze Wymagania wstępne, który będzie wyświetlać czerwony "x" lub zielony znacznik po zweryfikowaniu wymaganych uprawnień na stronie łącznika. Przykład "Workspace" |
| tekstUprawnieńDoWyświetlenia | Sznurek | Wyświetlanie tekstu dla uprawnień do odczytu, zapisu lub odczytu i zapisu , które powinny odpowiadać wartościom skonfigurowanym w wymaganychpermisjach |
| requiredPermissions | {"action":Boolean,"delete":Bool,"read":Boolean,"write":Boolean} |
Opisuje minimalne uprawnienia wymagane dla łącznika. |
| zakres | ENUM | Opisuje zakres łącznika danych jako jedną z następujących wartości: "Subscription", , "ResourceGroup""Workspace" |
przykładoweZapytania
| wartość tablicy | Typ | Opis |
|---|---|---|
| opis | Sznurek | Opis opisowy przykładowego zapytania. Przykład: Top 10 vulnerabilities detected |
| zapytanie | Sznurek | Przykładowe zapytanie używane do pobierania danych określonego typu. Przykład: {{graphQueriesTableName}}\n | sort by TimeGenerated\n | take 10 |
Konfigurowanie innych opcji linków
Aby zdefiniować link wbudowany przy użyciu języka Markdown, użyj poniższego przykładu. Tutaj link znajduje się w opisie instrukcji:
{
"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)"
}
Aby zdefiniować link jako szablon ARM, użyj poniższego przykładu jako wskazówki:
{
"title": "Azure Resource Manager (ARM) template",
"description": "1. Click the **Deploy to Azure** button below.\n\n\t[]({URL to custom ARM template})"
}
Weryfikowanie doświadczenia użytkownika strony łącznika danych
Wykonaj następujące kroki, aby wygenerować i zweryfikować doświadczenie użytkownika łącznika.
- Dostęp do narzędzia testowego można uzyskać pod tym adresem URL — https://aka.ms/sentineldataconnectorvalidateurl
- Przejdź do usługi Microsoft Sentinel —> łączniki danych
- Kliknij przycisk "importuj" i wybierz plik JSON, który zawiera tylko sekcję
connectorUiConfigtwojego łącznika danych.
Aby uzyskać więcej informacji na temat tego narzędzia do walidacji, zobacz Instrukcje dotyczące tworzenia łącznika w naszym przewodniku kompilacji usługi GitHub.
Uwaga / Notatka
Ponieważ parametr instrukcji APIKey jest specyficzny dla łącznika bez kodu, tymczasowo usuń tę sekcję, aby użyć narzędzia sprawdzania poprawności lub zakończy się niepowodzeniem.
Skonfiguruj ustawienia odpytywania łącznika
W tej sekcji opisano konfigurację sposobu sondowania danych ze źródła danych dla łącznika danych bez kodu.
Poniższy kod przedstawia składnię pollingConfig sekcji pliku konfiguracji CCP.
"pollingConfig": {
"auth": {
},
"request": {
},
"response": {
},
"paging": {
}
}
Sekcja pollingConfig zawiera następujące właściwości:
| Nazwa | Typ | Opis |
|---|---|---|
| Auth | Sznurek | Opisuje właściwości uwierzytelniania do odpytywania danych. Aby uzyskać więcej informacji, zobacz Konfiguracja uwierzytelniania. |
| auth.authType | Sznurek | Obowiązkowy. Definiuje typ uwierzytelniania, zagnieżdżony wewnątrz obiektu auth, jako jedną z następujących wartości: Basic, APIKey, OAuth2 |
| prośba | Zagnieżdżony kod JSON | Obowiązkowy. Opisuje ładunek żądania do ankietowania danych, na przykład punkt końcowy interfejsu API. Aby uzyskać więcej informacji, zobacz konfiguracja żądania. |
| odpowiedź | Zagnieżdżony kod JSON | Obowiązkowy. Opisuje obiekt odpowiedzi i zagnieżdżony komunikat zwracany przez interfejs API podczas sondowania danych. Aby uzyskać więcej informacji, zobacz konfiguracja odpowiedzi. |
| stronicowanie | Zagnieżdżony kod JSON | Opcjonalny. Opisuje ładunek stronicowania podczas sondowania danych. Aby uzyskać więcej informacji, zobacz Konfiguracja stronicowania. |
Aby uzyskać więcej informacji, zobacz Przykładowy kod pollingConfig.
Konfiguracja uwierzytelniania
Sekcja auth konfiguracji pollingConfig zawiera następujące parametry, w zależności od typu zdefiniowanego w elemecie authType :
Podstawowe parametry authType
| Nazwa | Typ | Opis |
|---|---|---|
| Nazwa użytkownika | Sznurek | Obowiązkowy. Definiuje nazwę użytkownika. |
| Hasło | Sznurek | Obowiązkowy. Definiuje hasło użytkownika. |
Parametry typu uwierzytelniania klucza API
| Nazwa | Typ | Opis |
|---|---|---|
| APIKeyName | Sznurek | Opcjonalny. Definiuje nazwę klucza interfejsu API jako jedną z następujących wartości: - XAuthToken - Authorization |
| IsAPIKeyInPostPayload | Boolean | Określa, gdzie jest zdefiniowany klucz interfejsu API. Prawda: klucz interfejsu API jest zdefiniowany w ładunku żądania POST Fałsz: Klucz API zdefiniowany jest w nagłówku |
| APIKeyIdentifier | Sznurek | Opcjonalny. Definiuje nazwę identyfikatora klucza interfejsu API. Na przykład gdzie autoryzacja jest zdefiniowana jako "Authorization": "token <secret>", ten parametr jest zdefiniowany jako: {APIKeyIdentifier: “token”}) |
Parametry typu autoryzacji OAuth2
Platforma łącznika bez kodu obsługuje udzielanie kodu autoryzacji OAuth 2.0.
Typ udzielania kodu autoryzacji jest używany przez poufnych i publicznych klientów do wymiany kodu autoryzacji dla tokenu dostępu.
Po powrocie użytkownika do klienta za pośrednictwem adresu URL przekierowania aplikacja pobierze kod autoryzacji z adresu URL i użyje go do żądania tokenu dostępu.
| Nazwa | Typ | Opis |
|---|---|---|
| Nazwa przepływu | Sznurek | Obowiązkowy. Definiuje przepływ OAuth2. Obsługiwana wartość: AuthCode — wymaga przepływu autoryzacji |
| AccessToken | Sznurek | Opcjonalny. Definiuje token dostępu OAuth2, który ma zastosowanie, gdy token dostępu nie wygaśnie. |
| AccessTokenPrepend | Sznurek | Opcjonalny. Definiuje prepend tokenu dostępu OAuth2. Wartość domyślna to Bearer. |
| RefreshToken | Sznurek | Obowiązkowe dla typów uwierzytelniania OAuth2. Określa token odświeżania OAuth2. |
| TokenEndpoint | Sznurek | Obowiązkowe dla typów uwierzytelniania OAuth2. Definiuje punkt końcowy usługi tokenu OAuth2. |
| Punkt autoryzacji | Sznurek | Opcjonalny. Definiuje punkt końcowy usługi autoryzacji OAuth2. Używane tylko podczas wprowadzania lub podczas odnawiania tokenu odświeżania. |
| Punkt końcowy przekierowania | Sznurek | Opcjonalny. Definiuje punkt końcowy przekierowania podczas wdrażania. |
| AccessTokenExpirationDateTimeInUtc | Sznurek | Opcjonalny. Definiuje data/godzina wygaśnięcia tokenu dostępu w formacie UTC. Istotne w przypadku, gdy token dostępu nie wygaśnie, a zatem ma dużą datę/godzinę w formacie UTC lub gdy token dostępu ma dużą datę/godzinę wygaśnięcia. |
| RefreshTokenExpirationDateTimeInUtc | Sznurek | Obowiązkowe dla typów uwierzytelniania OAuth2. Definiuje data/godzina wygaśnięcia tokenu odświeżania w formacie UTC. |
| TokenEndpointHeaders | Ciąg słownika<, obiekt> | Opcjonalny. Definiuje nagłówki podczas wywoływania punktu dostępowego usługi tokenu OAuth2. Zdefiniuj ciąg w formacie serializowanym dictionary<string, string> : {'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
| AuthorizationEndpointHeaders | Słownik<string, object> | Opcjonalny. Definiuje nagłówki podczas wywoływania punktu końcowego usługi autoryzacji OAuth2. Używane tylko podczas wdrażania lub podczas odnawiania tokenu odświeżania. Zdefiniuj ciąg w formacie serializowanym dictionary<string, object> : {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... } |
| Parametry zapytania punktu końcowego autoryzacji | Słownik<string, object> | Opcjonalny. Definiuje parametry zapytania podczas wywoływania punktu końcowego usługi autoryzacji OAuth2. Używane tylko podczas procedury wdrażania lub odnawiania tokenu do odświeżania. Zdefiniuj ciąg w formacie serializowanym dictionary<string, object> : {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... } |
| TokenEndpointQueryParameters | Ciąg słownika<, obiekt> | Opcjonalny. Zdefiniuj parametry zapytania podczas wywoływania punktu końcowego usługi tokenu OAuth2. Zdefiniuj ciąg w formacie serializowanym dictionary<string, object> : {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... } |
| IsTokenEndpointPostPayloadJson | Boolean | Opcjonalnie wartość domyślna to false. Określa, czy parametry zapytania są w formacie JSON i ustawiane w ładunku POST żądania. |
| IsClientSecretInHeader | Boolean | Opcjonalnie wartość domyślna to false. Określa, czy client_id wartości i client_secret są zdefiniowane w nagłówku, podobnie jak w schemacie uwierzytelniania podstawowego, zamiast w ładunku POST. |
| RefreshTokenLifetimeinSecAttributeName | Sznurek | Opcjonalny. Definiuje nazwę atrybutu z odpowiedzi punktu końcowego tokenu, określając okres istnienia tokenu odświeżania w sekundach. |
| IsJwtBearerFlow | Boolean | Opcjonalnie wartość domyślna to false. Określa, czy używasz JWT. |
| JwtHeaderInJson | Ciąg słownika<, obiekt> | Opcjonalny. Zdefiniuj nagłówki JWT w formacie JSON. Zdefiniuj ciąg w formacie serializowanym dictionary<string, object> : {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>...} |
| JwtClaimsInJson | Słownik<string, object> | Opcjonalny. Definiuje oświadczenia JWT w formacie JSON. Zdefiniuj ciąg w formacie serializowanym dictionary<string, object> : {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ...} |
| JwtPem | Sznurek | Opcjonalny. Definiuje klucz tajny w formacie PEM PKcs1: '-----BEGIN RSA PRIVATE KEY-----\r\n{privatekey}\r\n-----END RSA PRIVATE KEY-----\r\n'Pamiętaj, aby kod '\r\n' pozostał na swoim miejscu. |
| RequestTimeoutInSeconds | Integer | Opcjonalny. Określa limit czasu w sekundach podczas wywoływania punktu końcowego usługi tokenizacji. Wartość domyślna to 180 sekund |
Oto przykład sposobu, w jaki konfiguracja protokołu OAuth2 może wyglądać:
"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 sesji
| Nazwa | Typ | Opis |
|---|---|---|
| Parametry zapytań | Słownik<string, object> | Opcjonalny. Lista parametrów zapytania w formacie serializowanym dictionary<string, string> : {'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
| IsPostPayloadJson | Boolean | Opcjonalny. Określa, czy parametry zapytania są w formacie JSON. |
| nagłówków | Ciąg słownika<, obiekt> | Opcjonalny. Definiuje nagłówek używany podczas wywoływania punktu końcowego w celu pobrania identyfikatora sesji oraz podczas wywoływania interfejsu API punktu końcowego. Zdefiniuj ciąg w formacie serializowanym dictionary<string, string> : {'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
| SessionTimeoutInMinutes | Sznurek | Opcjonalny. Definiuje limit czasu sesji w minutach. |
| SessionIdName | Sznurek | Opcjonalny. Definiuje nazwę identyfikatora sesji. |
| SessionLoginRequestUri | Sznurek | Opcjonalny. Definiuje URI dla żądania logowania do sesji. |
Konfiguracja żądania
Sekcja request konfiguracji pollingConfig zawiera następujące parametry:
| Nazwa | Typ | Opis |
|---|---|---|
| apiEndpoint | Sznurek | Obowiązkowy. Definiuje punkt końcowy do ściągania danych. |
| httpMethod | Sznurek | Obowiązkowy. Definiuje metodę interfejsu API: GET lub POST |
| queryTimeFormat | Łańcuch znaków lub UnixTimestamp lub UnixTimestampInMills | Obowiązkowy. Definiuje format używany do definiowania czasu zapytania. Ta wartość może być ciągiem lub w formacie UnixTimestamp lub UnixTimestampInMills , aby wskazać czas rozpoczęcia i zakończenia zapytania w pliku UnixTimestamp. |
| startTimeAttributeName | Sznurek | Opcjonalny. Definiuje nazwę atrybutu definiującego czas rozpoczęcia zapytania. |
| endTimeAttributeName | Sznurek | Opcjonalny. Definiuje nazwę atrybutu definiującego czas zakończenia zapytania. |
| queryTimeIntervalAttributeName | Sznurek | Opcjonalny. Definiuje nazwę atrybutu definiującego interwał czasu zapytania. |
| queryTimeIntervalDelimiter | Sznurek | Opcjonalny. Definiuje ogranicznik interwału czasu zapytania. |
| queryWindowInMin | Integer | Opcjonalny. Definiuje dostępne okno zapytania w minutach. Wartość minimalna: 5 |
| queryParameters | Słownik<ciąg, obiekt> | Opcjonalny. Definiuje parametry przekazywane w zapytaniu w ścieżce eventsJsonPaths . Zdefiniuj ciąg w formacie serializowanym dictionary<string, string> : {'<attr_name>': '<val>', '<attr_name>': '<val>'... }. |
| szablonParametrówZapytania | Sznurek | Opcjonalny. Definiuje szablon parametrów zapytania do użycia podczas przekazywania parametrów zapytania w zaawansowanych scenariuszach. Przykład: "queryParametersTemplate": "{'cid': 1234567, 'cmd': 'reporting', 'format': 'siem', 'data': { 'from': '{_QueryWindowStartTime}', 'to': '{_QueryWindowEndTime}'}, '{_APIKeyName}': '{_APIKey}'}" {_QueryWindowStartTime} i {_QueryWindowEndTime} są obsługiwane tylko w parametrach queryParameters i queryParametersTemplate żądania. {_APIKeyName} i {_APIKey} są obsługiwane tylko w parametrze queryParametersTemplate żądania. |
| isPostPayloadJson | Boolean | Opcjonalny. Określa, czy ładunek POST jest w formacie JSON. |
| rateLimitQPS | Podwójny | Opcjonalny. Definiuje liczbę wywołań lub zapytań dozwolonych w ciągu sekundy. |
| timeoutInSeconds | Integer | Opcjonalny. Definiuje limit czasu żądania w sekundach. |
| retryCount | Integer | Opcjonalny. Definiuje liczbę ponownych prób żądania, jeśli zajdzie potrzeba. |
| Nagłówki | Ciąg słownika<, obiekt> | Opcjonalny. Definiuje wartość nagłówka żądania w formacie serializowanym dictionary<string, object> : {'<attr_name>': '<serialized val>', '<attr_name>': '<serialized val>'... } |
Konfiguracja odpowiedzi
Sekcja response konfiguracji pollingConfig zawiera następujące parametry:
Poniższy kod przedstawia przykład wartości eventsJsonPaths dla komunikatu najwyższego poziomu:
"eventsJsonPaths": [
"$"
]
Konfiguracja paginacji
Sekcja paging konfiguracji pollingConfig zawiera następujące parametry:
| Nazwa | Typ | Opis |
|---|---|---|
| pagingType | Sznurek | Obowiązkowy. Określa typ stronicowania do użycia w wynikach jako jedną z następujących wartości: None, , LinkHeaderNextPageToken, NextPageUrlOffset |
| linkHeaderTokenJsonPath | Sznurek | Opcjonalny. Definiuje ścieżkę JSON prowadzącą do nagłówka linku w odpowiedzi JSON, gdy element LinkHeader nie został zdefiniowany w nagłówku odpowiedzi. |
| nextPageTokenJsonPath | Sznurek | Opcjonalny. Definiuje ścieżkę do następnego tokenu strony JSON. |
| hasNextFlagJsonPath | Sznurek | Opcjonalny. Definiuje ścieżkę do atrybutu flagi HasNextPage . |
| nextPageTokenResponseHeader | Sznurek | Opcjonalny. Definiuje nazwę nagłówka tokenu następnej strony w odpowiedzi. |
| nextPageParaName | Sznurek | Opcjonalny. Określa nazwę następnej strony w żądaniu. |
| nextPageRequestHeader | Sznurek | Opcjonalny. Określa nazwę nagłówka następnej strony w żądaniu. |
| nextPageUrl | Sznurek | Opcjonalny. Określa adres URL następnej strony , jeśli różni się on od początkowego adresu URL żądania. |
| parametry zapytania następnej strony URL | Sznurek | Opcjonalny. Określa parametry zapytania adresu URL następnej strony , jeśli różnią się one od adresu URL początkowego żądania. Zdefiniuj ciąg w formacie serializowanym dictionary<string, object> : {'<attr_name>': <val>, '<attr_name>': <val>... } |
| offsetParaName | Sznurek | Opcjonalny. Definiuje nazwę parametru przesunięcia. |
| pageSizeParaName | Sznurek | Opcjonalny. Definiuje nazwę parametru rozmiaru strony. |
| Pagesize | Integer | Definiuje rozmiar stronicowania. |
Przykładowy kod pollingConfig
Poniższy kod przedstawia przykład sekcji pollingConfig pliku konfiguracji 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": [
"$"
]
}
}
Wdróż łącznik w usłudze Microsoft Sentinel i rozpocznij importowanie danych
Po utworzeniu pliku konfiguracji JSON, w tym zarówno interfejsu użytkownika , jak i konfiguracji sondowania , wdróż łącznik w obszarze roboczym usługi Microsoft Sentinel.
Użyj jednej z następujących opcji, aby wdrożyć łącznik danych.
Wskazówka
Zaletą wdrażania za pośrednictwem szablonu usługi Azure Resource Manager (ARM) jest to, że kilka wartości jest wbudowanych w szablon i nie trzeba ich definiować ręcznie w wywołaniu interfejsu API.
Zawijaj kolekcje konfiguracji JSON w szablonie ARM, aby wdrożyć łącznik. Aby upewnić się, że łącznik danych zostanie wdrożony w prawidłowym obszarze roboczym, pamiętaj, aby zdefiniować obszar roboczy w szablonie usługi ARM lub wybrać obszar roboczy podczas wdrażania szablonu usługi ARM.
Przygotuj plik JSON szablonu ARM dla łącznika. Zobacz na przykład następujące pliki JSON szablonu ARM:
- Łącznik danych w rozwiązaniu Slack
- Łącznik danych w rozwiązaniu GitHub
W witrynie Azure Portal wyszukaj pozycję Wdróż szablon niestandardowy.
Na stronie Wdrożenie niestandardowe wybierz pozycję Skompiluj własny szablon w edytorze>Załaduj plik. Przejdź do lokalnego szablonu usługi ARM i wybierz go, a następnie zapisz zmiany.
Wybierz subskrypcję i grupę zasobów, a następnie wprowadź obszar roboczy usługi Log Analytics, w którym chcesz wdrożyć łącznik niestandardowy.
Wybierz pozycję Przegląd i utwórz, aby wdrożyć łącznik niestandardowy w usłudze Microsoft Sentinel.
W usłudze Microsoft Sentinel przejdź do strony Łączniki danych , wyszukaj nowy łącznik. Skonfiguruj je, aby rozpocząć pozyskiwanie danych.
Aby uzyskać więcej informacji, zobacz Wdrażanie szablonu lokalnego w dokumentacji usługi Azure Resource Manager.
Skonfiguruj łącznik danych, aby połączyć źródło danych i rozpocząć pozyskiwanie danych do usługi Microsoft Sentinel. Możesz nawiązać połączenie ze źródłem danych za pośrednictwem portalu, tak jak w przypadku wbudowanych łączników danych lub za pośrednictwem interfejsu API.
Gdy łączysz się przy użyciu witryny Azure Portal, dane użytkownika są wysyłane automatycznie. Podczas nawiązywania połączenia za pośrednictwem interfejsu API należy wysłać odpowiednie parametry uwierzytelniania w wywołaniu interfejsu API.
- Nawiązywanie połączenia za pośrednictwem witryny Azure Portal
- Nawiązywanie połączenia za pośrednictwem interfejsu API
Na stronie łącznika danych usługi Microsoft Sentinel postępuj zgodnie z podanymi instrukcjami, aby nawiązać połączenie z łącznikiem danych.
Strona łącznika danych w usłudze Microsoft Sentinel jest kontrolowana przez konfigurację InstrukcjeKros w
connectorUiConfigelemekcie pliku konfiguracji JSON PROTOKOŁU KPI . Jeśli masz problemy z połączeniem interfejsu użytkownika, upewnij się, że masz poprawną konfigurację dla typu uwierzytelniania.W usłudze Microsoft Sentinel przejdź do strony Dzienniki i sprawdź, czy dzienniki z twojego źródła danych przepływają do obszaru roboczego.
Jeśli nie widzisz danych przesyłanych do usługi Microsoft Sentinel, sprawdź dokumentację źródła danych i zasoby rozwiązywania problemów, sprawdź szczegóły konfiguracji i sprawdź łączność. Aby uzyskać więcej informacji, zobacz Monitorowanie kondycji łączników danych.
Odłączanie łącznika
Jeśli nie potrzebujesz już danych łącznika, odłącz łącznik, aby zatrzymać przepływ danych.
Użyj jednej z poniższych metod:
Azure Portal: na stronie łącznika danych usługi Microsoft Sentinel wybierz pozycję Rozłącz.
Interfejs API: użyj interfejsu API DISCONNECT , aby wysłać wywołanie PUT z pustą treścią do następującego 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
Dalsze kroki
Jeśli jeszcze tego nie zrobiłeś, udostępnij nowy łącznik danych bez kodu społeczności usługi Microsoft Sentinel. Utwórz rozwiązanie dla łącznika danych i udostępnij je w witrynie Microsoft Sentinel Marketplace.
Aby uzyskać więcej informacji, zobacz