Freigeben über


[Veraltet] Erstellen eines älteren codelosen Connectors für Microsoft Sentinel

Wichtig

Die Protokollsammlung aus vielen Appliances und Geräten wird jetzt vom Common Event Format (CEF) über AMA, Syslog über AMA oder benutzerdefinierte Protokolle über den AMA-Datenconnector in Microsoft Sentinel unterstützt. Weitere Informationen finden Sie unter Suchen Ihres Microsoft Sentinel-Datenconnectors.

Wichtig

Es gibt eine neuere Version der Codeless Connector Platform (CCP). Weitere Informationen zur neuen CCP finden Sie unter Erstellen eines codelosen Connectors (Vorschau).

Verweisen Sie auf dieses Dokument, wenn Sie einen Datenconnector basierend auf dieser älteren Legacyversion der CCP verwalten oder aktualisieren müssen.

Die CCP bietet Partnern, fortgeschrittenen Benutzer*innen und Entwickler*innen die Möglichkeit, benutzerdefinierte Connectors zu erstellen, sie zu verbinden und Daten in Microsoft Sentinel zu erfassen. Über die CCP erstellte Connectors können über API, eine ARM-Vorlage oder als Lösung im Microsoft Sentinel Content Hub bereitgestellt werden.

Connectors, die mithilfe der CCP erstellt werden, sind vollständig SaaS-basiert. Es müssen keine Dienste installiert werden. Außerdem sind Funktionen zur Systemüberwachung enthalten, und es besteht eine vollständige Unterstützung durch Microsoft Sentinel.

Erstellen Sie Ihren Datenconnector, indem Sie JSON-Konfigurationen mit Einstellungen für die Darstellung der Datenconnectorseite in Microsoft Sentinel sowie Abrufeinstellungen festlegen, die definieren, wie die Verbindung funktioniert.

Wichtig

Diese Version der Codeless Connector Platform (CCP) befindet sich in der Vorschau, wird aber auch als Legacyversion betrachtet. In den zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen finden Sie weitere rechtliche Bedingungen, die für Azure-Features gelten, die sich in der Beta- oder Vorschauversion befinden oder anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

Verwenden Sie die folgenden Schritte, um Ihren CCP-Connector zu erstellen und eine Verbindung mit Ihrer Datenquelle von Microsoft Sentinel herzustellen:

  • Konfigurieren der Benutzeroberfläche des Connectors
  • Konfigurieren der Abrufeinstellungen des Connectors
  • Bereitstellen Ihres Connectors in Ihrem Microsoft Sentinel-Arbeitsbereich
  • Herstellen einer Verbindung von Microsoft Sentinel mit Ihrer Datenquelle und Starten der Datenerfassung

In diesem Artikel werden die in den CCP-JSON-Konfigurationen verwendete Syntax und die Verfahren zur Bereitstellung Ihres Connectors über die API, eine ARM-Vorlage oder eine Microsoft Sentinel-Lösung beschrieben.

Voraussetzungen

Bevor Sie einen Connector erstellen, empfehlen wir Ihnen, sich mit der Funktionsweise Ihrer Datenquelle vertraut zu machen und zu verstehen, wie Microsoft Sentinel die Verbindung genau herstellen muss.

Sie müssen z. B. die Arten von Authentifizierung, Paginierung und API-Endpunkten verstehen, die für erfolgreiche Verbindungen erforderlich sind.

Erstellen einer JSON-Konfigurationsdatei für den Connector

Ihr benutzerdefinierter CCP-Connector verfügt über zwei primäre JSON-Abschnitte, die für die Bereitstellung erforderlich sind. Füllen Sie diese Bereiche aus, um zu definieren, wie Ihr Connector im Azure-Portal angezeigt wird und wie er Microsoft Sentinel mit Ihrer Datenquelle verbindet.

Wenn Sie dann Ihren codelosen Connector über ARM bereitstellen, umschließen Sie diese Abschnitte in der ARM-Vorlage für Datenconnectors.

Sehen Sie sich andere CCP-Datenconnectors als Beispiele an, oder laden Sie die Beispielvorlage DataConnector_API_CCP_template.json (Vorschau) herunter.

Konfigurieren der Benutzeroberfläche Ihres Connectors

In diesem Abschnitt werden die Konfigurationsoptionen beschrieben, die zum Anpassen der Benutzeroberfläche der Seite „Datenconnector“ verfügbar sind.

Die folgende Abbildung zeigt ein Beispiel für eine Datenconnectorseite, die durch Zahlen hervorgehoben wird, die den relevanten Bereichen der Benutzeroberfläche entsprechen:

Screenshot: Konnektorseite einer Datenstichprobe.

  1. Titel: Der für Ihren Datenconnector angezeigte Titel.
  2. Logo. Das für Ihren Datenconnector angezeigte Symbol. Sie können es nur anpassen, wenn Sie es als Teil einer Lösung bereitstellen.
  3. Status: Gibt an, ob Ihr Datenconnector mit Microsoft Sentinel verbunden ist.
  4. Datendiagramme: Zeigt relevante Abfragen und die Menge der in den letzten zwei Wochen erfassten Daten an.
  5. Registerkarte „Anweisungen“. Enthält den Abschnitt Voraussetzungen mit einer Liste der minimalen Prüfungen, bevor der Benutzer den Connector aktivieren kann, sowie eine Anleitung, die den Benutzer bei der Aktivierung des Connectors unterstützt. Dieser Abschnitt kann Text, Schaltflächen, Formulare, Tabellen und andere gängige Widgets enthalten, um den Prozess zu vereinfachen.
  6. Registerkarte „Nächste Schritte“: Enthält nützliche Informationen, um zu verstehen, wie Daten in den Ereignisprotokollen gefunden werden können, z. B. Beispielabfragen.

