[Przestarzałe] Tworzenie starszego łącznika bez kodu dla usługi Microsoft Sentinel
Ważne
Zbieranie dzienników z wielu urządzeń i urządzeń jest teraz obsługiwane przez format Common Event Format (CEF) za pośrednictwem amA, dziennika systemowego za pośrednictwem usługi 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ą, starsząą wersję.
FIRMA PARTNERS zapewnia partnerom, zaawansowanym użytkownikom i deweloperom możliwość tworzenia łączników niestandardowych, łączenia ich i pozyskiwania danych z usługą Microsoft Sentinel. Łączniki utworzone za pośrednictwem interfejsu API, szablonu usługi ARM lub jako rozwiązania w centrum zawartości usługi Microsoft Sentinel można wdrażać za pośrednictwem interfejsu API, szablonu usługi ARM.
Łą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 z ustawieniami sposobu, w jaki strona łącznika danych w usłudze Microsoft Sentinel wygląda wraz z ustawieniami sondowania definiującymi 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 USŁUGI CCP i nawiązać połączenie ze źródłem danych z usługi Microsoft Sentinel:
- Konfigurowanie interfejsu użytkownika łącznika
- Konfigurowanie ustawień sondowania łącznika
- Wdrażanie łącznika w obszarze roboczym usługi Microsoft Sentinel
- Łączenie usługi Microsoft Sentinel ze źródłem danych i rozpoczynanie pozyskiwania danych
W tym artykule opisano składnię używaną w konfiguracjach i procedurach JSON DLA PROTOKOŁU JSON dla wdrożenia łącznika za pośrednictwem interfejsu API, szablonu usługi ARM lub rozwiązania usługi 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
Niestandardowy łącznik KPI 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 ORGANIZACJI jako przykłady lub pobierz przykładowy szablon, DataConnector_API_CCP_template.json (wersja zapoznawcza).
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 łącznika danych.
- Logo. Ikona wyświetlana dla łącznika danych. Dostosowanie tego problemu jest możliwe tylko w przypadku wdrażania w ramach 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 |
---|---|---|
availability | { "status": 1, "isPreview": Boolowski} |
stan: 1 Wskazuje, że łącznik jest ogólnie dostępny dla klientów. isPreview Wskazuje, czy sufiks (wersja zapoznawcza) ma być dołączany do nazwy łącznika. |
connectivityCriteria | { "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 | String | 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 | String | 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 . Na przykład: TableName_CL . |
instructionsSteps (instrukcjeKrok) | instrukcjaSteps[] | 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. |
permissions | 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 | String | 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 . |
title | String | Tytuł wyświetlany na stronie łącznika danych. |
Łączenie wszystkich tych elementów jest skomplikowane. Użyj narzędzia sprawdzania poprawności środowiska użytkownika strony łącznika, aby przetestować składniki, które są połączone.
dataTypes
Wartość tablicy | Type | opis |
---|---|---|
name | String | Opis zrozumiały dla zmiennejlastDataReceivedQuery , w tym obsługa zmiennej. Przykład: {{graphQueriesTableName}} |
lastDataReceivedQuery | String | 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 | Type | Opis |
---|---|---|
metricName | String | Zrozumiała nazwa grafu. Przykład: Total data received |
legenda | String | Ciąg wyświetlany w legendzie po prawej stronie wykresu, w tym odwołanie do zmiennej. Przykład: {{graphQueriesTableName}} |
baseQuery | String | Zapytanie, które filtruje pod kątem odpowiednich zdarzeń, w tym odwołanie do zmiennej. Przykład: TableName_CL | where ProviderName == "myprovider" lub {{graphQueriesTableName}} |
instrukcjeKroki
Ta sekcja zawiera parametry definiujące zestaw instrukcji wyświetlanych na stronie łącznika danych w usłudze Microsoft Sentinel.
instrukcje
Przedstawia grupę instrukcji z różnymi opcjami jako parametrami i możliwością zagnieżdżania większej liczby instrukcjiKrok w grupach.
Parametr | Właściwość Tablica | 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. |
InstrukcjaStepsGroup | 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 symbolu zastępczego, zdefiniuj dodatkową tablicę o nazwie userRequestPlaceHoldersInput
w sekcji Instrukcje w pliku konfiguracyjnym JSON USŁUGI CCP 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:
Nazwisko | Pisz | Opis |
---|---|---|
Tekst wyświetlany | String | Definiuje wartość wyświetlaną pola tekstowego, która jest wyświetlana użytkownikowi podczas nawiązywania połączenia. |
RequestObjectKey | String | 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 | String | 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 | String | Definiuje nazwę parametru zastępczego w pliku szablonu JSON. Może to być dowolna unikatowa wartość, taka jak {{placeHolder}} . |
Etykieta do kopiowania
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 | Type | Opis |
---|---|---|
fillWith | ENUM | Opcjonalny. Tablica zmiennych środowiskowych używanych do wypełniania symbolu zastępczego. Rozdziel wiele symboli zastępczych przecinkami. Na przykład: {0},{1} . Obsługiwane wartości: workspaceId , , primaryKey workspaceName , , MicrosoftAwsAccount subscriptionId |
etykieta | String | Definiuje tekst etykiety powyżej pola tekstowego. |
wartość | String | Definiuje wartość, która ma być obecna w polu tekstowym, obsługuje symbole zastępcze. |
Wierszy | Wiersze | Opcjonalny. Definiuje wiersze w obszarze interfejsu użytkownika. Domyślnie ustaw wartość 1. |
wideLabel | Wartość logiczna | 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 | Type | Opis |
---|---|---|
text | String | Zdefiniuj tekst do wyświetlenia w wiadomości. |
widoczny | Wartość logiczna | Określa, czy komunikat jest wyświetlany. |
Wbudowany | Wartość logiczna | Określa sposób wyświetlania komunikatu informacyjnego. - true : (Zalecane) Wyświetla komunikat informacyjny osadzony w instrukcjach. - false : Dodaje niebieskie tło. |
InstrukcjaStepsGroup
Oto przykład rozszerzalnej grupy instrukcji:
Wartość tablicy | Type | Opis |
---|---|---|
title | String | Definiuje tytuł kroku instrukcji. |
canCollapseAllSections | Wartość logiczna | Opcjonalny. Określa, czy sekcja jest zwijanym akordeonem, czy nie. |
noFxPadding | Wartość logiczna | Opcjonalny. Jeśli true parametr zmniejsza dopełnienie wysokości, aby zaoszczędzić miejsce. |
Rozszerzony | Wartość logiczna | Opcjonalny. Jeśli true wartość jest wyświetlana jako rozwinięta 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 | Type | Opis |
---|---|---|
linkType | ENUM | Określa typ łącza jako jedną z następujących wartości: InstallAgentOnWindowsVirtualMachine InstallAgentOnWindowsNonAzure InstallAgentOnLinuxVirtualMachine InstallAgentOnLinuxNonAzure OpenSyslogSettings OpenCustomLogsSettings OpenWaf OpenAzureFirewall OpenMicrosoftAzureMonitoring OpenFrontDoors OpenCdnProfile AutomaticDeploymentCEF OpenAzureInformationProtection OpenAzureActivityLog OpenIotPricingModel OpenPolicyAssignment OpenAllAssignmentsBlade OpenCreateDataCollectionRule |
policyDefinitionGuid | String | Wymagane w przypadku używania linku OpenPolicyAssignment . W przypadku łączników opartych na zasadach definiuje identyfikator GUID wbudowanej definicji zasad. |
assignMode | ENUM | Opcjonalny. W przypadku łączników opartych na zasadach definiuje tryb przypisywania jako jedną z następujących wartości: Initiative , Policy |
dataCollectionRuleType | 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 | Type | Opis |
---|---|---|
rodzaj | String | Definiuje rodzaj tworzonego szablonu usługi ARM. Zawsze używaj polecenia dataConnector . |
source | String | Opisuje źródło danych przy użyciu następującej składni: { "kind": struna"name": struna} |
autor | String | Opisuje autora łącznika danych przy użyciu następującej składni: { "name": struna} |
wsparcie | String | 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 | Type | Opis |
---|---|---|
urząd celny | String | Opisuje wszelkie uprawnienia niestandardowe wymagane dla połączenia danych w następującej składni: { "name": string, "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... |
Licencje | ENUM | Definiuje wymagane licencje jako jedną z następujących wartości: OfficeIRM ,OfficeATP , Office365 , AadP1P2 Aatp Mcas Mdatp , , , , Mtp IoT Przykład: wartość licencji jest wyświetlana w usłudze Microsoft Sentinel jako: Licencja: Wymagana 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. |
tenant | 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 usłudze Microsoft Sentinel jako: Uprawnienia dzierżawy : Wymagane Global Administrator lub Security Administrator w dzierżawie obszaru roboczego |
resourceProvider
wartość tablicy podrzędnej | Type | 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 | String | Element listy w obszarze Wymagania wstępne , który będzie wyświetlać czerwony znacznik wyboru "x" lub zielony po zweryfikowaniu wymaganychpermisji na stronie łącznika. Przykład "Workspace" |
permissionsDisplayText | String | Wyświetlanie tekstu dla uprawnień do odczytu, zapisu lub odczytu i zapisu , które powinny odpowiadać wartościom skonfigurowanym w wymaganychpermisjach |
requiredPermissions | { "action": Wartość logiczna, "delete": Wartość logiczna, "read": Wartość logiczna, "write": Boolowski} |
Opisuje minimalne uprawnienia wymagane dla łącznika. |
zakres | ENUM | Opisuje zakres łącznika danych jako jedną z następujących wartości: "Subscription" , , "ResourceGroup" "Workspace" |
sampleQueries
wartość tablicy | Type | Opis |
---|---|---|
opis | String | Opis opisowy przykładowego zapytania. Przykład: Top 10 vulnerabilities detected |
query | String | Przykładowe zapytanie używane do pobierania danych typu danych. 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 usługi ARM, użyj następującego przykładu jako przewodnika:
{
"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})"
}
Weryfikowanie środowiska użytkownika strony łącznika danych
Wykonaj następujące kroki, aby renderować i weryfikować środowisko 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
connectorUiConfig
tylko sekcję łą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
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.
Konfigurowanie ustawień sondowania łą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 PROTOKOŁU KPCH.
"pollingConfig": {
"auth": {
},
"request": {
},
"response": {
},
"paging": {
}
}
Sekcja pollingConfig
zawiera następujące właściwości:
Nazwisko | Pisz | Opis |
---|---|---|
Auth | String | Opisuje właściwości uwierzytelniania do sondowania danych. Aby uzyskać więcej informacji, zobacz Konfiguracja uwierzytelniania. |
auth.authType | String | Obowiązkowy. Definiuje typ uwierzytelniania zagnieżdżonego auth wewnątrz obiektu jako jedną z następujących wartości: Basic , , APIKey OAuth2 |
prosić | Zagnieżdżony kod JSON | Obowiązkowy. Opisuje ładunek żądania do sondowania danych, takich jak 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 zwrócony z interfejsu 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
Nazwisko | Pisz | Opis |
---|---|---|
Nazwa użytkownika | String | Obowiązkowy. Definiuje nazwę użytkownika. |
Hasło | String | Obowiązkowy. Definiuje hasło użytkownika. |
Parametry authType klucza interfejsu API
Nazwisko | Pisz | Opis |
---|---|---|
APIKeyName | String | Opcjonalny. Definiuje nazwę klucza interfejsu API jako jedną z następujących wartości: - XAuthToken - Authorization |
IsAPIKeyInPostPayload | Wartość logiczna | Określa, gdzie jest zdefiniowany klucz interfejsu API. Prawda: klucz interfejsu API jest zdefiniowany w ładunku żądania POST Fałsz: klucz interfejsu API jest zdefiniowany w nagłówku |
APIKeyIdentifier | String | 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 authType protokołu 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.
Nazwisko | Pisz | Opis |
---|---|---|
Nazwa przepływu | String | Obowiązkowy. Definiuje przepływ OAuth2. Obsługiwana wartość: AuthCode — wymaga przepływu autoryzacji |
AccessToken | String | Opcjonalny. Definiuje token dostępu OAuth2, który ma zastosowanie, gdy token dostępu nie wygaśnie. |
AccessTokenPrepend | String | Opcjonalny. Definiuje prepend tokenu dostępu OAuth2. Wartość domyślna to Bearer . |
RefreshToken | String | Obowiązkowe dla typów uwierzytelniania OAuth2. Definiuje token odświeżania OAuth2. |
TokenEndpoint | String | Obowiązkowe dla typów uwierzytelniania OAuth2. Definiuje punkt końcowy usługi tokenu OAuth2. |
AuthorizationEndpoint | String | Opcjonalny. Definiuje punkt końcowy usługi autoryzacji OAuth2. Używane tylko podczas dołączania lub podczas odnawiania tokenu odświeżania. |
PrzekierowanieEndpoint | String | Opcjonalny. Definiuje punkt końcowy przekierowania podczas dołączania. |
AccessTokenExpirationDateTimeInUtc | String | 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 | String | 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 końcowego usługi tokenu OAuth2. Zdefiniuj ciąg w formacie serializowanym dictionary<string, string> : {'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
AuthorizationEndpointHeaders | Ciąg słownika<, obiekt> | Opcjonalny. Definiuje nagłówki podczas wywoływania punktu końcowego usługi autoryzacji OAuth2. Używane tylko podczas dołączania lub podczas odnawiania tokenu odświeżania. Zdefiniuj ciąg w formacie serializowanym dictionary<string, object> : {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... } |
AuthorizationEndpointQueryParameters | Ciąg słownika<, obiekt> | Opcjonalny. Definiuje parametry zapytania podczas wywoływania punktu końcowego usługi autoryzacji OAuth2. Używane tylko podczas dołączania lub podczas odnawiania tokenu 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 | Wartość logiczna | Opcjonalnie wartość domyślna to false. Określa, czy parametry zapytania są w formacie JSON i ustawiane w ładunku POST żądania. |
IsClientSecretInHeader | Wartość logiczna | 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 | String | Opcjonalny. Definiuje nazwę atrybutu z odpowiedzi punktu końcowego tokenu, określając okres istnienia tokenu odświeżania w sekundach. |
IsJwtBearerFlow | Wartość logiczna | 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 | Ciąg słownika<, obiekt> | 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 | String | 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 zachować '\r\n' kod na miejscu. |
RequestTimeoutInSeconds | Integer | Opcjonalny. Określa limit czasu w sekundach podczas wywoływania punktu końcowego usługi tokenu. 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
Nazwisko | Pisz | Opis |
---|---|---|
Parametry zapytań | Ciąg słownika<, obiekt> | Opcjonalny. Lista parametrów zapytania w formacie serializowanym dictionary<string, string> : {'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
IsPostPayloadJson | Wartość logiczna | Opcjonalny. Określa, czy parametry zapytania są w formacie JSON. |
Nagłówki | 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 | String | Opcjonalny. Definiuje limit czasu sesji w minutach. |
SessionIdName | String | Opcjonalny. Definiuje nazwę identyfikatora sesji. |
SessionLoginRequestUri | String | Opcjonalny. Definiuje identyfikator URI żądania logowania sesji. |
Konfiguracja żądania
Sekcja request
konfiguracji pollingConfig zawiera następujące parametry:
Nazwisko | Pisz | Opis |
---|---|---|
apiEndpoint | String | Obowiązkowy. Definiuje punkt końcowy do ściągania danych. |
httpMethod | String | Obowiązkowy. Definiuje metodę interfejsu API: GET lub POST |
queryTimeFormat | Ciąg 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 | String | Opcjonalny. Definiuje nazwę atrybutu definiującego czas rozpoczęcia zapytania. |
endTimeAttributeName | String | Opcjonalny. Definiuje nazwę atrybutu definiującego czas zakończenia zapytania. |
queryTimeIntervalAttributeName | String | Opcjonalny. Definiuje nazwę atrybutu definiującego interwał czasu zapytania. |
queryTimeIntervalDelimiter | String | Opcjonalny. Definiuje ogranicznik interwału czasu zapytania. |
queryWindowInMin | Integer | Opcjonalny. Definiuje dostępne okno zapytania w minutach. Wartość minimalna: 5 |
queryParameters | Ciąg słownika<, 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>'... } . |
queryParametersTemplate | String | Opcjonalny. Definiuje szablon parametrów zapytania do użycia podczas przekazywania parametrów zapytania w zaawansowanych scenariuszach. Na 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 | Wartość logiczna | Opcjonalny. Określa, czy ładunek POST jest w formacie JSON. |
rateLimitQPS | Liczba rzeczywista | 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 do wypróbowania w razie potrzeby. |
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 stronicowania
Sekcja paging
konfiguracji pollingConfig zawiera następujące parametry:
Nazwisko | Pisz | Opis |
---|---|---|
pagingType | String | Obowiązkowy. Określa typ stronicowania do użycia w wynikach jako jedną z następujących wartości: None , , LinkHeader NextPageToken , NextPageUrl Offset |
linkHeaderTokenJsonPath | String | Opcjonalny. Definiuje ścieżkę JSON do nagłówka linku w formacie JSON odpowiedzi, jeśli LinkHeader element nie jest zdefiniowany w nagłówku odpowiedzi. |
nextPageTokenJsonPath | String | Opcjonalny. Definiuje ścieżkę do następnego tokenu strony JSON. |
hasNextFlagJsonPath | String | Opcjonalny. Definiuje ścieżkę do atrybutu flagi HasNextPage . |
nextPageTokenResponseHeader | String | Opcjonalny. Definiuje nazwę nagłówka tokenu następnej strony w odpowiedzi. |
nextPageParaName | String | Opcjonalny. Określa nazwę następnej strony w żądaniu. |
nextPageRequestHeader | String | Opcjonalny. Określa nazwę nagłówka następnej strony w żądaniu. |
nextPageUrl | String | Opcjonalny. Określa adres URL następnej strony , jeśli różni się on od początkowego adresu URL żądania. |
nextPageUrlQueryParameters | String | 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 | String | Opcjonalny. Definiuje nazwę parametru przesunięcia. |
pageSizeParaName | String | Opcjonalny. Definiuje nazwę parametru rozmiaru strony. |
Pagesize | Integer | Definiuje rozmiar stronicowania. |
Przykładowy kod pollingConfig
Poniższy kod przedstawia przykład pollingConfig
sekcji pliku konfiguracji PROTOKOŁU KPCH:
"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": [
"$"
]
}
}
Wdrażanie łącznika w usłudze Microsoft Sentinel i rozpoczynanie pozyskiwania 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.
Napiwek
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.
Opakuj kolekcje konfiguracji JSON w szablonie usługi 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 usługi ARM dla łącznika. Zobacz na przykład następujące pliki JSON szablonu usługi ARM:
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ę Przejrzyj 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
connectorUiConfig
elemekcie 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 ze ź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
Następne 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