[Afgeschaft] Een verouderde connector zonder code maken voor Microsoft Sentinel
Belangrijk
Logboekverzameling van veel apparaten en apparaten wordt nu ondersteund door de Common Event Format (CEF) via AMA, Syslog via AMA of aangepaste logboeken via AMA-gegevensconnector in Microsoft Sentinel. Zie Uw Microsoft Sentinel-gegevensconnector zoeken voor meer informatie.
Belangrijk
Er is een nieuwere versie van het Codeless Connector Platform (CCP). Zie Een codeloze connector maken (preview) voor meer informatie over de nieuwe CTP.
Raadpleeg dit document als u een gegevensconnector moet onderhouden of bijwerken op basis van deze oudere, verouderde versie van de CTP.
De CCP biedt partners, geavanceerde gebruikers en ontwikkelaars de mogelijkheid om aangepaste connectors te maken, ze te verbinden en gegevens op te nemen in Microsoft Sentinel. Connectors die zijn gemaakt via de CTP kunnen worden geïmplementeerd via API, een ARM-sjabloon of als oplossing in de Microsoft Sentinel-inhoudshub.
Connectors die zijn gemaakt met CTP zijn volledig SaaS, zonder enige vereisten voor service-installaties, en omvatten ook statuscontrole en volledige ondersteuning van Microsoft Sentinel.
Maak uw gegevensconnector door JSON-configuraties te definiëren, met instellingen voor hoe de pagina gegevensconnector in Microsoft Sentinel eruitziet, samen met poll-instellingen die definiëren hoe de verbinding functioneert.
Belangrijk
Deze versie van Codeless Connector Platform (CCP) is in PREVIEW, maar wordt ook beschouwd als verouderd. De Aanvullende voorwaarden voor Azure-previews omvatten aanvullende juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.
Gebruik de volgende stappen om uw CCP-connector te maken en verbinding te maken met uw gegevensbron vanuit Microsoft Sentinel:
- De gebruikersinterface van de connector configureren
- De polling-instellingen van de connector configureren
- Uw connector implementeren in uw Microsoft Sentinel-werkruimte
- Microsoft Sentinel verbinden met uw gegevensbron en beginnen met het opnemen van gegevens
In dit artikel worden de syntaxis beschreven die wordt gebruikt in de CTP JSON-configuraties en -procedures voor het implementeren van uw connector via API, een ARM-sjabloon of een Microsoft Sentinel-oplossing.
Vereisten
Voordat u een connector bouwt, wordt u aangeraden te begrijpen hoe uw gegevensbron zich gedraagt en precies hoe Microsoft Sentinel verbinding moet maken.
U moet bijvoorbeeld weten welke typen verificatie-, paginerings- en API-eindpunten vereist zijn voor geslaagde verbindingen.
Een JSON-configuratiebestand voor de connector maken
Uw aangepaste CCP-connector heeft twee primaire JSON-secties die nodig zijn voor implementatie. Vul deze gebieden in om te definiëren hoe uw connector wordt weergegeven in Azure Portal en hoe Microsoft Sentinel wordt verbonden met uw gegevensbron.
connectorUiConfig
. Hiermee definieert u de visuele elementen en tekst die worden weergegeven op de pagina gegevensconnector in Microsoft Sentinel. Zie De gebruikersinterface van uw connector configureren voor meer informatie.pollingConfig
. Definieert hoe Microsoft Sentinel gegevens verzamelt uit uw gegevensbron. Zie De polling-instellingen van uw connector configureren voor meer informatie.
Als u vervolgens uw connector zonder code implementeert via ARM, verpakt u deze secties in de ARM-sjabloon voor gegevensconnectors.
Bekijk andere CTP-gegevensconnectors als voorbeelden of download de voorbeeldsjabloon DataConnector_API_CCP_template.json (preview).
De gebruikersinterface van uw connector configureren
In deze sectie worden de configuratieopties beschreven die beschikbaar zijn om de gebruikersinterface van de pagina gegevensconnector aan te passen.
In de volgende afbeelding ziet u een pagina met voorbeeldgegevensconnector, gemarkeerd met getallen die overeenkomen met belangrijke gebieden van de gebruikersinterface:
- Titel. De titel die wordt weergegeven voor uw gegevensconnector.
- Logo. Het pictogram dat wordt weergegeven voor uw gegevensconnector. U kunt dit alleen aanpassen wanneer u deze implementeert als onderdeel van een oplossing.
- Status. Geeft aan of uw gegevensconnector al dan niet is verbonden met Microsoft Sentinel.
- Gegevensdiagrammen. Geeft relevante query's en de hoeveelheid opgenomen gegevens in de afgelopen twee weken weer.
- Tabblad Instructies. Bevat een sectie Vereisten, met een lijst met minimale validaties voordat de gebruiker de connector kan inschakelen en instructies, om de gebruikersinschakeling van de connector te begeleiden. Deze sectie kan tekst, knoppen, formulieren, tabellen en andere algemene widgets bevatten om het proces te vereenvoudigen.
- Tabblad Volgende stappen. Bevat nuttige informatie voor informatie over het vinden van gegevens in de gebeurtenislogboeken, zoals voorbeeldquery's.
Dit zijn de connectorUiConfig
secties en syntaxis die nodig zijn om de gebruikersinterface te configureren:
Eigenschapsnaam | Type | Description |
---|---|---|
availability | { "status": 1, "isPreview": Booleaans} |
status: 1 Geeft aan dat de connector algemeen beschikbaar is voor klanten. isPreview Geeft aan of het achtervoegsel (preview) moet worden opgenomen in de naam van de connector. |
connectivityCriteria | { "type": SentinelKindsV2, "value": APIPolling } |
Een object dat definieert hoe u controleert of de connector juist is gedefinieerd. Gebruik de hier aangegeven waarden. |
Datatypes | dataTypes[] | Een lijst met alle gegevenstypen voor uw connector en een query voor het ophalen van de tijd van de laatste gebeurtenis voor elk gegevenstype. |
descriptionMarkdown | String | Een beschrijving voor de connector met de mogelijkheid om markdown-taal toe te voegen om deze te verbeteren. |
graphQueries | graphQueries[] | Query's die gegevensopname presenteren in de afgelopen twee weken in het deelvenster Gegevensdiagrammen . Geef één query op voor alle gegevenstypen van de gegevensconnector of een andere query voor elk gegevenstype. |
graphQueriesTableName | String | Definieert de naam van de Log Analytics-tabel waaruit gegevens voor uw query's worden opgehaald. De tabelnaam kan elke tekenreeks zijn, maar moet eindigen op _CL . Bijvoorbeeld: TableName_CL |
instructionsSteps | instructionSteps[] | Een matrix met widgetonderdelen die uitleggen hoe u de connector installeert, weergegeven op het tabblad Instructies . |
metagegevens | metagegevens | Metagegevens die worden weergegeven onder de beschrijving van de connector. |
permissions | machtigingen[] | De informatie die wordt weergegeven in de sectie Vereisten van de gebruikersinterface met de machtigingen die nodig zijn om de connector in of uit te schakelen. |
uitgever | String | Dit is de tekst die wordt weergegeven in de sectie Provider . |
sampleQueries | sampleQueries[] | Voorbeeldquery's voor de klant om te begrijpen hoe u de gegevens in het gebeurtenislogboek kunt vinden, die moeten worden weergegeven op het tabblad Volgende stappen . |
title | String | Titel die wordt weergegeven op de pagina gegevensconnector. |
Het samenstellen van al deze stukken is ingewikkeld. Gebruik het hulpprogramma voor validatie van gebruikerservaring op de connectorpagina om de onderdelen te testen die u hebt samengesteld.
Datatypes
Matrixwaarde | Type | Description |
---|---|---|
name | String | Een zinvolle beschrijving voor delastDataReceivedQuery variabele, inclusief ondersteuning voor een variabele. Voorbeeld: {{graphQueriesTableName}} |
lastDataReceivedQuery | String | Een KQL-query die één rij retourneert en de laatste keer dat gegevens zijn ontvangen, of geen gegevens als er geen relevante gegevens zijn. Voorbeeld: {{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time) |
graphQueries
Hiermee definieert u een query die gegevensopname in de afgelopen twee weken in het deelvenster Gegevensgrafieken weergeeft.
Geef één query op voor alle gegevenstypen van de gegevensconnector of een andere query voor elk gegevenstype.
Matrixwaarde | Type | Description |
---|---|---|
metricName | String | Een betekenisvolle naam voor uw grafiek. Voorbeeld: Total data received |
legende | String | De tekenreeks die in de legenda rechts van de grafiek wordt weergegeven, inclusief een verwijzing naar een variabele. Voorbeeld: {{graphQueriesTableName}} |
baseQuery | String | De query die filtert op relevante gebeurtenissen, inclusief een variabelereferentie. Bijvoorbeeld: TableName_CL | where ProviderName == "myprovider" of {{graphQueriesTableName}} |
instructionSteps
Deze sectie bevat parameters waarmee de set instructies wordt gedefinieerd die worden weergegeven op de pagina van de gegevensconnector in Microsoft Sentinel.
Matrixeigenschap | Type | Description |
---|---|---|
title | String | Optioneel. Definieert een titel voor uw instructies. |
beschrijving | String | Optioneel. Definieert een beschrijvende beschrijving voor uw instructies. |
innerSteps | Matrix | Optioneel. Definieert een matrix van interne instructiestappen. |
Instructies | Matrix met instructies | Vereist. Hiermee definieert u een matrix met instructies van een specifiek parametertype. |
bottomBorder | Booleaanse waarde | Optioneel. Wanneer true voegt u een onderrand toe aan het instructiesgebied op de connectorpagina in Microsoft Sentinel |
isComingSoon | Booleaanse waarde | Optioneel. Wanneer true voegt u een titel binnenkort beschikbaar toe op de connectorpagina in Microsoft Sentinel |
Instructies
Geeft een groep instructies weer, met verschillende opties als parameters en de mogelijkheid om meer instructiesteps in groepen te nesten.
Parameter | Matrixeigenschap | Beschrijving |
---|---|---|
APIKey | APIKey | Voeg tijdelijke aanduidingen toe aan het JSON-configuratiebestand van uw connector. |
CopyableLabel | CopyableLabel | Toont een tekstveld met een knop Kopiëren aan het einde. Wanneer de knop is geselecteerd, wordt de waarde van het veld gekopieerd. |
InfoMessage | InfoMessage | Definieert een inline informatiebericht. |
InstructionStepsGroup | InstructionStepsGroup | Geeft een groep instructies weer, eventueel uitgevouwen of samenvouwbaar, in een afzonderlijke sectie met instructies. |
InstallAgent | InstallAgent | Geeft een koppeling weer naar andere gedeelten van Azure om aan verschillende installatievereisten te voldoen. |
APIKey
Mogelijk wilt u een sjabloon voor een JSON-configuratiebestand maken, met parameters voor tijdelijke aanduidingen, om meerdere connectors opnieuw te gebruiken of zelfs om een connector te maken met gegevens die u momenteel niet hebt.
Als u tijdelijke aanduidingenparameters wilt maken, definieert u een extra matrix met de naam userRequestPlaceHoldersInput
in de sectie Instructies van uw CTP JSON-configuratiebestand met behulp van de volgende syntaxis:
"instructions": [
{
"parameters": {
"enable": "true",
"userRequestPlaceHoldersInput": [
{
"displayText": "Organization Name",
"requestObjectKey": "apiEndpoint",
"placeHolderName": "{{placeHolder}}"
}
]
},
"type": "APIKey"
}
]
De userRequestPlaceHoldersInput
parameter bevat de volgende kenmerken:
Name | Type | Description |
---|---|---|
DisplayText | String | Hiermee definieert u de weergavewaarde van het tekstvak, die wordt weergegeven aan de gebruiker wanneer u verbinding maakt. |
RequestObjectKey | String | Definieert de id in de aanvraagsectie van de pollingConfig om de tijdelijke aanduidingswaarde te vervangen door de door de gebruiker opgegeven waarde. Als u dit kenmerk niet gebruikt, gebruikt u in plaats daarvan het PollingKeyPaths kenmerk. |
PollingKeyPaths | String | Definieert een matrix van JsonPath-objecten die de API-aanroep naar een willekeurige locatie in de sjabloon leiden om een tijdelijke aanduidingswaarde te vervangen door een gebruikerswaarde. Voorbeeld: "pollingKeyPaths":["$.request.queryParameters.test1"] Als u dit kenmerk niet gebruikt, gebruikt u in plaats daarvan het RequestObjectKey kenmerk. |
PlaceHolderName | String | Hiermee definieert u de naam van de tijdelijke aanduidingsparameter in het JSON-sjabloonbestand. Dit kan elke unieke waarde zijn, zoals {{placeHolder}} . |
CopyableLabel
Voorbeeld:
Voorbeeldcode:
{
"parameters": {
"fillWith": [
"WorkspaceId",
"PrimaryKey"
],
"label": "Here are some values you'll need to proceed.",
"value": "Workspace is {0} and PrimaryKey is {1}"
},
"type": "CopyableLabel"
}
Matrixwaarde | Type | Description |
---|---|---|
fillWith | ENUM | Optioneel. Matrix van omgevingsvariabelen die worden gebruikt om een tijdelijke aanduiding te vullen. Scheid meerdere tijdelijke aanduidingen met komma's. Bijvoorbeeld: {0},{1} Ondersteunde waarden: workspaceId , workspaceName , primaryKey , , MicrosoftAwsAccount subscriptionId |
etiket | String | Hiermee definieert u de tekst voor het label boven een tekstvak. |
value | String | Definieert de waarde die in het tekstvak moet worden weergegeven, ondersteunt tijdelijke aanduidingen. |
Rijen | Rijen | Optioneel. Hiermee definieert u de rijen in het gebied van de gebruikersinterface. Standaard ingesteld op 1. |
wideLabel | Booleaanse waarde | Optioneel. Bepaalt een breed label voor lange tekenreeksen. Standaard ingesteld op false . |
InfoMessage
Hier volgt een voorbeeld van een inline informatiebericht:
In de volgende afbeelding ziet u daarentegen een niet-inline informatiebericht:
Matrixwaarde | Type | Beschrijving |
---|---|---|
tekst | String | Definieer de tekst die in het bericht moet worden weergegeven. |
zichtbaar | Booleaanse waarde | Bepaalt of het bericht wordt weergegeven. |
Inline | Booleaanse waarde | Bepaalt hoe het informatiebericht wordt weergegeven. - true : (Aanbevolen) Toont het informatiebericht dat is ingesloten in de instructies. - false : Voegt een blauwe achtergrond toe. |
InstructionStepsGroup
Hier volgt een voorbeeld van een uitbreidbare instructiegroep:
Matrixwaarde | Type | Description |
---|---|---|
title | String | Hiermee definieert u de titel voor de instructiestap. |
canCollapseAllSections | Booleaanse waarde | Optioneel. Bepaalt of de sectie een samenvouwbare accordeon is of niet. |
noFxPadding | Booleaanse waarde | Optioneel. Als true , vermindert de hoogte opvulling om ruimte te besparen. |
Uitgebreid | Booleaanse waarde | Optioneel. Als true , wordt standaard weergegeven als uitgevouwen. |
Zie de configuratie-JSON voor de Windows DNS-connector voor een gedetailleerd voorbeeld.
InstallAgent
Sommige InstallAgent-typen worden weergegeven als een knop, andere worden weergegeven als een koppeling. Hier volgen voorbeelden van beide:
Matrixwaarden | Type | Description |
---|---|---|
linkType | ENUM | Bepaalt het koppelingstype als een van de volgende waarden: InstallAgentOnWindowsVirtualMachine InstallAgentOnWindowsNonAzure InstallAgentOnLinuxVirtualMachine InstallAgentOnLinuxNonAzure OpenSyslogSettings OpenCustomLogsSettings OpenWaf OpenAzureFirewall OpenMicrosoftAzureMonitoring OpenFrontDoors OpenCdnProfile AutomaticDeploymentCEF OpenAzureInformationProtection OpenAzureActivityLog OpenIotPricingModel OpenPolicyAssignment OpenAllAssignmentsBlade OpenCreateDataCollectionRule |
policyDefinitionGuid | String | Vereist bij gebruik van het OpenPolicyAssignment linkType. Voor connectors op basis van beleid definieert u de GUID van de ingebouwde beleidsdefinitie. |
assignMode | ENUM | Optioneel. Voor connectors op basis van beleid definieert u de toewijzingsmodus als een van de volgende waarden: Initiative Policy |
dataCollectionRuleType | ENUM | Optioneel. Voor DCR-connectors definieert u het type regeltype voor gegevensverzameling als een van de volgende: SecurityEvent ForwardEvent |
metagegevens
Deze sectie bevat metagegevens in de gebruikersinterface van de gegevensconnector onder het gebied Beschrijving .
Verzamelingswaarde | Type | Beschrijving |
---|---|---|
soort | String | Hiermee definieert u het type ARM-sjabloon dat u maakt. Altijd gebruiken dataConnector . |
bron | String | Beschrijft uw gegevensbron met behulp van de volgende syntaxis: { "kind": snaar"name": snaar} |
auteur | String | Beschrijft de auteur van de gegevensconnector met behulp van de volgende syntaxis: { "name": snaar} |
steunen | String | Beschrijf de ondersteuning voor de gegevensconnector met behulp van de volgende syntaxis: { "tier": snaar"name": snaar"email": snaar"link": URL-tekenreeks} |
permissions
Matrixwaarde | Type | Description |
---|---|---|
douane | String | Beschrijft eventuele aangepaste machtigingen die vereist zijn voor uw gegevensverbinding, in de volgende syntaxis: { "name": snaar, "description": snaar} Voorbeeld: De douanewaarde wordt weergegeven in de sectie Vereisten van Microsoft Sentinel met een blauw informatiepictogram. In het GitHub-voorbeeld komt dit overeen met de persoonlijke tokensleutel van de GitHub-API: u hebt toegang nodig tot het persoonlijke GitHub-token... |
Licenties | ENUM | Definieert de vereiste licenties als een van de volgende waarden: OfficeIRM ,OfficeATP , Office365 , , AadP1P2 , Mcas , Aatp , Mdatp , , Mtp IoT Voorbeeld: De licentiewaarde wordt weergegeven in Microsoft Sentinel als: Licentie: Vereiste Azure AD Premium P2 |
resourceProvider | resourceProvider | Beschrijft eventuele vereisten voor uw Azure-resource. Voorbeeld: De waarde resourceProvider wordt weergegeven in de sectie Vereisten voor Microsoft Sentinel als: Werkruimte: lees- en schrijfmachtiging is vereist. Sleutels: leesmachtigingen voor gedeelde sleutels voor de werkruimte zijn vereist. |
tenant | matrix van ENUM-waarden Voorbeeld: "tenant": [ "GlobalADmin", "SecurityAdmin" ] |
Definieert de vereiste machtigingen als een of meer van de volgende waarden: "GlobalAdmin" , "SecurityAdmin" , "SecurityReader" , "InformationProtection" Voorbeeld: geeft de tenantwaarde in Microsoft Sentinel weer als: Tenantmachtigingen: Vereist Global Administrator of Security Administrator op de tenant van de werkruimte |
resourceProvider
submatrixwaarde | Type | Description |
---|---|---|
aanbieder | ENUM | Beschrijft de resourceprovider, met een van de volgende waarden: - Microsoft.OperationalInsights/workspaces - Microsoft.OperationalInsights/solutions - Microsoft.OperationalInsights/workspaces/datasources - microsoft.aadiam/diagnosticSettings - Microsoft.OperationalInsights/workspaces/sharedKeys - Microsoft.Authorization/policyAssignments |
providerDisplayName | String | Een lijstitem onder Vereisten waarmee een rood 'x' of groen vinkje wordt weergegeven wanneer de requiredPermissions worden gevalideerd op de connectorpagina. Voorbeeld "Workspace" |
permissionsDisplayText | String | Tekst weergeven voor lees-, schrijf- of lees- en schrijfmachtigingen die moeten overeenkomen met de waarden die zijn geconfigureerd in requiredPermissions |
requiredPermissions | { "action": Booleaanse waarde, "delete": Booleaanse waarde, "read": Booleaanse waarde, "write": Booleaans} |
Beschrijft de minimale machtigingen die vereist zijn voor de connector. |
bereik | ENUM | Beschrijft het bereik van de gegevensconnector als een van de volgende waarden: "Subscription" , , "ResourceGroup" "Workspace" |
sampleQueries
matrixwaarde | Type | Description |
---|---|---|
beschrijving | String | Een zinvolle beschrijving voor de voorbeeldquery. Voorbeeld: Top 10 vulnerabilities detected |
query | String | Voorbeeldquery die wordt gebruikt om de gegevens van het gegevenstype op te halen. Voorbeeld: {{graphQueriesTableName}}\n | sort by TimeGenerated\n | take 10 |
Andere koppelingsopties configureren
Als u een inlinekoppeling wilt definiëren met behulp van Markdown, gebruikt u het volgende voorbeeld. Hier vindt u een koppeling in een instructiebeschrijving:
{
"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)"
}
Als u een koppeling wilt definiëren als een ARM-sjabloon, gebruikt u het volgende voorbeeld als richtlijn:
{
"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})"
}
De gebruikerservaring van de gegevensconnectorpagina valideren
Volg deze stappen om de gebruikerservaring van de connector weer te geven en te valideren.
- Het testhulpprogramma kan worden geopend via deze URL - https://aka.ms/sentineldataconnectorvalidateurl
- Ga naar Microsoft Sentinel -> Gegevensconnectors
- Klik op de knop Importeren en selecteer een json-bestand dat alleen de
connectorUiConfig
sectie van uw gegevensconnector bevat.
Zie de instructies voor het bouwen van de connector in onze GitHub-buildhandleiding voor meer informatie over dit validatieprogramma.
Notitie
Omdat de instructieparameter APIKey specifiek is voor de connector zonder code, verwijdert u deze sectie tijdelijk om het validatieprogramma te gebruiken of mislukt deze.
De polling-instellingen van uw connector configureren
In deze sectie wordt de configuratie beschreven voor de wijze waarop gegevens uit uw gegevensbron worden gepeild voor een gegevensconnector zonder code.
De volgende code toont de syntaxis van de pollingConfig
sectie van het CTP-configuratiebestand .
"pollingConfig": {
"auth": {
},
"request": {
},
"response": {
},
"paging": {
}
}
De pollingConfig
sectie bevat de volgende eigenschappen:
Name | Type | Description |
---|---|---|
Auth | String | Beschrijft de verificatie-eigenschappen voor het peilen van de gegevens. Zie de verificatieconfiguratie voor meer informatie. |
auth.authType | String | Verplicht. Definieert het type verificatie, genest binnen het auth object, als een van de volgende waarden: Basic , , APIKey OAuth2 |
verzoek | Geneste JSON | Verplicht. Beschrijft de nettolading van de aanvraag voor het peilen van de gegevens, zoals het API-eindpunt. Zie de aanvraagconfiguratie voor meer informatie. |
antwoord | Geneste JSON | Verplicht. Beschrijft het antwoordobject en geneste bericht dat wordt geretourneerd door de API bij het peilen van de gegevens. Zie de antwoordconfiguratie voor meer informatie. |
Paging | Geneste JSON | Optioneel. Beschrijft de nettolading van paginering bij het peilen van de gegevens. Zie de pagingconfiguratie voor meer informatie. |
Zie Voorbeeld van pollingConfig-code voor meer informatie.
Verificatieconfiguratie
De auth
sectie van de pollingConfig-configuratie bevat de volgende parameters, afhankelijk van het type dat is gedefinieerd in het authType-element :
Basisparameters voor verificatietype
Name | Type | Description |
---|---|---|
Gebruikersnaam | String | Verplicht. Hiermee definieert u de gebruikersnaam. |
Wachtwoord | String | Verplicht. Hiermee definieert u het gebruikerswachtwoord. |
APIKey authType-parameters
Name | Type | Description |
---|---|---|
APIKeyName | String | Optioneel. Definieert de naam van uw API-sleutel als een van de volgende waarden: - XAuthToken - Authorization |
IsAPIKeyInPostPayload | Booleaanse waarde | Bepaalt waar uw API-sleutel is gedefinieerd. Waar: API-sleutel wordt gedefinieerd in de nettolading van de POST-aanvraag Onwaar: API-sleutel wordt gedefinieerd in de header |
APIKeyIdentifier | String | Optioneel. Hiermee definieert u de naam van de id voor de API-sleutel. Als de autorisatie bijvoorbeeld is gedefinieerd als "Authorization": "token <secret>" , wordt deze parameter gedefinieerd als: {APIKeyIdentifier: “token”}) |
OAuth2-parameters authType
Het Platform voor codeloze connectors ondersteunt OAuth 2.0-autorisatiecodetoestemming.
Het toekenningstype Autorisatiecode wordt gebruikt door vertrouwelijke en openbare clients om een autorisatiecode voor een toegangstoken in te wisselen.
Nadat de gebruiker via de omleidings-URL naar de client terugkeert, krijgt de toepassing de autorisatiecode van de URL en gebruikt deze om een toegangstoken aan te vragen.
Name | Type | Description |
---|---|---|
FlowName | String | Verplicht. Hiermee definieert u een OAuth2-stroom. Ondersteunde waarde: AuthCode - vereist een autorisatiestroom |
AccessToken | String | Optioneel. Hiermee definieert u een OAuth2-toegangstoken dat relevant is wanneer het toegangstoken niet verloopt. |
AccessTokenPrepend | String | Optioneel. Hiermee definieert u een OAuth2-toegangstoken vooraf. Standaard is Bearer . |
RefreshToken | String | Verplicht voor OAuth2-verificatietypen. Hiermee definieert u het OAuth2-vernieuwingstoken. |
TokenEndpoint | String | Verplicht voor OAuth2-verificatietypen. Hiermee definieert u het service-eindpunt van het OAuth2-token. |
AuthorizationEndpoint | String | Optioneel. Hiermee definieert u het OAuth2-autorisatieservice-eindpunt. Alleen gebruikt tijdens onboarding of bij het vernieuwen van een vernieuwingstoken. |
RedirectionEndpoint | String | Optioneel. Definieert een omleidingseindpunt tijdens onboarding. |
AccessTokenExpirationDateTimeInUtc | String | Optioneel. Hiermee definieert u een vervaldatum voor het toegangstoken in UTC-indeling. Relevant voor wanneer het toegangstoken niet verloopt en daarom een grote datum/tijd in UTC heeft of wanneer het toegangstoken een grote vervaldatum heeft. |
RefreshTokenExpirationDateTimeInUtc | String | Verplicht voor OAuth2-verificatietypen. Hiermee definieert u de vervaldatum van het vernieuwingstoken in UTC-indeling. |
TokenEndpointHeaders | Woordenlijsttekenreeks<, object> | Optioneel. Definieert de headers bij het aanroepen van een OAuth2-tokenservice-eindpunt. Definieer een tekenreeks in de geserialiseerde dictionary<string, string> indeling: {'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
AuthorizationEndpointHeaders | Woordenlijsttekenreeks<, object> | Optioneel. Definieert de headers bij het aanroepen van een OAuth2-autorisatieservice-eindpunt. Alleen gebruikt tijdens onboarding of bij het vernieuwen van een vernieuwingstoken. Definieer een tekenreeks in de geserialiseerde dictionary<string, object> indeling: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... } |
AuthorizationEndpointQueryParameters | Woordenlijsttekenreeks<, object> | Optioneel. Definieert queryparameters bij het aanroepen van een OAuth2-autorisatieservice-eindpunt. Alleen gebruikt tijdens onboarding of bij het vernieuwen van een vernieuwingstoken. Definieer een tekenreeks in de geserialiseerde dictionary<string, object> indeling: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... } |
TokenEndpointQueryParameters | Woordenlijsttekenreeks<, object> | Optioneel. Queryparameters definiëren bij het aanroepen van een OAuth2-tokenservice-eindpunt. Definieer een tekenreeks in de geserialiseerde dictionary<string, object> indeling: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... } |
IsTokenEndpointPostPayloadJson | Booleaanse waarde | Optioneel; standaardwaarde is false. Bepaalt of queryparameters de JSON-indeling hebben en worden ingesteld in de POST-nettolading van de aanvraag. |
IsClientSecretInHeader | Booleaanse waarde | Optioneel; standaardwaarde is false. Bepaalt of de client_id waarden client_secret zijn gedefinieerd in de header, zoals wordt gedaan in het basisverificatieschema, in plaats van in de POST-nettolading. |
RefreshTokenLifetimeinSecAttributeName | String | Optioneel. Definieert de kenmerknaam van het antwoord op het tokeneindpunt, waarbij de levensduur van het vernieuwingstoken in seconden wordt opgegeven. |
IsJwtBearerFlow | Booleaanse waarde | Optioneel; standaardwaarde is false. Bepaalt of u JWT gebruikt. |
JwtHeaderInJson | Woordenlijsttekenreeks<, object> | Optioneel. Definieer de JWT-headers in JSON-indeling. Definieer een tekenreeks in de geserialiseerde dictionary<string, object> indeling: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>...} |
JwtClaimsInJson | Woordenlijsttekenreeks<, object> | Optioneel. Definieert JWT-claims in JSON-indeling. Definieer een tekenreeks in de geserialiseerde dictionary<string, object> indeling: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ...} |
JwtPem | String | Optioneel. Hiermee definieert u een geheime sleutel in PEM Pkcs1-indeling: '-----BEGIN RSA PRIVATE KEY-----\r\n{privatekey}\r\n-----END RSA PRIVATE KEY-----\r\n' Zorg ervoor dat u de '\r\n' code op de plaats houdt. |
RequestTimeoutInSeconds | Geheel getal | Optioneel. Bepaalt de time-out in seconden bij het aanroepen van service-eindpunten voor tokens. De standaardwaarde is 180 seconden |
Hier volgt een voorbeeld van hoe een OAuth2-configuratie eruit kan zien:
"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"
},
Parameters sessie-authType
Name | Type | Description |
---|---|---|
QueryParameters | Woordenlijsttekenreeks<, object> | Optioneel. Een lijst met queryparameters in de geserialiseerde dictionary<string, string> indeling: {'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
IsPostPayloadJson | Booleaanse waarde | Optioneel. Bepaalt of de queryparameters de JSON-indeling hebben. |
Kopteksten | Woordenlijsttekenreeks<, object> | Optioneel. Definieert de header die wordt gebruikt bij het aanroepen van het eindpunt om de sessie-id op te halen en bij het aanroepen van de eindpunt-API. Definieer de tekenreeks in de geserialiseerde dictionary<string, string> indeling: {'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
SessionTimeoutInMinutes | String | Optioneel. Hiermee definieert u een sessietime-out, in minuten. |
SessionIdName | String | Optioneel. Hiermee definieert u een id-naam voor de sessie. |
SessionLoginRequestUri | String | Optioneel. Definieert een aanmeldingsaanvraag-URI voor een sessie. |
Aanvraagconfiguratie
De request
sectie van de pollingConfig-configuratie bevat de volgende parameters:
Name | Type | Description |
---|---|---|
apiEndpoint | String | Verplicht. Hiermee definieert u het eindpunt waaruit gegevens moeten worden opgehaald. |
httpMethod | String | Verplicht. Definieert de API-methode: GET of POST |
queryTimeFormat | Tekenreeks of UnixTimestamp of UnixTimestampInMills | Verplicht. Definieert de indeling die wordt gebruikt om de querytijd te definiëren. Deze waarde kan een tekenreeks zijn, of in de indeling UnixTimestamp of UnixTimestampInMills om de begin- en eindtijd van de query in de UnixTimestamp aan te geven. |
startTimeAttributeName | String | Optioneel. Hiermee definieert u de naam van het kenmerk waarmee de begintijd van de query wordt gedefinieerd. |
endTimeAttributeName | String | Optioneel. Hiermee definieert u de naam van het kenmerk dat de eindtijd van de query definieert. |
queryTimeIntervalAttributeName | String | Optioneel. Hiermee definieert u de naam van het kenmerk dat het tijdsinterval van de query definieert. |
queryTimeIntervalDelimiter | String | Optioneel. Definieert het scheidingsteken voor het tijdsinterval van de query. |
queryWindowInMin | Geheel getal | Optioneel. Hiermee definieert u het beschikbare queryvenster, in minuten. Minimumwaarde: 5 |
queryParameters | Woordenlijsttekenreeks<, object> | Optioneel. Hiermee definieert u de parameters die zijn doorgegeven in de query in het eventsJsonPaths pad. Definieer de tekenreeks in de geserialiseerde dictionary<string, string> indeling: {'<attr_name>': '<val>', '<attr_name>': '<val>'... } . |
queryParametersTemplate | String | Optioneel. Hiermee definieert u de sjabloon voor queryparameters die moeten worden gebruikt bij het doorgeven van queryparameters in geavanceerde scenario's. Bijvoorbeeld: "queryParametersTemplate": "{'cid': 1234567, 'cmd': 'reporting', 'format': 'siem', 'data': { 'from': '{_QueryWindowStartTime}', 'to': '{_QueryWindowEndTime}'}, '{_APIKeyName}': '{_APIKey}'}" {_QueryWindowStartTime} en {_QueryWindowEndTime} worden alleen ondersteund in de queryParameters en queryParametersTemplate aanvraagparameters. {_APIKeyName} en {_APIKey} worden alleen ondersteund in de queryParametersTemplate aanvraagparameter. |
isPostPayloadJson | Booleaanse waarde | Optioneel. Bepaalt of de POST-nettolading de JSON-indeling heeft. |
rateLimitQPS | Dubbel | Optioneel. Hiermee definieert u het aantal aanroepen of query's dat in een seconde is toegestaan. |
time-outInSeconds | Geheel getal | Optioneel. Hiermee definieert u de time-out van de aanvraag, in seconden. |
retryCount | Geheel getal | Optioneel. Hiermee definieert u het aantal nieuwe pogingen om het te proberen, indien nodig. |
Headers | Woordenlijsttekenreeks<, object> | Optioneel. Hiermee definieert u de waarde van de aanvraagheader in de geserialiseerde dictionary<string, object> indeling: {'<attr_name>': '<serialized val>', '<attr_name>': '<serialized val>'... } |
Antwoordconfiguratie
De response
sectie van de pollingConfig-configuratie bevat de volgende parameters:
De volgende code toont een voorbeeld van de eventsJsonPaths-waarde voor een bericht op het hoogste niveau:
"eventsJsonPaths": [
"$"
]
Configuratie van paging
De paging
sectie van de pollingConfig-configuratie bevat de volgende parameters:
Name | Type | Description |
---|---|---|
pagingType | String | Verplicht. Bepaalt het pagingstype dat moet worden gebruikt in resultaten, als een van de volgende waarden: None , LinkHeader , NextPageToken , , NextPageUrl Offset |
linkHeaderTokenJsonPath | String | Optioneel. Definieert het JSON-pad om de koppelingsheader in de antwoord-JSON te koppelen, als de LinkHeader header niet is gedefinieerd in de antwoordheader. |
nextPageTokenJsonPath | String | Optioneel. Hiermee definieert u het pad naar een JSON van een volgende paginatoken. |
hasNextFlagJsonPath | String | Optioneel. Hiermee definieert u het pad naar het HasNextPage vlagkenmerk. |
nextPageTokenResponseHeader | String | Optioneel. Hiermee definieert u de naam van de header van het volgende paginatoken in het antwoord. |
nextPageParaName | String | Optioneel. Bepaalt de naam van de volgende pagina in de aanvraag. |
nextPageRequestHeader | String | Optioneel. Bepaalt de naam van de volgende paginakoptekst in de aanvraag. |
nextPageUrl | String | Optioneel. Bepaalt de URL van de volgende pagina , als deze verschilt van de URL van de eerste aanvraag. |
nextPageUrlQueryParameters | String | Optioneel. Bepaalt de queryparameters van de url van de volgende pagina als deze verschilt van de URL van de eerste aanvraag. Definieer de tekenreeks in de geserialiseerde dictionary<string, object> indeling: {'<attr_name>': <val>, '<attr_name>': <val>... } |
offsetParaName | String | Optioneel. Hiermee definieert u de naam van de offsetparameter. |
pageSizeParaName | String | Optioneel. Hiermee definieert u de naam van de parameter paginaformaat. |
Pagesize | Geheel getal | Hiermee definieert u de paginagrootte. |
Voorbeeld van pollingConfig-code
De volgende code toont een voorbeeld van de pollingConfig
sectie van het CTP-configuratiebestand :
"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": [
"$"
]
}
}
Uw connector implementeren in Microsoft Sentinel en beginnen met het opnemen van gegevens
Nadat u uw JSON-configuratiebestand hebt gemaakt, inclusief de gebruikersinterface en de pollingconfiguratie , implementeert u uw connector in uw Microsoft Sentinel-werkruimte.
Gebruik een van de volgende opties om uw gegevensconnector te implementeren.
Tip
Het voordeel van het implementeren via een ARM-sjabloon (Azure Resource Manager) is dat verschillende waarden zijn ingebouwd in de sjabloon en u deze niet handmatig hoeft te definiëren in een API-aanroep.
Verpakt uw JSON-configuratieverzamelingen in een ARM-sjabloon om uw connector te implementeren. Als u ervoor wilt zorgen dat uw gegevensconnector wordt geïmplementeerd in de juiste werkruimte, moet u de werkruimte in de ARM-sjabloon definiëren of de werkruimte selecteren bij het implementeren van de ARM-sjabloon.
Bereid een JSON-bestand van een ARM-sjabloon voor op uw connector. Zie bijvoorbeeld de volgende JSON-bestanden van de ARM-sjabloon:
- Gegevensconnector in de Slack-oplossing
- Gegevensconnector in de GitHub-oplossing
Zoek in Azure Portal naar Een aangepaste sjabloon implementeren.
Selecteer op de pagina Aangepaste implementatie uw eigen sjabloon maken in het bestand Laden van editor>. Blader naar en selecteer uw lokale ARM-sjabloon en sla uw wijzigingen op.
Selecteer uw abonnement en resourcegroep en voer vervolgens de Log Analytics-werkruimte in waar u uw aangepaste connector wilt implementeren.
Selecteer Beoordelen en maken om uw aangepaste connector te implementeren in Microsoft Sentinel.
Ga in Microsoft Sentinel naar de pagina Gegevensconnectors en zoek naar uw nieuwe connector. Configureer deze om te beginnen met het opnemen van gegevens.
Zie Een lokale sjabloon implementeren in de Documentatie van Azure Resource Manager voor meer informatie.
Configureer uw gegevensconnector om verbinding te maken met uw gegevensbron en begin met het opnemen van gegevens in Microsoft Sentinel. U kunt verbinding maken met uw gegevensbron via de portal, net als met out-of-the-box gegevensconnectors of via API.
Wanneer u Azure Portal gebruikt om verbinding te maken, worden gebruikersgegevens automatisch verzonden. Wanneer u verbinding maakt via API, moet u de relevante verificatieparameters in de API-aanroep verzenden.
Volg op de pagina microsoft Sentinel-gegevensconnector de instructies die u hebt opgegeven om verbinding te maken met uw gegevensconnector.
De pagina gegevensconnector in Microsoft Sentinel wordt beheerd door de InstructionSteps-configuratie in het element van het
connectorUiConfig
CTP JSON-configuratiebestand. Als u problemen ondervindt met de gebruikersinterfaceverbinding, moet u ervoor zorgen dat u de juiste configuratie voor uw verificatietype hebt.Ga in Microsoft Sentinel naar de pagina Logboeken en controleer of de logboeken van uw gegevensbron naar uw werkruimte stromen.
Als u geen gegevens ziet die naar Microsoft Sentinel stromen, controleert u de documentatie over de gegevensbron en de bronnen voor probleemoplossing, controleert u de configuratiedetails en controleert u de connectiviteit. Zie De status van uw gegevensconnectors controleren voor meer informatie.
De verbinding met de connector verbreken
Als u de gegevens van uw connector niet meer nodig hebt, verbreekt u de verbinding met de connector om de gegevensstroom te stoppen.
Hanteer één van de volgende methoden:
Azure Portal: Selecteer Verbinding verbreken op de pagina van uw Microsoft Sentinel-gegevensconnector.
API: Gebruik de DISCONNECT API om een PUT-aanroep met een lege hoofdtekst naar de volgende URL te verzenden:
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
Volgende stappen
Als u dat nog niet hebt gedaan, deelt u uw nieuwe gegevensconnector zonder code met de Microsoft Sentinel-community. Maak een oplossing voor uw gegevensconnector en deel deze in Microsoft Sentinel Marketplace.
Zie voor meer informatie