Hier sind die connectorUiConfig-Abschnitte und die Syntax, die zum Konfigurieren der Benutzeroberfläche erforderlich sind:

Eigenschaftenname Type BESCHREIBUNG
availability {
"status": 1,
"isPreview": Boolescher Wert
}

Status: 1 gibt an, dass der Connector für Kunden allgemein verfügbar ist.
isPreview gibt an, ob das Suffix (Vorschau) in den Connectornamen eingeschlossen werden soll.
connectivityCriteria {
"type": SentinelKindsV2,
"value": APIPolling
}
Ein Objekt, das definiert, wie überprüft wird, ob der Connector richtig festgelegt ist. Verwenden Sie die hier angegebenen Werte.
dataTypes dataTypes[] Eine Liste aller Datentypen für Ihren Connector und eine Abfrage zum Abrufen des Zeitpunkts des letzten Ereignisses für jeden Datentyp.
descriptionMarkdown String Eine Beschreibung für den Connector mit der Möglichkeit, Markdown-Sprachen hinzuzufügen, um sie zu verbessern.
graphQueries graphQueries[] Abfragen, die die Datenerfassung der letzten zwei Wochen im Bereich Datendiagramme anzeigen.

Stellen Sie entweder eine Abfrage für alle Datentypen des Datenconnectors oder eine andere Abfrage für die einzelnen Datentypen zur Verfügung.
graphQueriesTableName String Definiert den Namen der Log Analytics-Tabelle, aus der Daten für Ihre Abfragen gepullt werden.

Der Tabellenname kann eine beliebige Zeichenfolge sein, muss jedoch mit _CL enden. Beispiel: TableName_CL
instructionsSteps instructionSteps[] Ein Array von Widgetkomponenten, die erläutern, wie der Connector installiert wird, der auf der Registerkarte Anweisungen angezeigt wird.
metadata metadata Metadaten, die unter der Connectorbeschreibung angezeigt werden.
Berechtigungen permissions[] Die Informationen, die im Abschnitt Voraussetzungen der Benutzeroberfläche angezeigt werden, in der die Berechtigungen aufgeführt sind, die zum Aktivieren oder Deaktivieren des Connectors erforderlich sind.
publisher String Dies ist der Text, der im Abschnitt Anbieter angezeigt wird.
sampleQueries sampleQueries[] Beispielabfragen für den Kunden, um zu verstehen, wie die Daten im Ereignisprotokoll zu finden sind, die auf der Registerkarte Nächste Schritte angezeigt werden sollen.
title String Der Titel, der auf der Datenconnectorseite angezeigt wird.

Es ist kompliziert, all diese Teile zusammenzufügen. Verwenden Sie das Tool zur Überprüfung der Benutzererfahrung auf der Connectorseite, um die Komponenten zu testen, die Sie zusammengefügt haben.

dataTypes

Arraywert type BESCHREIBUNG
name String Eine aussagekräftige Beschreibung für die lastDataReceivedQuery, einschließlich der Unterstützung für eine Variable.

Beispiel: {{graphQueriesTableName}}
lastDataReceivedQuery String Eine KQL-Abfrage, die eine Zeile zurückgibt und angibt, zu welchem Zeitpunkt Daten zuletzt empfangen wurden, oder keine Daten zurückgibt, wenn keine relevanten Daten vorhanden sind.

Ein Beispiel: {{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)

graphQueries

Definiert eine Abfrage, die die Datenerfassung der letzten zwei Wochen im Bereich Datendiagramme anzeigt.

Stellen Sie entweder eine Abfrage für alle Datentypen des Datenconnectors oder eine andere Abfrage für die einzelnen Datentypen zur Verfügung.

Arraywert type BESCHREIBUNG
metricName String Ein aussagekräftiger Name für Ihren Graphen.

Beispiel: Total data received
legend String Die Zeichenfolge, die in der Legende rechts neben dem Diagramm angezeigt wird, einschließlich eines Variablenverweises.

Beispiel: {{graphQueriesTableName}}
baseQuery String Die Abfrage, die nach relevanten Ereignissen filtert, einschließlich eines Variablenverweises.

Beispiel: TableName_CL | where ProviderName == "myprovider" oder {{graphQueriesTableName}}

instructionSteps

Dieser Abschnitt enthält Parameter, die die Anweisungen definieren, die auf der Datenconnectorseite in Microsoft Sentinel angezeigt werden.

Arrayeigenschaft type BESCHREIBUNG
title String (Optional) Definiert einen Titel für Ihre Anweisungen.
description String (Optional) Definiert eine aussagekräftige Beschreibung für Ihre Anweisungen.
innerSteps Array Optional. Definiert ein Array von inneren Anweisungsschritten.
instructions Array von Anweisungen Erforderlich. Definiert ein Array von Anweisungen eines bestimmten Parametertyps.
bottomBorder Boolean Optional. Bei true wird dem Anweisungsbereich auf der Connectorseite in Microsoft Sentinel ein unterer Rand hinzugefügt.
isComingSoon Boolean Optional. Bei true wird auf der Connectorseite in Microsoft Sentinel ein In Kürze verfügbar-Titel hinzugefügt.

Anweisungen

Zeigt eine Gruppe von Anweisungen mit verschiedenen Optionen als Parameter und der Möglichkeit, weitere Anweisungsschritte in Gruppen zu schachteln, an.

Parameter Arrayeigenschaft BESCHREIBUNG
APIKey APIKey Fügen Sie Platzhalter zur JSON-Konfigurationsdatei Ihres Connectors hinzu.
CopyableLabel CopyableLabel Zeigt ein Textfeld mit der Schaltfläche „Kopieren“ am Ende an. Wenn die Schaltfläche ausgewählt ist, wird der Wert des Felds kopiert.
InfoMessage InfoMessage Definiert eine Inlineinformationsmeldung.
InstructionStepsGroup InstructionStepsGroup Zeigt eine Gruppe von Anweisungen, die optional erweiterbar oder reduzierbar sind, in einem separaten Abschnitt mit Anweisungen an.
InstallAgent InstallAgent Zeigt einen Link zu anderen Teilen von Azure an, um verschiedene Installationsanforderungen zu erfüllen.

APIKey

Möglicherweise möchten Sie eine JSON-Konfigurationsdateivorlage mit Platzhalterparametern erstellen, um sie über mehrere Connectors hinweg wiederzuverwenden. Vielleicht möchten Sie sogar einen Connector mit Daten erstellen, über den Sie derzeit nicht verfügen.

Zum Erstellen von Platzhalterparametern definieren Sie ein zusätzliches Array namens userRequestPlaceHoldersInput im Abschnitt Anweisungen Ihrer CCP-JSON-Konfigurationsdatei, indem Sie die folgende Syntax verwenden:

"instructions": [
                {
                  "parameters": {
                    "enable": "true",
                    "userRequestPlaceHoldersInput": [
                      {
                        "displayText": "Organization Name",
                        "requestObjectKey": "apiEndpoint",
                        "placeHolderName": "{{placeHolder}}"
                      }
                    ]
                  },
                  "type": "APIKey"
                }
              ]

Der userRequestPlaceHoldersInput-Parameter enthält die folgenden Attribute:

Name Typ BESCHREIBUNG
DisplayText String Definiert den Anzeigewert des Textfelds, der dem Benutzer beim Herstellen der Verbindung angezeigt wird.
RequestObjectKey String Legt die ID im Anfrorderungsabschnitt der pollingConfig fest, um den Platzhalterwert durch den vom Benutzer angegebenen Wert zu ersetzen.

Wenn Sie dieses Attribut nicht verwenden, verwenden Sie stattdessen das PollingKeyPaths-Attribut.
PollingKeyPaths String Definiert ein Array von JsonPath-Objekten, das den API-Aufruf an eine beliebige Stelle in der Vorlage weiterleitet, um einen Platzhalterwert durch einen Benutzerwert zu ersetzen.

Beispiel: "pollingKeyPaths":["$.request.queryParameters.test1"]

Wenn Sie dieses Attribut nicht verwenden, verwenden Sie stattdessen das RequestObjectKey-Attribut.
PlaceHolderName String Definiert den Namen des Platzhalterparameters in der JSON-Vorlagendatei. Dies kann ein beliebiger eindeutiger Wert sein, z. B. {{placeHolder}}.

CopyableLabel

Beispiel:

Screenshot: Schaltfläche „Wert kopieren“ in einem Feld.

Beispielcode:

{
    "parameters": {
        "fillWith": [
            "WorkspaceId",
            "PrimaryKey"
            ],
        "label": "Here are some values you'll need to proceed.",
        "value": "Workspace is {0} and PrimaryKey is {1}"
    },
    "type": "CopyableLabel"
}
Arraywert type BESCHREIBUNG
fillWith ENUM Optional. Array von Umgebungsvariablen, die zum Auffüllen eines Platzhalters verwendet werden. Trennen Sie mehrere Platzhalter durch Kommas. Beispiel: {0},{1}

Unterstützte Werte: workspaceId, workspaceName, primaryKey, MicrosoftAwsAccount, subscriptionId
label String Definiert den Text für die Bezeichnung über einem Textfeld.
value String Definiert den Wert, der im Textfeld angezeigt werden soll, unterstützt Platzhalter.
rows Zeilen Optional. Definiert die Zeilen im Benutzeroberflächenbereich. Legen Sie dies standardmäßig auf 1 fest.
wideLabel Boolean Optional. Bestimmt eine breite Bezeichnung für lange Zeichenfolgen. Legen Sie dies standardmäßig auf false fest.

InfoMessage

Hier sehen Sie ein Beispiel für eine Inlineinformationsmeldung:

Screenshot: Inlineinformationsmeldung.

Im Gegensatz dazu zeigt die folgende Abbildung eine Nicht-Inlineinformationsmeldung:

Screenshot: Nicht-Inlineinformationsmeldung.

Arraywert type BESCHREIBUNG
text String Definiert den in der Meldung anzuzeigenden Text.
visible Boolean Bestimmt, ob die Meldung angezeigt wird.
inline Boolean Bestimmt, wie die Informationsmeldung angezeigt wird.

- true: (Empfohlen) Zeigt die In den Anweisungen eingebettete Informationsmeldung an.
- false: Fügt einen blauen Hintergrund hinzu.

InstructionStepsGroup

Hier sehen Sie ein Beispiel für eine erweiterbare Anweisungsgruppe:

Screenshot: erweiterbare, zusätzliche Anweisungsgruppe.

Arraywert type BESCHREIBUNG
title String Definiert den Titel für den Anweisungsschritt.
canCollapseAllSections Boolean Optional. Bestimmt, ob es sich bei dem Abschnitt um ein reduzierbares Akkordeon handelt.
noFxPadding Boolean Optional. Bei true wird der Höhenabstand reduziert, um Platz zu sparen.
expanded Boolean Optional. Bei true erfolgt die erweiterte Anzeige.

Ein ausführliches Beispiel finden Sie in der JSON-Konfiguration des Windows DNS-Connectors.

InstallAgent

Einige InstallAgent-Typen werden als Schaltfläche angezeigt, andere als Link. Hier sehen Sie Beispiele für beides:

Screenshot: Link als Schaltfläche hinzugefügt.

Screenshot: Link als Inlinetext hinzugefügt.

Arraywerte type BESCHREIBUNG
linkType ENUM Bestimmt den Linktyp als einen der folgenden Werte:

InstallAgentOnWindowsVirtualMachine
InstallAgentOnWindowsNonAzure
InstallAgentOnLinuxVirtualMachine
InstallAgentOnLinuxNonAzure
OpenSyslogSettings
OpenCustomLogsSettings
OpenWaf
OpenAzureFirewall OpenMicrosoftAzureMonitoring
OpenFrontDoors
OpenCdnProfile
AutomaticDeploymentCEF
OpenAzureInformationProtection
OpenAzureActivityLog
OpenIotPricingModel
OpenPolicyAssignment
OpenAllAssignmentsBlade
OpenCreateDataCollectionRule
policyDefinitionGuid Zeichenfolge Erforderlich bei Verwendung des OpenPolicyAssignment-Linktyps. Definiert für richtlinienbasierte Connectors die GUID der integrierten Richtliniendefinition.
assignMode ENUM Optional. Definiert für richtlinienbasierte Connectors den Zuweisungsmodus als einen der folgenden Werte: Initiative, Policy
dataCollectionRuleType ENUM Optional. Definiert für DCR-basierte Connectors den Typ der Datensammlungsregel als einen der folgenden Werte: SecurityEvent, ForwardEvent

metadata

Dieser Abschnitt enthält Metadaten auf der Benutzeroberfläche des Datenconnectors im Bereich Beschreibung.

Sammlungswert type Beschreibung
kind String Definiert die Art der ARM-Vorlage, die Sie erstellen. Verwenden Sie immer dataConnector.
Quelle String Beschreibt Ihre Datenquelle mit der folgenden Syntax:
{
"kind":Zeichenfolge
"name":Zeichenfolge
}
author String Beschreibt den Ersteller des Datenconnectors mit der folgenden Syntax:
{
"name":Zeichenfolge
}
support String Beschreibt die Unterstützung für den Datenconnector mithilfe der folgenden Syntax:
{
"tier":Zeichenfolge,
"name":Zeichenfolge,
"email":Zeichenfolge,
"link":URL-Zeichenfolge
}

Berechtigungen

Arraywert type BESCHREIBUNG
customs String Beschreibt alle benutzerdefinierten Berechtigungen, die für Ihre Datenverbindung erforderlich sind, in der folgenden Syntax:
{
"name":string,
"description":Zeichenfolge
}

Beispiel: Der Wert Zoll wird im Abschnitt „Microsoft Sentinel-Voraussetzungen“ mit einem blauen Informationssymbol angezeigt. Im GitHub-Beispiel korreliert dies mit der Zeile Persönlicher GitHub-API-Tokenschlüssel: Sie benötigen Zugriff auf das persönliche GitHub-Token...
Lizenzen ENUM Definiert die erforderlichen Lizenzen als einen der folgenden Werte: OfficeIRM, OfficeATP, Office365, AadP1P2, Mcas, Aatp, Mdatp, Mtp, IoT

Beispiel: Der licenses-Wert wird in Microsoft Sentinel als Lizenz: Azure AD Premium P2 erforderlich angezeigt.
resourceProvider resourceProvider Beschreibt alle Voraussetzungen für Ihre Azure-Ressource.

Beispiel: Der Wert resourceProvider wird im Abschnitt „Microsoft Sentinel Voraussetzungen“ folgendermaßen angezeigt:
Arbeitsbereich: Lese- und Schreibberechtigung ist erforderlich.
Schlüssel: Es sind Leseberechtigungen für freigegebene Schlüssel für den Arbeitsbereich erforderlich.
tenant Array von ENUM-Werten
Beispiel:

"tenant": [
"GlobalADmin",
"SecurityAdmin"
]
Definiert die erforderlichen Berechtigungen als einen oder mehrere der folgenden Werte: "GlobalAdmin", "SecurityAdmin", "SecurityReader", "InformationProtection"

Beispiel: Der Wert Mandant wird in Microsoft Sentinel als „Mandantenberechtigungen: Erfordert Global Administrator oder Security Administrator für den Mandanten des Arbeitsbereichs“ angezeigt.

resourceProvider

Subarraywert type BESCHREIBUNG
Anbieter ENUM Beschreibt den Ressourcenanbieter mit einem der folgenden Werte:
- Microsoft.OperationalInsights/workspaces
- Microsoft.OperationalInsights/solutions
- Microsoft.OperationalInsights/workspaces/datasources
- microsoft.aadiam/diagnosticSettings
- Microsoft.OperationalInsights/workspaces/sharedKeys
- Microsoft.Authorization/policyAssignments
providerDisplayName String Ein Listenelement unter Voraussetzungen, das ein rotes „x“ oder ein grünes Häkchen anzeigt, wenn die requiredPermissions auf der Connectorseite überprüft werden. Beispiel: "Workspace"
permissionsDisplayText String Anzeigen von Text für Lese-, Schreib- oder Lese- und Schreibberechtigungen, die den Werten, die in requiredPermissions konfiguriert wurden, entsprechen sollen
requiredPermissions {
"action":Boolescher Wert,
"delete":Boolescher Wert,
"read":Boolescher Wert,
"write": Boolescher Wert
}
Beschreibt die Mindestberechtigungen, die für den Connector erforderlich sind.
scope ENUM Beschreibt den Bereich des Datenconnectors als einen der folgenden Werte: "Subscription", "ResourceGroup", "Workspace"

sampleQueries

Arraywert type BESCHREIBUNG
description String Eine aussagekräftige Beschreibung für die Beispielabfrage.

Beispiel: Top 10 vulnerabilities detected
query String Eine Beispielabfrage zum Abrufen der Daten des Datentyps.

Beispiel: {{graphQueriesTableName}}\n | sort by TimeGenerated\n | take 10

Verwenden Sie das folgende Beispiel, um einen Inlinelink mit Markdown zu definieren. Hier wird ein Link in einer Anleitungsbeschreibung bereitgestellt:

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

Um einen Link als ARM-Vorlage zu definieren, verwenden Sie das folgende Beispiel als Leitfaden:

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

Überprüfen der Benutzeroberfläche der Datenconnectorseite

Führen Sie die folgenden Schritte aus, um die Benutzeroberfläche des Connectors zu rendern und zu überprüfen.

  1. Auf das Testhilfsprogramm kann über diese URL „https://aka.ms/sentineldataconnectorvalidateurl“ zugegriffen werden.
  2. Wechseln Sie zu Microsoft Sentinel – > Datenconnectors.
  3. Klicken Sie auf die Schaltfläche „Importieren“, und wählen Sie eine JSON-Datei aus, die nur den connectorUiConfig-Abschnitt Ihres Datenconnectors enthält.

Weitere Informationen zu diesem Überprüfungstool finden Sie in der Anleitung Erstellen des Connectors in unserem GitHub-Buildleitfaden.

Hinweis

Da der APIKey-Anweisungsparameter für den codelosen Connector spezifisch ist, entfernen Sie diesen Abschnitt vorübergehend, um das Validierungstool zu verwenden, da sonst ein Fehler auftritt.

Konfigurieren der Abrufeinstellungen Ihres Connectors

In diesem Abschnitt wird die Konfiguration beschrieben, wie Daten aus Ihrer Datenquelle nach einem codelosen Datenconnector abgefragt werden.

Der folgende Code zeigt die Syntax des Abschnitts pollingConfig der CCP-Konfigurationsdatei an.

"pollingConfig": {
    "auth": {
    },
    "request": {
    },
    "response": {
    },
    "paging": {
    }
 }

Der Abschnitt pollingConfig enthält die folgenden Eigenschaften:

Name Typ BESCHREIBUNG
auth String Beschreibt die Authentifizierungseigenschaften zum Abfragen der Daten. Weitere Informationen finden Sie unter Authentifizierungskonfiguration.
auth.authType String Erforderlich. Definiert die Art der Authentifizierung, die innerhalb des auth-Objekts geschachtelt ist, als einen der folgenden Werte: Basic, APIKey, OAuth2
Anforderung Geschachteltes JSON Erforderlich. Beschreibt die Anforderungsnutzdaten zum Abrufen der Daten, z. B. den API-Endpunkt. Weitere Informationen finden Sie unter Anforderungskonfiguration.
response Geschachteltes JSON Erforderlich. Beschreibt das Antwortobjekt und die geschachtelte Nachricht, die beim Abrufen der Daten von der API zurückgegeben werden. Weitere Informationen finden Sie unter Antwortkonfiguration.
paging Geschachteltes JSON Optional. Beschreibt die Paginierungsnutzdaten beim Abfragen der Daten. Weitere Informationen finden Sie unter Auslagerungskonfiguration.

Weitere Informationen finden Sie unter Beispiel für pollingConfig-Code.

Authentifizierungskonfiguration

Der Abschnitt auth der pollingConfig-Konfiguration enthält in Abhängigkeit von dem im authType-Element definierten Typ die folgenden Parameter:

Basic authType-Parameter

Name Typ BESCHREIBUNG
Benutzername String Erforderlich. Definiert den Benutzernamen.
Kennwort String Erforderlich. Definiert das Benutzerkennwort.

APIKey authType-Parameter

Name Typ BESCHREIBUNG
APIKeyName Zeichenfolge Optional. Definiert den Namen Ihres API-Schlüssels als einen der folgenden Werte:

- XAuthToken
- Authorization
IsAPIKeyInPostPayload Boolean Bestimmt, wo Ihr API-Schlüssel definiert ist.

True: Der API-Schlüssel ist in den POST-Anforderungsnutzdaten definiert.
False: Der API-Schlüssel ist im Header definiert.
APIKeyIdentifier Zeichenfolge (Optional) Definiert den Namen des Bezeichners für den API-Schlüssel.

Wenn die Autorisierung beispielsweise als "Authorization": "token <secret>" definiert ist, wird dieser Parameter wie folgt definiert: {APIKeyIdentifier: “token”})

OAuth2 authType-Parameter

Die Codeless Connector Platform unterstützt die OAuth 2.0-Autorisierungscodezuweisung.

Der Autorisierungscode-Genehmigungstyp wird von vertraulichen und öffentlichen Clients verwendet, um einen Autorisierungscode für ein Zugriffstoken austauschen.

Nachdem der Benutzer über die Umleitungs-URL an den Client zurückkehrt, ruft die Anwendung den Autorisierungscode aus der URL ab und verwendet sie, um ein Zugriffstoken anzufordern.

Name Typ BESCHREIBUNG
FlowName String Erforderlich. Definiert einen OAuth2-Flow.

Unterstützter Wert: AuthCode – erfordert einen Autorisierungsflow
AccessToken String (Optional) Definiert ein OAuth2-Zugriffstoken, das relevant ist, wenn das Zugriffstoken nicht abläuft.
AccessTokenPrepend String (Optional) Definiert ein OAuth2-Zugriffstoken, das vorab festgelegt ist. Der Standardwert ist Bearer.
RefreshToken String Obligatorisch für OAuth2-Authentifizierungstypen. Definiert das OAuth2-Aktualisierungstoken.
TokenEndpoint String Obligatorisch für OAuth2-Authentifizierungstypen. Definiert den OAuth2-Tokendienstendpunkt.
AuthorizationEndpoint String (Optional) Definiert den OAuth2-Autorisierungsdienstendpunkt. Wird nur während des Onboardings oder beim Verlängern eines Aktualisierungstokens verwendet.
RedirectionEndpoint String (Optional) Definiert einen Umleitungsendpunkt während des Onboardings.
AccessTokenExpirationDateTimeInUtc String (Optional) Definiert ein Zugriffstokenablaufdatum im UTC-Format. Relevant für den Zeitpunkt, an dem das Zugriffstoken nicht abläuft, und daher eine große Datumszeit in UTC oder wenn das Zugriffstoken über eine große Ablaufzeit verfügt.
RefreshTokenExpirationDateTimeInUtc String Obligatorisch für OAuth2-Authentifizierungstypen. Definiert ein Aktualisierungstokenablaufdatum im UTC-Format.
TokenEndpointHeaders Dictionary<string, object> Optional. Definiert die Kopfzeilen beim Aufrufen eines OAuth2-Tokendienstendpunkts.

Definiert die Zeichenfolge im serialisierten dictionary<string, string>-Format: {'<attr_name>': '<val>', '<attr_name>': '<val>'... }
AuthorizationEndpointHeaders Dictionary<string, object> Optional. Definiert die Kopfzeilen beim Aufrufen eines OAuth2-Autorisierungsdienstendpunkts. Wird nur während des Onboardings oder beim Verlängern eines Aktualisierungstokens verwendet.

Definiert eine Zeichenfolge im serialisierten dictionary<string, object>-Format: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... }
AuthorizationEndpointQueryParameters Dictionary<string, object> Optional. Definiert die Abfrageparameter beim Aufrufen eines OAuth2-Autorisierungsdienstendpunkts. Wird nur während des Onboardings oder beim Verlängern eines Aktualisierungstokens verwendet.

Definiert eine Zeichenfolge im serialisierten dictionary<string, object>-Format: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... }
TokenEndpointQueryParameters Dictionary<string, object> Optional. Definieren Sie Abfrageparameter beim Aufrufen des OAuth2-Tokendienstendpunkts.

Definiert eine Zeichenfolge im serialisierten dictionary<string, object>-Format: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... }
IsTokenEndpointPostPayloadJson Boolean Optional. Standardwert ist „false“. Bestimmt, ob Abfrageparameter im JSON-Format vorliegen und in der POST-Nutzlast der Anforderung festgelegt werden.
IsClientSecretInHeader Boolean Optional. Standardwert ist „false“. Bestimmt, ob die Werte client_id und client_secret im Header definiert sind, wie im Basicauthentifizierungsschema statt in der POST-Nutzlast.
RefreshTokenLifetimeinSecAttributeName String (Optional) Definiert den Attributnamen aus der Tokenendpunktantwort, die die Lebensdauer des Aktualisierungstokens in Sekunden angibt.
IsJwtBearerFlow Boolean Optional. Standardwert ist „false“. Bestimmt, ob Sie JWT verwenden.
JwtHeaderInJson Dictionary<string, object> Optional. Definiert die JWT-Header im JSON-Format.

Definiert eine Zeichenfolge im serialisierten dictionary<string, object>-Format: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>...}
JwtClaimsInJson Dictionary<string, object> Optional. Definiert JWT-Ansprüche im JSON-Format.

Definiert eine Zeichenfolge im serialisierten dictionary<string, object>-Format: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ...}
JwtPem String (Optional) Definiert einen geheimen Schlüssel im PEM Pkcs1-Format: '-----BEGIN RSA PRIVATE KEY-----\r\n{privatekey}\r\n-----END RSA PRIVATE KEY-----\r\n'

Stellen Sie sicher, den '\r\n'-Code am Ort zu belassen.
RequestTimeoutInSeconds Integer Optional. Bestimmt das Timeout in Sekunden beim Aufrufen des Tokendienstendpunkts. Der Standardwert ist „180 Sekunden“

Hier ist ein Beispiel für eine solche OAuth2-Konfiguration:

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

Session authType-Parameter

Name Typ BESCHREIBUNG
QueryParameters Dictionary<string, object> Optional. Eine Liste von Abfrageparametern im serialisierten dictionary<string, string>-Format:

{'<attr_name>': '<val>', '<attr_name>': '<val>'... }
IsPostPayloadJson Boolean Optional. Bestimmt, ob die Abfrageparameter im JSON-Format vorliegen.
Headers Dictionary<string, object> Optional. Definiert den Header, der beim Aufrufen des Endpunkts zum Abrufen der Sitzungs-ID und beim Aufrufen der Endpunkt-API verwendet wird.

Definiert die Zeichenfolge im serialisierten dictionary<string, string>-Format: {'<attr_name>': '<val>', '<attr_name>': '<val>'... }
SessionTimeoutInMinutes Zeichenfolge (Optional) Definiert ein Sitzungstimeout in Minuten.
SessionIdName Zeichenfolge (Optional) Definiert einen ID-Namen für die Sitzung.
SessionLoginRequestUri Zeichenfolge (Optional) Definiert einen Anforderungs-URI für die Sitzungsanmeldung.

Anforderungskonfiguration

Der Abschnitt request der pollingConfig-Konfiguration enthält die folgenden Parameter:

Name Typ BESCHREIBUNG
apiEndpoint String Erforderlich. Definiert den Endpunkt, aus dem Daten gepullt werden sollen.
httpMethod String Erforderlich. Definiert die API-Methode: GET oder POST
queryTimeFormat Zeichenfolge oder UnixTimestamp oder UnixTimestampInMills Erforderlich. Definiert das Format, das zum Definieren der Abfragezeit verwendet wird.

Dieser Wert kann eine Zeichenfolge sein bzw. im UnixTimestamp- oder UnixTimestampInMills-Format vorliegen, um die Start- und Endzeit der Abfrage in „UnixTimestamp“ anzugeben.
startTimeAttributeName Zeichenfolge (Optional) Definiert den Namen des Attributs, das die Startzeit der Abfrage definiert.
endTimeAttributeName Zeichenfolge (Optional) Definiert den Namen des Attributs, das die Endzeit der Abfrage definiert.
queryTimeIntervalAttributeName String Optional. Definiert den Namen des Attributs, das das Intervall der Abfragezeit definiert.
queryTimeIntervalDelimiter Zeichenfolge (Optional) Definiert das Trennzeichen für das Intervall der Abfragezeit.
queryWindowInMin Integer Optional. Definiert das verfügbare Abfragefenster in Minuten.

Mindestwert: 5
queryParameters Dictionary<string, object> Optional. Definiert die Parameter, die in der Abfrage im eventsJsonPaths-Pfad übergeben werden.

Definiert die Zeichenfolge im serialisierten dictionary<string, string>-Format: {'<attr_name>': '<val>', '<attr_name>': '<val>'... }.
queryParametersTemplate String Optional. Definiert die Abfrageparametervorlage, die beim Übergeben von Abfrageparametern in erweiterten Szenarien verwendet werden soll.

Beispiel: "queryParametersTemplate": "{'cid': 1234567, 'cmd': 'reporting', 'format': 'siem', 'data': { 'from': '{_QueryWindowStartTime}', 'to': '{_QueryWindowEndTime}'}, '{_APIKeyName}': '{_APIKey}'}"

{_QueryWindowStartTime} und {_QueryWindowEndTime} werden nur in den Anforderungsparametern queryParameters und queryParametersTemplate unterstützt.

{_APIKeyName} und {_APIKey} werden nur im Anforderungsparameter queryParametersTemplate unterstützt.
isPostPayloadJson Boolean Optional. Bestimmt, ob die POST-Nutzdaten im JSON-Format vorliegen.
rateLimitQPS Double Optional. Definiert die Anzahl der Aufrufe oder Abfragen, die in einer Sekunde zulässig sind.
timeoutInSeconds Integer Optional. Definiert das Anforderungstimeout in Sekunden.
retryCount Integer Optional. Definiert die Anzahl der Anforderungsversuche, die bei Bedarf versucht werden sollen.
headers Dictionary<string, object> Optional. Definiert den Wert des Anforderungsheaders im serialisierten dictionary<string, object>-Format: {'<attr_name>': '<serialized val>', '<attr_name>': '<serialized val>'... }

Antwortkonfiguration

Der Abschnitt response der pollingConfig-Konfiguration enthält die folgenden Parameter:

Name Typ Beschreibung
eventsJsonPaths Liste von Zeichenfolgen Erforderlich. Definiert den Pfad zur Meldung in der JSON-Antwort.

Ein JSON-Pfadausdruck gibt einen Pfad zu einem Element oder einer Gruppe von Elementen in einer JSON-Struktur an.
successStatusJsonPath Zeichenfolge (Optional) Definiert den Pfad zur Erfolgsmeldung in der JSON-Antwort.
successStatusValue Zeichenfolge (Optional) Definiert den Pfad zum Erfolgsmeldungswert in der JSON-Antwort.
isGzipCompressed Boolean Optional. Bestimmt, ob die Antwort in einer GZIP-Datei komprimiert ist.

Der folgende Code zeigt ein Beispiel für den eventsJsonPaths-Wert für eine Nachricht der obersten Ebene:

"eventsJsonPaths": [
              "$"
            ]

Auslagerungskonfiguration

Der Abschnitt paging der pollingConfig-Konfiguration enthält die folgenden Parameter:

Name Typ BESCHREIBUNG
pagingType String Erforderlich. Bestimmt den Auslagerungstyp, der in Ergebnissen verwendet werden soll, als einer der folgenden Werte: None, LinkHeader, NextPageToken, NextPageUrl, Offset
linkHeaderTokenJsonPath Zeichenfolge (Optional) Definiert den JSON-Pfad für den Linkheader in der JSON-Antwort, wenn LinkHeader nicht im Antwortheader definiert ist.
nextPageTokenJsonPath Zeichenfolge (Optional) Definiert den Pfad zu einem JSON-Code für das nächste Seitentoken.
hasNextFlagJsonPath Zeichenfolge (Optional) Definiert den Pfad zum HasNextPage-Flagattribut.
nextPageTokenResponseHeader Zeichenfolge (Optional) Definiert den Headernamen für das Token der nächsten Seite in der Antwort.
nextPageParaName Zeichenfolge (Optional) Bestimmt den Namen der nächsten Seite in der Anforderung.
nextPageRequestHeader Zeichenfolge (Optional) Bestimmt den Headernamen der nächsten Seite in der Anforderung.
nextPageUrl Zeichenfolge (Optional) Bestimmt die URL der nächsten Seite, wenn sie sich von der anfänglichen Anforderungs-URL unterscheidet.
nextPageUrlQueryParameters Zeichenfolge (Optional) Bestimmt die Abfrageparameter der URL der nächsten Seite, wenn sie sich von der URL der anfänglichen Anforderung unterscheidet.

Definiert die Zeichenfolge im serialisierten dictionary<string, object>-Format: {'<attr_name>': <val>, '<attr_name>': <val>... }
offsetParaName Zeichenfolge (Optional) Definiert den Namen des Offsetparameters.
pageSizeParaName Zeichenfolge (Optional) Definiert den Namen des Parameters für die Seitengröße.
PageSize Integer Definiert die Auslagerungsgröße.

Beispiel für pollingConfig-Code

Der folgende Code zeigt ein Beispiel für den Abschnitt pollingConfig der CCP-Konfigurationsdatei an:

"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": [
          "$"
        ]
     }
}

Stellen Sie Ihren Connector in Microsoft Sentinel bereit, und beginnen Sie mit der Datenerfassung.

Stellen Sie nach dem Erstellen der JSON-Konfigurationsdatei, einschließlich der Benutzeroberfläche und der Abrufkonfiguration, Ihren Connector in Ihrem Microsoft Sentinel-Arbeitsbereich bereit.

  1. Verwenden Sie eine der folgenden Optionen, um Ihren Datenconnector bereitzustellen.

    Tipp

    Der Vorteil der Bereitstellung über eine ARM-Vorlage (Azure Resource Manager) besteht darin, dass mehrere Werte in die Vorlage integriert sind und Sie sie nicht manuell in einem API-Aufruf definieren müssen.

    Schließen Sie Ihre JSON-Konfigurationssammlungen in eine ARM-Vorlage ein, um Ihren Connector bereitzustellen. Um sicherzustellen, dass Ihr Datenconnector im richtigen Arbeitsbereich bereitgestellt wird, müssen Sie entweder den Arbeitsbereich in der ARM-Vorlage definieren oder den Arbeitsbereich auswählen, wenn Sie die ARM-Vorlage bereitstellen.

    1. Bereiten Sie eine JSON-Datei für die ARM-Vorlage für Ihren Connector vor. Betrachten Sie z. B. die folgenden JSON-Dateien der ARM-Vorlage:

    2. Suchen Sie im Azure-Portal nach Benutzerdefinierte Vorlage bereitstellen.

    3. Wählen Sie auf der Seite Benutzerdefinierte Bereitstellung die Option Eigene Vorlage im Editor erstellen>Datei laden aus. Navigieren Sie zu Ihrer lokalen ARM-Vorlage, wählen Sie sie aus, und speichern Sie die Änderungen.

    4. Wählen Sie Ihr Abonnement und Ihre Ressourcengruppe aus, und geben Sie dann den Log Analytics-Arbeitsbereich ein, in dem Sie Ihren benutzerdefinierten Connector bereitstellen möchten.

    5. Wählen Sie Überprüfen und erstellen aus, um Ihren benutzerdefinierten Connector in Microsoft Sentinel bereitzustellen.

    6. Wechseln Sie in Microsoft Sentinel zur Seite Datenconnectors, und suchen Sie nach Ihrem neuen Connector. Konfigurieren Sie ihn, um mit der Erfassung von Daten zu beginnen.

    Weitere Informationen finden Sie unter Bereitstellen einer lokalen Vorlage in der Azure Resource Manager-Dokumentation.

  2. Konfigurieren Sie Ihren Datenconnector, um eine Verbindung mit Ihrer Datenquelle herzustellen und mit der Erfassung von Daten in Microsoft Sentinel zu beginnen. Sie können eine Verbindung mit Ihrer Datenquelle entweder über das Portal (wie bei standardmäßigen Datenconnectors) oder über die API herstellen.

    Wenn Sie das Azure-Portal verwenden, um eine Verbindung herzustellen, werden Benutzerdaten automatisch gesendet. Wenn Sie eine Verbindung über die API herstellen, müssen Sie die relevanten Authentifizierungsparameter im API-Aufruf senden.

    Befolgen Sie auf der Datenconnectorseite von Microsoft Sentinel die Anweisungen, die Sie bereitgestellt haben, um eine Verbindung mit Ihrem Datenconnector herzustellen.

    Die Datenconnectorseite in Microsoft Sentinel wird durch die InstructionSteps-Konfiguration im connectorUiConfig-Element der CCP-JSON-Konfigurationsdatei gesteuert. Wenn Sie Probleme mit der Verbindung mit der Benutzeroberfläche haben, stellen Sie sicher, dass Sie über die richtige Konfiguration für Ihren Authentifizierungstyp verfügen.

  3. Wechseln Sie in Microsoft Sentinel zur Seite Protokolle, und vergewissern Sie sich, dass die Protokolle aus Ihrer Datenquelle in Ihren Arbeitsbereich gelangen.

Wenn Sie keinen Datenfluss nach Microsoft Sentinel sehen, überprüfen Sie die Dokumentation zu Ihrer Datenquelle und die Ressourcen zur Problembehandlung. Überprüfen Sie außerdem die Konfigurationsdetails und die Konnektivität. Weitere Informationen finden Sie unter Überwachen der Integrität Ihrer Datenconnectors.

Trennen des Connectors

Wenn Sie die Daten Ihres Connectors nicht mehr benötigen, trennen Sie den Connector, um den Datenfluss zu beenden.

Verwenden Sie eine der folgenden Methoden:

  • Azure-Portal: Wählen Sie auf der Seite Ihres Microsoft Sentinel-Datenconnectors Trennen aus.

  • API: Verwenden Sie die DISCONNECT-API, um einen PUT-Aufruf mit einem leeren Text an die folgende URL zu senden:

    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
    

Nächste Schritte

Falls noch nicht erfolgt, geben Sie Ihren neuen codelosen Datenconnector für die Microsoft Sentinel-Community frei. Erstellen Sie eine Lösung für Ihren Datenconnector, und geben Sie sie im Microsoft Sentinel-Marketplace frei.

Weitere Informationen finden Sie unter