RestApiPoller-tietoyhdistimen viittaus Codeless Connector Frameworkiin

Voit luoda RestApiPoller tietoliittimen Codeless Connector Frameworkin (CCF) avulla käyttämällä tätä artikkelia tietoyhdistimien Microsoft Sentinel REST -ohjelmointirajapinnan täydennysasiakirjana.

Jokainen tietoyhdistin edustaa tiettyä Microsoft Sentinel -tietoliittimen yhteyttä. Yhdellä tietoyhdistimellä voi olla useita yhteyksiä, jotka noutavat tietoja eri päätepisteistä. Voit viimeistellä CCF-tietoliittimen käyttöönottomallin käyttämällä JSON-määritystä, jonka luot tämän artikkelin avulla.

Lisätietoja on artikkelissa Koodittoman liittimen luominen Microsoft Sentinel varten.

Tietoyhdistimien luominen tai päivittäminen

Etsi uusin vakaa tai esikatselun ohjelmointirajapinnan versio viittaamalla create rest-ohjelmointirajapintadokumentteihin tai update -toimintoihin. - ja update -createtoimintojen välinen ero on se, joka update edellyttää etag -arvoa.

PUT Menetelmä:

https://management.azure.com/subscriptions/{{subscriptionId}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.OperationalInsights/workspaces/{{workspaceName}}/providers/Microsoft.SecurityInsights/dataConnectors/{{dataConnectorId}}?api-version={{apiVersion}}

URI-parametrit

Lisätietoja uusimmasta ohjelmointirajapintaversiosta on kohdassa Tietoliittimet: URI-parametrien luominen tai päivittäminen.

Nimi Kuvaus
dataConnectorId Tietoyhdistimen tunnus. Sen on oltava yksilöllinen nimi, joka on sama kuin pyynnön leipätekstinname parametri.
resourceGroupName Resurssiryhmän nimi, jossa kirjainkoko ei ole merkitsevä.
subscriptionId Kohdetilauksen tunnus.
workspaceName Työtilan nimi , ei tunnus.
Regex-malli on ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$.
api-version Tässä toiminnossa käytettävä ohjelmointirajapinnan versio.

Pyynnön leipäteksti

CCF-tietoliittimen pyynnön leipätekstillä RestApiPoller on seuraava rakenne:

{
   "name": "{{dataConnectorId}}",
   "kind": "RestApiPoller",
   "etag": "",
   "properties": {
        "connectorDefinitionName": "",
        "auth": {},
        "request": {},
        "response": {},
        "paging": "",
        "dcrConfig": ""
   }
}

RestApiPoller

RestApiPoller on ohjelmointirajapinnan kyselyn CCF-tietoyhdistin, jonka avulla voit mukauttaa sivutusta, valtuutusta ja pyyntöjen/vastausten hyötymääriä tietolähteelle.

Nimi Pakollinen Kirjoita Kuvaus
name Tosi Merkkijono URI-parametria vastaavan yhteyden yksilöivä nimi.
kind Tosi Merkkijono Arvo kind . Tämän kentän arvoksi RestApiPolleron asetettava .
etag GUID Arvo etag . Tämä kenttä on jätettävä tyhjäksi, jotta uusi liitin voidaan luoda. Päivitystoimintojen etag on vastattava aiemmin luotua liitintä etag (GUID).
properties.connectorDefinitionName Merkkijono Sen resurssin DataConnectorDefinition nimi, joka määrittää tietoliittimen käyttöliittymämäärityksen. Lisätietoja on kohdassa Tietoyhdistimen määritys.
properties.auth Tosi Sisäkkäinen JSON Tietojen kyselyn todennusominaisuudet. Lisätietoja on kohdassa Todennusmääritys.
properties.request Tosi Sisäkkäinen JSON Pyyntöjen tiedot, kuten ohjelmointirajapinnan päätepiste, kyselyä varten. Lisätietoja on kohdassa Pyynnön määritys.
properties. response Tosi Sisäkkäinen JSON Vastausobjekti ja sisäkkäinen viesti, jonka ohjelmointirajapinta palauttaa, kun se tekee kyselyjä tiedoista. Lisätietoja on kohdassa Vastauksen määritys.
properties.paging Sisäkkäinen JSON Sivutuksen hyötykuorma, kun tietoja kysellään. Lisätietoja on kohdassa Sivutusasetukset.
properties.dcrConfig Sisäkkäinen JSON Pakolliset parametrit, kun tiedot lähetetään tiedonkeräyssääntöön (DCR). Lisätietoja on kohdassa DCR-määritys.

Todennusmääritys

CCF tukee seuraavia todennustyyppejä:

Huomautus

CCF OAuth2 -toteutus ei tue asiakasvarmenteen tunnistetietoja.

Paras käytäntö on käyttää parametreja todennusosiossa tunnistetietojen kiinteän koodauksen sijaan. Lisätietoja on kohdassa Luottamuksellisen syötteen suojaaminen.

Jos haluat luoda käyttöönottomallin, joka käyttää myös parametreja, sinun on vältettävä tämän osion parametreja ylimääräisellä aloitusohjelmalla [. Tämän vaiheen avulla parametrit voivat määrittää arvon sen perusteella, miten käyttäjä on vuorovaikutuksessa liittimen kanssa. Lisätietoja on artikkelissa Mallilausekkeiden ohjausmerkit.

Jotta tunnistetiedot voidaan antaa käyttöliittymästä, -osio edellyttää, connectorUIConfig että annat halutut parametrit kohteessa instructions. Lisätietoja on ohjeaiheessa Koodittoman liittimen sovelluskehyksen tietoyhdistimen määritysviittaus.

Perustodennusta

Kenttä Pakollinen Kirjoita
UserName Tosi Merkkijono
Password Tosi Merkkijono

Tässä on esimerkki perustodennuksesta, joka käyttää kohteessa connectorUIconfigmääritettyjä parametreja:

"auth": {
    "type": "Basic",
    "UserName": "[[parameters('username')]",
    "Password": "[[parameters('password')]"
}

Ohjelmointirajapinnan avain

Kenttä Pakollinen Kirjoita Kuvaus Oletusarvo
ApiKey Tosi Merkkijono Käyttäjän salasana-avain.
ApiKeyName Merkkijono Arvon sisältävän ApiKey URI-otsikon nimi. Authorization
ApiKeyIdentifier Merkkijono Tunnuksen valmisteleminen merkkijonoarvolla. token
IsApiKeyInPostPayload Totuusarvo Arvo, joka määrittää, lähetetäänkö salaisuus leipätekstiin POST otsikon sijaan. false

APIKey todennusesimerkkejä:

"auth": {
    "type": "APIKey",
    "ApiKey": "[[parameters('apikey')]",
    "ApiKeyName": "X-MyApp-Auth-Header",
    "ApiKeyIdentifier": "Bearer"
}

Tämän esimerkin tulos on salasana, joka on määritetty seuraavassa otsikossa lähetetystä käyttäjän syötteestä: X-MyApp-Auth-Header: Bearer apikey.

"auth": { 
    "type": "APIKey",
    "ApiKey": "123123123",
}

Tässä esimerkissä käytetään oletusarvoja ja tuloksena on seuraava otsikko: Authorization: . token 123123123

"auth": { 
    "type": "APIKey",
    "ApiKey": "123123123",
    "ApiKeyName": ""
}

Koska ApiKeyName -arvoksi ""on eksplisiittisesti määritetty , tulos on seuraava otsikko: Authorization: . 123123123

OAuth2

Codeless Connector Framework tukee OAuth 2.0 -valtuutuskoodin myöntämistä ja asiakkaan tunnistetietoja. Luottamukselliset ja julkiset asiakkaat käyttävät valtuutuskoodin myöntämistyyppiä käyttöoikeuskoodin vaihtamiseen käyttöoikeustietuetta varten.

Kun käyttäjä palaa asiakkaaseen uudelleenohjauksen URL-osoitteen kautta, sovellus saa valtuutuskoodin URL-osoitteesta ja pyytää sen avulla käyttöoikeustietuetta.

Kenttä Pakollinen Kirjoita Kuvaus
ClientId Totta. Merkkijono Asiakastunnus.
ClientSecret Totta. Merkkijono Asiakkaan salaisuus.
AuthorizationCode Tosi, grantType kun arvo on authorization_code. Merkkijono Jos myöntämistyyppi on authorization_code, tämä kentän arvo on todennuspalvelimen palauttama valtuutuskoodi.
Scope Tosi avustustyypille authorization_code .
Valinnainen avustustyypille client_credentials .
Merkkijono Välilyönnillä erotettu luettelo käyttöalueista käyttäjän suostumusta varten. Lisätietoja on kohdassa OAuth2-vaikutusalueet ja -käyttöoikeudet.
RedirectUri Tosi, grantType kun arvo on authorization_code. Merkkijono Uudelleenohjauksen URL-osoitteen on oltava https://portal.azure.com/TokenAuthorize/ExtensionName/Microsoft_Azure_Security_Insights.
GrantType Totta. Merkkijono Avustustyyppi. Voi olla authorization_code tai client_credentials.
TokenEndpoint Totta. Merkkijono Url-osoite koodin vaihtamiseen, jossa on kelvollinen tunnus myöntämisessä authorization_code , tai asiakastunnus ja salaisuus, jossa on kelvollinen tunnus myöntämisessä client_credentials .
TokenEndpointHeaders Objekti Valinnainen avain-arvo-objekti mukautettujen otsikoiden lähettämiseksi tunnuspalvelimeen.
TokenEndpointQueryParameters Objekti Valinnainen avain-arvo-objekti mukautettujen kyselyparametrien lähettämiseksi tunnuspalvelimeen.
AuthorizationEndpoint Totta. Merkkijono Käyttäjän työnkulun suostumuksen authorization_code URL-osoite.
AuthorizationEndpointHeaders Objekti Valinnainen avain-arvo-objekti mukautettujen otsikoiden lähettämiseen todennuspalvelimeen.
AuthorizationEndpointQueryParameters Objekti Valinnainen avain-arvopari, jota käytetään OAuth2-valtuutuskoodin työnkulkupyynnössä.

Todennuskoodin työnkulun avulla voit noutaa tietoja käyttäjän käyttöoikeuksien puolesta. Asiakastunnistetietojen avulla voit noutaa tietoja sovelluksen käyttöoikeuksilla. Tietopalvelin myöntää sovelluksen käyttöoikeuden. Koska asiakkaan tunnistetietojen työnkulussa ei ole käyttäjää, valtuutuksen päätepistettä ei tarvita, vain tunnuksen päätepiste.

Tässä on esimerkki OAuth2-avustustyypistä authorization_code :

"auth": {
    "type": "OAuth2",
    "ClientId": "[[parameters('appId')]",
    "ClientSecret": "[[parameters('appSecret')]",
    "tokenEndpoint": "https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/token",
    "authorizationEndpoint": "https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/authorize",
    "authorizationEndpointHeaders": {},
    "authorizationEndpointQueryParameters": {
        "prompt": "consent"
    },
    "redirectUri": "https://portal.azure.com/TokenAuthorize/ExtensionName/Microsoft_Azure_Security_Insights",
    "tokenEndpointHeaders": {
        "Accept": "application/json",
        "Content-Type": "application/x-www-form-urlencoded"
    },
    "TokenEndpointQueryParameters": {},
    "scope": "openid offline_access some_scope",
    "grantType": "authorization_code"
}

Tässä on esimerkki OAuth2-avustustyypistä client_credentials :

"auth": {
    "type": "OAuth2",
    "ClientId": "[[parameters('appId')]",
    "ClientSecret": "[[parameters('appSecret')]",
    "tokenEndpoint": "https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/token",
    "tokenEndpointHeaders": {
        "Accept": "application/json",
        "Content-Type": "application/x-www-form-urlencoded"
    },
    "TokenEndpointQueryParameters": {},
    "scope": "openid offline_access some_scope",
    "grantType": "client_credentials"
}

JWT

JSON Web Token (JWT) -todennus tukee tunnusten hankkimista käyttäjänimen ja salasanan tunnistetiedoilla sekä niiden käyttöä ohjelmointirajapintapyynnöissä.

Perusesimerkki
"auth": {
    "type": "JwtToken",
    "userName": {
        "key": "username",
        "value": "[[parameters('UserName')]"
    },
    "password": {
        "key": "password", 
        "value": "[[parameters('Password')]"
    },
    "TokenEndpoint": "https://token_endpoint.contoso.com",
    "IsJsonRequest": true,
    "JwtTokenJsonPath": "$.access_token"
}
Tunnistetiedot POST-leipätekstissä (oletus)
"auth": {
    "type": "JwtToken",
    "userName": {
        "key": "username",
        "value": "[[parameters('UserName')]"
    },
    "password": {
        "key": "password",
        "value": "[[parameters('Password')]"
    },
    "TokenEndpoint": "https://api.example.com/token",
    "Headers": {
        "Accept": "application/json",
        "Content-Type": "application/json"
    },
    "IsCredentialsInHeaders": false,
    "IsJsonRequest": true,
    "JwtTokenJsonPath": "$.access_token"
}
Tunnistetiedot otsikoissa (perustodennus)
"auth": {
    "type": "JwtToken",
    "userName": {
        "key": "client_id",
        "value": "[[parameters('ClientId')]"
    },
    "password": {
        "key": "client_secret",
        "value": "[[parameters('ClientSecret')]"
    },
    "TokenEndpoint": "https://api.example.com/oauth/token",
    "Headers": {
        "Accept": "application/json"
    },
    "IsCredentialsInHeaders": true,
    "IsJsonRequest": true,
    "JwtTokenJsonPath": "$.access_token",
    "RequestTimeoutInSeconds": 30
}
Tunnistetiedot otsikoissa (käyttäjätunnus)
"auth": {
    "type": "JwtToken",
    "UserToken": "[[parameters('userToken')]",
    "UserTokenPrepend": "Bearer",
    "TokenEndpoint": "https://api.example.com/oauth/token",
    "Headers": {
        "Accept": "application/json"
    },
    "TokenEndpointHttpMethod": "GET",
    "NoAccessTokenPrepend": true,
    "JwtTokenJsonPath": "$.systemToken"
}

Noudata tätä todennustyönkulkua:

  1. Lähetä tunnistetiedot saadaksesi TokenEndpoint JWT-tunnuksen käytettäessä userName ja password, IsCredentialsInHeaders käytetään määrittämään, mihin tunnistetiedot lisätään pyynnössä.

    • If IsCredentialsInHeaders: true: Lähettää perustodennuksen otsikon , jossa on username:password.
    • If IsCredentialsInHeaders: false: Lähettää tunnistetiedot leipätekstissä POST .
  2. Poimi tunnus käyttämällä JwtTokenJsonPath vastauksen otsikkoa tai vastauksesta.

  3. JWT-tunnusten valtuutusotsikko on vakio, ja se on aina Valtuutus.

Kenttä Pakollinen Kirjoita Kuvaus
type Tosi Merkkijono Tyyppi. Oltava JwtToken
userName Tosi (jos userToken ei käytetä) Objekti Tunnistetietojen avain/arvo-pari userName . Jos userName ja password lähetetään otsikkopyynnössä, määritä value ominaisuus käyttäjänimellä. Jos userName ja password lähetetään leipätekstipyynnössä, määritä Key ja Value.
password Tosi (jos userToken ei käytetä) Objekti Salasanan tunnistetietojen avain/arvo-pari. Jos userName ja password lähetetään otsikkopyynnössä, määritä -ominaisuuden value arvolla userName. Jos userName ja password lähetetään leipätekstipyynnössä, määritä Key ja Value.
userToken Tosi (jos userName ei käytetä) Merkkijono Käyttäjätunnus, jonka asiakas loi saadakseen järjestelmän tunnuksen todentamista varten.
UserTokenPrepend Epätosi Merkkijono Arvo, joka ilmaisee, lisätäänkö teksti ennen tunnusta. Oletus: Bearer.
NoAccessTokenPrepend Epätosi Totuusarvo Käyttöoikeusmerkintä, joka ilmaisee, että tunnuksen ei pitäisi edeltää mitään.
TokenEndpointHttpMethod Epätosi Merkkijono Tunnuksen päätepisteen HTTP-menetelmä. Se voi olla Get tai Post. Oletusarvo on Post.
TokenEndpoint Tosi Merkkijono URL-päätepiste, jota käytetään JWT-tunnuksen hankkimiseen.
IsCredentialsInHeaders Totuusarvo Arvo, joka ilmaisee, lähetetäänkö tunnistetiedot perustodennuksen otsikkona (true) vai POST leipätekstinä (false), ohitetaan käytettäessä userToken- Oletusarvo on false.
IsJsonRequest Totuusarvo Arvo, joka ilmaisee, lähetetäänkö pyyntö JSON-muodossa (otsikko Content-Type = application/json) vai lomakekoodattuna (otsikko Content-Type = application/x-www-form-urlencoded). Oletusarvo on false.
JwtTokenJsonPath Merkkijono Arvo, joka ilmaisee JSONPath arvon, jota käytetään tunnuksen poimimiseen vastauksesta. Esimerkki: $.access_token.
JwtTokenInResponseHeader Totuusarvo Arvo, joka ilmaisee, poimitaanko tunnus vastauksen otsikosta vai leipätekstistä. Oletusarvo on false.
JwtTokenHeaderName. Merkkijono Arvo, joka ilmaisee otsikon nimen, kun tunnus on vastauksen otsikossa. Oletusarvo on Authorization.
JwtTokenIdentifier Merkkijono Tunniste, jota käytetään JWT:n poimimiseen etuliitetystä tunnusmerkkijonosta.
QueryParameters Objekti Mukautetut kyselyparametrit, jotka sisällytetään lähetettäessä pyyntöä tunnuksen päätepisteeseen.
Headers Objekti Mukautetut otsikot, jotka sisällytetään, kun pyyntö lähetetään tunnuksen päätepisteeseen.
RequestTimeoutInSeconds Kokonaisluku Pyynnön aikakatkaisu sekunteina. Oletusarvo on , ja sen enimmäisarvo 180on 100.

Huomautus

Rajoitukset

  • Edellyttää käyttäjänimeä ja salasanan todennusta tunnuksen hankintaa varten
  • Ei tue ohjelmointirajapinnan avainpohjaisia tunnuspyyntöjä
  • Ei tue mukautettua ylätunnistetodennusta (ilman käyttäjänimeä ja salasanaa)

Pyynnön määritys

Pyyntö-osiossa määritetään, miten CCF-tietoyhdistin lähettää pyyntöjä tietolähteeseen (esimerkiksi ohjelmointirajapinnan päätepisteeseen ja kuinka usein päätepisteeseen lähetetään kysely).

Kenttä Pakollinen Kirjoita Kuvaus
ApiEndpoint Totta. Merkkijono Tämä kenttä määrittää etäpalvelimen URL-osoitteen ja päätepisteen, josta tiedot haetaan.
RateLimitQPS Kokonaisluku Tämä kenttä määrittää alkuperäisen pyynnön sallittujen kutsujen tai kyselyiden määrän sekunnissa. Se ei koske sivutettuja pyyntöjä. Voit rajoittaa sivutusta määrittämällä PaginatedCallsPerSecond.
PaginatedCallsPerSecond Kaksinkertainen (0...1000) Tämä kenttä määrittää sivutetuille restful-ohjelmointirajapinnalle sallittujen kutsujen määrän sekunnissa. Se aiheuttaa kunkin sivutetun ohjelmointirajapintakutsun (1000 / paginatedCallsPerSecond) välisen millisekunnin viiveen. Tämä rajoitus koskee vain sivutuspyyntöjä, ja se on erillinen kohteesta RateLimitQPS, joka hallitsee alkuperäistä pyyntöprosenttia. Yleensä tämä arvo määritetään samaksi kuin RateLimitQPS tietolähteen korkorajoituksen noudattamiseksi kaikissa pyynnöissä. 0 arvo tarkoittaa, että sivutuksen rajoittamista ei käytetä.
RateLimitConfig Objekti Tämä kenttä määrittää RESTful-ohjelmointirajapinnan korvausrajoitusmäärityksen. Lisätietoja on esimerkissäRateLimitConfig.
QueryWindowInMin Kokonaisluku Tämä kenttä määrittää käytettävissä olevan kyselyikkunan muutamassa minuutissa. Pienin arvo on 1 minuutti. Oletusarvo on 5 minuuttia.
HttpMethod Merkkijono Tämä kenttä määrittää ohjelmointirajapinnan menetelmän: GET(oletus) tai POST.
QueryTimeFormat Merkkijono Tämä kenttä määrittää päätepisteen (etäpalvelimen) odottavan päivämäärän ja kellonajan muodon. CCF käyttää nykyistä päivämäärää ja aikaa aina, kun tätä muuttujaa käytetään. Mahdollisia arvoja ovat vakiot: UnixTimestamp, UnixTimestampInMills, tai mikä tahansa muu kelvollinen päivämäärän ja ajan esitysmuoto. Esimerkki: yyyy-MM-dd, MM/dd/yyyy HH:mm:ss.
Oletusarvo on ISO 8601 UTC.
RetryCount Kokonaisluku (1...6) Tämä kenttä määrittää, että uudelleenyrityksiä käyttävien 16 arvojen voi palauttaa virheestä. Oletusarvo on 3.
TimeoutInSeconds Kokonaisluku (1...180) Tämä kenttä määrittää pyynnön aikakatkaisun sekunteina. Oletusarvo on 20.
IsPostPayloadJson Totuusarvo Tämä kenttä määrittää, POST onko hyötykuorma JSON-muodossa. Oletusarvo on false.
Headers Objekti Tämä kenttä sisältää avain-arvo-pareja, jotka määrittävät pyynnön otsikot.
QueryParameters Objekti Tämä kenttä sisältää avain-arvo-pareja, jotka määrittävät pyynnön kyselyparametrit.
StartTimeAttributeName Tosi, EndTimeAttributeName kun arvo on määritetty. Merkkijono Tämä kenttä määrittää kyselyn parametrin nimen kyselyn alkamisajalle. Lisätietoja on esimerkissäStartTimeAttributeName.
EndTimeAttributeName Tosi, kun StartTimeAttributeName asetus on määritetty. Merkkijono Tämä kenttä määrittää kyselyn parametrin nimen kyselyn päättymisajalle.
QueryTimeIntervalAttributeName Merkkijono Tätä kenttää käytetään, jos päätepiste edellyttää erityistä muotoa tietojen kyselyille tietyllä aikavälillä. Käytä tätä ominaisuutta - ja QueryTimeIntervalDelimiter -QueryTimeIntervalPrependparametrien kanssa. Lisätietoja on esimerkissäQueryTimeIntervalAttributeName.
QueryTimeIntervalPrepend Tosi, kun QueryTimeIntervalAttributeName asetus on määritetty. Merkkijono Viittaus QueryTimeIntervalAttributeName.
QueryTimeIntervalDelimiter Tosi, kun QueryTimeIntervalAttributeName asetus on määritetty. Merkkijono Viittaus QueryTimeIntervalAttributeName.
QueryParametersTemplate Merkkijono Tämä kenttä viittaa kyselymalliin, jota käytetään välitettäessä parametreja kehittyneissä skenaarioissa.

Esimerkki: "queryParametersTemplate": "{'cid': 1234567, 'cmd': 'reporting', 'format': 'siem', 'data': { 'from': '{_QueryWindowStartTime}', 'to': '{_QueryWindowEndTime}'}, '{_APIKeyName}': '{_APIKey}'}".
InitialCheckpointTimeUtc DateTime (UTC) Määrittää kyselyn alkamisajan ensimmäiselle kyselylle, kun tallennettua tarkistuspistettä ei ole. Kun tarkistuspiste on pysyvä ensimmäisen onnistuneen kyselyn jälkeen, tämä arvo ohitetaan. Tämä asetus tulee voimaan vain, kun liittimen pyyntömääritys määrittää aloitusajan kyselyparametrin (kuten startTimeAttributeName tai {_QueryWindowStartTime} korvaavan tunnuksen) ilman vastaavaa lopetusajan parametria. Sillä ei ole vaikutusta liittimiin, jotka käyttävät yksinomaan sivutusasettajia tai -tunnuksia. Muoto: ISO 8601 UTC datetime (esimerkiksi 2024-01-15T00:00:00Z).

Kun ohjelmointirajapinta vaatii monimutkaisia parametreja, käytä queryParameters tai queryParametersTemplate. Nämä komennot sisältävät joitakin sisäisiä muuttujia.

Sisäinen muuttuja Käytettäväksi kohteessa queryParameters Käytettäväksi kohteessa queryParametersTemplate
_QueryWindowStartTime Kyllä Kyllä
_QueryWindowEndTime Kyllä Kyllä
_APIKeyName Ei Kyllä
_APIKey Ei Kyllä

Esimerkki StartTimeAttributeName

Katso tätä esimerkkiä:

  • StartTimeAttributeName = from
  • EndTimeAttributeName = until
  • ApiEndpoint = https://www.example.com

Etäpalvelimeen lähetetty kysely on: https://www.example.com?from={QueryTimeFormat}&until={QueryTimeFormat + QueryWindowInMin}.

Esimerkki QueryTimeIntervalAttributeName

Katso tätä esimerkkiä:

  • QueryTimeIntervalAttributeName = interval
  • QueryTimeIntervalPrepend = time:
  • QueryTimeIntervalDelimiter = ..
  • ApiEndpoint = https://www.example.com

Etäpalvelimeen lähetetty kysely on: https://www.example.com?interval=time:{QueryTimeFormat}..{QueryTimeFormat + QueryWindowInMin}.

Esimerkki RateLimitConfig-määrityksestä

Katso tätä esimerkkiä:

ApiEndpoint = https://www.example.com.

"rateLimitConfig": {
  "evaluation": {
    "checkMode": "OnlyWhen429"
  },
  "extraction": {
    "source": "CustomHeaders",
    "headers": {
      "limit": {
        "name": "X-RateLimit-Limit",
        "format": "Integer"
      },
      "remaining": {
        "name": "X-RateLimit-Remaining",
        "format": "Integer"
      },
      "reset": {
        "name": "X-RateLimit-RetryAfter",
        "format": "UnixTimeSeconds"
      }
    }
  },
  "retryStrategy": {
    "useResetOrRetryAfterHeaders": true
  }
}

Kun vastaus sisältää nopeusrajoitusotsikoita, liitin voi näiden tietojen avulla säätää pyyntönopeuttaan.

Pyydä esimerkkejä, joissa käytetään Microsoft Graphia tietolähteen ohjelmointirajapintana

Tässä esimerkissä lähetetään kyselyt suodatinkyselyparametrilla. Lisätietoja on artikkelissa Microsoft Graph -ohjelmointirajapinnan kyselyparametrit.

"request": {
  "apiEndpoint": "https://graph.microsoft.com/v1.0/me/messages",
  "httpMethod": "Get",
  "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
  "queryWindowInMin": 10,
  "retryCount": 3,
  "rateLimitQPS": 20,
  "headers": {
    "Accept": "application/json",
    "User-Agent": "Example-app-agent"
  },
  "QueryTimeIntervalAttributeName": "filter",
  "QueryTimeIntervalPrepend": "receivedDateTime gt ",
  "QueryTimeIntervalDelimiter": " and receivedDateTime lt "
}

Edellinen esimerkki lähettää GET pyynnön käyttäjälle https://graph.microsoft.com/v1.0/me/messages?filter=receivedDateTime gt {time of request} and receivedDateTime lt 2019-09-01T17:00:00.0000000. Aikaleima päivittyy joka queryWindowInMin kerta.

Saat samat tulokset tällä esimerkillä:

"request": {
  "apiEndpoint": "https://graph.microsoft.com/v1.0/me/messages",
  "httpMethod": "Get",
  "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
  "queryWindowInMin": 10,
  "retryCount": 3,
  "rateLimitQPS": 20,
  "headers": {
    "Accept": "application/json",
  },
  "queryParameters": {
    "filter": "receivedDateTime gt {_QueryWindowStartTime} and receivedDateTime lt {_QueryWindowEndTime}"
  }
}

On olemassa toinen vaihtoehto tilanteissa, joissa tietolähde odottaa kahta kyselyparametria (yksi aloitusajalle ja toinen päättymisajalle).

Esimerkki:

"request": {
  "apiEndpoint": "https://graph.microsoft.com/v1.0/me/calendarView",
  "httpMethod": "Get",
  "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
  "queryWindowInMin": 10,
  "retryCount": 3,
  "rateLimitQPS": 20,
  "headers": {
    "Accept": "application/json",
  },
  "StartTimeAttributeName": "startDateTime",
  "EndTimeAttributeName": "endDateTime",
}

Tämä asetus lähettää GET pyynnön kohteeseen https://graph.microsoft.com/me/calendarView?startDateTime=2019-09-01T09:00:00.0000000&endDateTime=2019-09-01T17:00:00.0000000.

Jos kyseessä on monimutkainen kysely, käytä .-parametria QueryParametersTemplate. Tässä esimerkissä lähetetään pyyntö, jonka POST leipätekstissä on parametreja:

"request": {
  "apiEndpoint": "https://graph.microsoft.com/v1.0/me/messages",
  "httpMethod": "POST",
  "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
  "queryWindowInMin": 10,
  "retryCount": 3,
  "rateLimitQPS": 20,
  "headers": {
    "Accept": "application/json",
  },
  "isPostPayloadJson": true,
  "queryParametersTemplate": "{\"query":"TableName | where createdTimestamp between (datetime({_QueryWindowStartTime}) .. datetime({_QueryWindowEndTime}))\"}"
}

Vastauksen määritys

Määritä, miten tietoyhdistin käsittelee vastauksia seuraavien parametrien avulla:

Kenttä Pakollinen Kirjoita Kuvaus
EventsJsonPaths Tosi Merkkijonoluettelo Määrittää viestin polun vastauksessa JSON. JSON-polkulauseke määrittää polun JSON-rakenteen elementtiin tai elementtijoukkoon.
SuccessStatusJsonPath Merkkijono Määrittää onnistumisviestin polun vastauksessa JSON. Kun tämä parametri on määritetty, SuccessStatusValue myös parametri tulee määrittää.
SuccessStatusValue Merkkijono Määrittää polun onnistumisviestin arvoon vastauksessa JSON.
IsGzipCompressed Totuusarvo Määrittää, pakataanko vastaus GZIP-tiedostoon.
format Tosi Merkkijono Määrittää, onko muoto json, csv, vai xml.
CompressionAlgo Merkkijono Määrittää pakkausalgoritmin, joko multi-gzip tai deflate. Jos kyseessä on GZIP-pakkausalgoritmi, määritä IsGzipCompressed arvo True tämän parametrin arvon asemesta.
CsvDelimiter Merkkijono Viittaa , jos vastausmuoto on CSV ja haluat muuttaa csv-oletuserotinta ",".
HasCsvBoundary Totuusarvo Ilmaisee, onko CSV-tiedoilla reuna.
HasCsvHeader Totuusarvo Ilmaisee, onko CSV-tiedoissa otsikko. Oletusarvo on True.
CsvEscape Merkkijono Määrittää kentän reunan ohjausmerkin. Oletusarvo on "

Esimerkiksi CSV, jossa on otsikoita id,name,avg ja tietorivi, joka sisältää esimerkiksi välilyöntejä 1,"my name",5.5 , edellyttää kentän reunaa " .
ConvertChildPropertiesToArray Totuusarvo Viittaa erityistapaukseen, jossa etäpalvelin palauttaa objektin tapahtumaluettelon sijaan, jossa kukin ominaisuus sisältää tietoja.

Huomautus

CSV-muototyyppi jäsennetaan määrityksellä RFC4180 .

Vastauksen määritysesimerkkejä

Odotettiin palvelimen vastausta JSON-muodossa. Vastauksessa on pyydettyjä tietoja ominaisuuden arvossa. Vastauksen ominaisuuden tila ilmaisee tietojen käsittelyn vain, jos arvo on success.

"response": {
  "EventsJsonPaths ": ["$.value"],
  "format": "json",
  "SuccessStatusJsonPath": "$.status",
  "SuccessStatusValue": "success",
  "IsGzipCompressed": true
 }

Tämän esimerkin odotettu vastaus valmistautuu CSV-tiedostoon, jolla ei ole otsikkoa.

"response": {
  "EventsJsonPaths ": ["$"],
  "format": "csv",
  "HasCsvHeader": false
 }

Sivutusmääritys

Kun tietolähde ei voi lähettää koko vastauksen hyötykuormaa kerralla, CCF-tietoliittimen on tiedettävä, miten se voi vastaanottaa osia tiedoista vastaussivuilla. Valittavat sivutustyypit ovat seuraavat:

Sivutustyyppi Päätöstekijä
Onko ohjelmointirajapinnan vastauksessa linkkejä seuraaville ja edellisille sivuille?
Onko ohjelmointirajapinnan vastauksessa tunnus tai kohdistin seuraaville ja edellisille sivuille?
Tukeeko ohjelmointirajapinnan vastaus ohitettavien objektien määrän parametria sivutettaessa?
Tukeeko ohjelmointirajapinnan vastaus palautettavien objektien määrän parametria?

Määritä LinkHeader tai PersistentLinkHeader

Yleisin sivutustyyppi on, kun palvelimen tietolähteen ohjelmointirajapinta tarjoaa URL-osoitteet seuraaville ja aiemmille tietosivuille. Lisätietoja Link header - määrityksestä on kohdassa RFC 5988.

LinkHeader sivutus tarkoittaa, että ohjelmointirajapinnan vastaus sisältää jommankumman seuraavista:

  • HTTP-vastauksen Link otsikko.
  • JSON-polku linkin noutamiseksi vastauksen leipätekstistä.

PersistentLinkHeader-type-sivutus sisältää samat ominaisuudet kuin LinkHeader, mutta linkin otsikko säilyy taustasäilössä. Tämä asetus ottaa käyttöön linkkien sivuttamisen kyselyikkunoissa.

Esimerkiksi jotkin ohjelmointirajapinnat eivät tue kyselyn alkamis- tai päättymisaikoja. Sen sijaan ne tukevat palvelinpuolen kohdistinta. Pysyvien sivutyyppien avulla voit muistaa palvelinpuolen kohdistimen. Lisätietoja on kohdassa Mikä on kohdistin?.

Huomautus

Vain yksi liittimen kysely voidaan suorittaa PersistentLinkHeader kanssa, jotta vältetään kilpailuolosuhteet palvelinpuolen kohdistimella. Tämä ongelma saattaa vaikuttaa viivettä.

Kenttä Pakollinen Kirjoita Kuvaus
LinkHeaderTokenJsonPath Epätosi Merkkijono Tämän ominaisuuden avulla voit määrittää, mistä vastauksen leipätekstin arvo noutaa.

Jos tietolähde esimerkiksi palauttaa seuraavan JSON:n: { nextPage: "foo", value: [{data}]}, LinkHeaderTokenJsonPath arvo on $.nextPage.
PageSize Epätosi Kokonaisluku Tämän ominaisuuden avulla voit määrittää sivukohtaisten tapahtumien määrän.
PageSizeParameterName Epätosi Merkkijono Määritä sivun koko tämän kyselyparametrin nimen avulla.
PagingInfoPlacement Epätosi Merkkijono Tämän ominaisuuden avulla voit määrittää, miten sivutustiedot täytetään. Hyväksyy jommankumman QueryString tai RequestBody.
PagingQueryParamOnly Epätosi Totuusarvo Tämän ominaisuuden avulla voit määrittää kyselyparametreja. Jos asetuksena on tosi, se jättää pois kaikki muut kyselyparametrit paitsi kyselyn sivutusparametrit.

Seuraavassa on joitakin esimerkkejä:

"paging": {
  "pagingType": "LinkHeader",
  "linkHeaderTokenJsonPath" : "$.metadata.links.next"
}
"paging": {
 "pagingType" : "PersistentLinkHeader", 
 "pageSizeParameterName" : "limit", 
 "pageSize" : 500 
}

Määritä NextPageUrl

NextPageUrl-tyypin sivutus tarkoittaa, että ohjelmointirajapinnan vastaus sisältää vastauksen leipätekstissä monimutkaisen linkin, joka on samanlainen kuin LinkHeader, mutta URL-osoite sisältyy vastauksen leipätekstiin otsikon sijaan.

Kenttä Pakollinen Kirjoita Kuvaus
PageSize Epätosi Kokonaisluku Sivukohtaisten tapahtumien määrä.
PageSizeParameterName Epätosi Merkkijono Sivun koon kyselyparametrin nimi.
NextPageUrl Epätosi Merkkijono Kenttä, jota käytetään vain, jos yhdistin on Coralogix-ohjelmointirajapintaa varten.
NextPageUrlQueryParameters Epätosi Objekti Avain-arvo-parit, jotka lisäävät mukautetun kyselyparametrin kuhunkin seuraavan sivun pyyntöön.
NextPageParaName Epätosi Merkkijono Pyynnön seuraavan sivun nimi.
HasNextFlagJsonPath Epätosi Merkkijono Merkintämääritteen HasNextPage polku.
NextPageRequestHeader Epätosi Merkkijono Pyynnön seuraavan sivun otsikon nimi.
NextPageUrlQueryParametersTemplate Epätosi Merkkijono Kenttä, jota käytetään vain, jos yhdistin on Coralogix-ohjelmointirajapintaa varten.
PagingInfoPlacement Epätosi Merkkijono Kenttä, joka määrittää, miten sivutustiedot täytetään. Hyväksyy jommankumman QueryString tai RequestBody.
PagingQueryParamOnly Epätosi Totuusarvo Kenttä, joka määrittää kyselyparametrit. Jos asetuksena on tosi, se jättää pois kaikki muut kyselyparametrit paitsi kyselyn sivutusparametrit.

Esimerkki:

"paging": {
 "pagingType" : "NextPageUrl", 
  "nextPageTokenJsonPath" : "$.data.repository.pageInfo.endCursor", 
  "hasNextFlagJsonPath" : "$.data.repository.pageInfo.hasNextPage", 
  "nextPageUrl" : "https://api.github.com/graphql", 
  "nextPageUrlQueryParametersTemplate" : "{'query':'query{repository(owner:\"xyz\")}" 
}

Määritä NextPageToken tai PersistentToken

NextPageToken-type-sivutus käyttää tunnusta (hajautusarvoa tai kohdistinta), joka edustaa nykyisen sivun tilaa. Tunnus sisältyy ohjelmointirajapinnan vastaukseen, ja asiakas liittää sen seuraavaan pyyntöön seuraavan sivun noutamiseksi. Tätä menetelmää käytetään usein, kun palvelimen on ylläpidettävä pyyntöjen välistä tarkkaa tilaa.

PersistentToken sivutus käyttää tunnusta, joka säilyy palvelinpuolella. Palvelin muistaa asiakkaan viimeisen noudon tunnuksen ja antaa seuraavan tunnuksen myöhemmissä pyynnöissä. Asiakas jatkaa sitä, mihin jäi, vaikka se tekee uusia pyyntöjä myöhemmin.

Kenttä Pakollinen Kirjoita Kuvaus
PageSize Epätosi Kokonaisluku Sivukohtaisten tapahtumien määrä.
PageSizeParameterName Epätosi Merkkijono Sivun koon kyselyparametrin nimi.
NextPageTokenJsonPath Epätosi Merkkijono Vastauksen leipätekstin seuraavan sivutunnuksen JSON-polku.
NextPageTokenResponseHeader Epätosi Merkkijono Kenttä, joka määrittää, että jos NextPageTokenJsonPath se on tyhjä, käytä seuraavan sivun tämän ylätunnisteen tunnusta.
NextPageParaName Epätosi Merkkijono Kenttä, joka määrittää pyynnön seuraavan sivun nimen.
HasNextFlagJsonPath Epätosi Merkkijono Kenttä, joka määrittää lippumääritteen polun HasNextPage , kun määritetään, jätetäänkö vastaukseen lisää sivuja.
NextPageRequestHeader Epätosi Merkkijono Kenttä, joka määrittää pyynnön seuraavan sivun otsikon nimen.
PagingInfoPlacement Epätosi Merkkijono Kenttä, joka määrittää, miten sivutustiedot täytetään. Hyväksyy jommankumman QueryString tai RequestBody.
PagingQueryParamOnly Epätosi Totuusarvo Kenttä, joka määrittää kyselyparametrit. Jos asetuksena on tosi, se jättää pois kaikki muut kyselyparametrit paitsi kyselyn sivutusparametrit.

Esimerkkejä:

"paging": {
 "pagingType" : "NextPageToken", 
 "nextPageRequestHeader" : "ETag", 
 "nextPageTokenResponseHeader" : "ETag" 
}
"paging": {
 "pagingType" : "PersistentToken", 
    "nextPageParaName" : "gta", 
    "nextPageTokenJsonPath" : "$.alerts[-1:]._id" 
}

Määritä siirtymä

Offset-type-sivutus määrittää ohitettavien sivujen määrän ja pyyntöön sivua kohden noudettavien tapahtumien määrän rajoituksen. Asiakkaat noutavat tietojoukosta tietyn kohdealueen.

Kenttä Pakollinen Kirjoita Kuvaus
PageSize Epätosi Kokonaisluku Sivukohtaisten tapahtumien määrä.
PageSizeParameterName Epätosi Merkkijono Sivun koon kyselyparametrin nimi.
OffsetParaName Epätosi Merkkijono Seuraavan pyynnön kyselyparametrin nimi. CCF laskee kunkin pyynnön siirtymäarvon (kaikki tapahtumat, jotka on kirjattu + 1).
PagingInfoPlacement Epätosi Merkkijono Kenttä, joka määrittää, miten sivutustiedot täytetään. Hyväksyy jommankumman QueryString tai RequestBody.
PagingQueryParamOnly Epätosi Totuusarvo Kenttä, joka määrittää kyselyparametrit. Jos asetuksena on tosi, se jättää pois kaikki muut kyselyparametrit paitsi kyselyn sivutusparametrit.

Esimerkki:

"paging": {
  "pagingType": "Offset", 
  "offsetParaName": "offset",
  "pageSize": 50,
  "pagingQueryParamOnly": true,
  "pagingInfoPlacement": "QueryString"
}

Määritä countBasedPaging

CountBasedPaging-type-sivutuksen avulla asiakas voi määrittää vastauksessa palautettavien kohteiden määrän. Tämä ominaisuus on hyödyllinen ohjelmointirajapinnoille, jotka tukevat määräparametrin perusteella sivutusta osana vastauksen hyötykuormaa.

Kenttä Pakollinen Kirjoita Kuvaus
pageNumberParaName Tosi Merkkijono HTTP-pyynnön sivunumeron parametrin nimi.
PageSize Epätosi Kokonaisluku Sivukohtaisten tapahtumien määrä.
ZeroBasedIndexing Epätosi Totuusarvo Merkintä, joka ilmaisee, että määrä on nollapohjainen.
HasNextFlagJsonPath Epätosi Merkkijono HTTP-vastausten hyötykuormassa olevan merkinnän JSON-polku, joka ilmaisee, että sivuja on enemmän.
TotalResultsJsonPath Epätosi Merkkijono HTTP-vastausten hyötykuorman tulosten kokonaismäärän JSON-polku.
PageNumberJsonPath Epätosi Merkkijono HTTP-vastauskuorman sivunumeron JSON-polku. Pakollinen, jos totalResultsJsonPath se on annettu.
PageCountJsonPath Epätosi Merkkijono HTTP-vastausten hyötykuorman sivumäärän JSON-polku. Pakollinen, jos totalResultsJsonPath se on annettu.
PagingInfoPlacement Epätosi Merkkijono Kenttä, joka määrittää, miten sivutustiedot täytetään. Hyväksyy jommankumman QueryString tai RequestBody.
PagingQueryParamOnly Epätosi Totuusarvo Kenttä, joka määrittää kyselyparametrit. Jos asetuksena on tosi, se jättää pois kaikki muut kyselyparametrit paitsi kyselyn sivutusparametrit.

Esimerkki:

"paging": {
 "pagingType" : "CountBasedPaging", 
 "pageNumberParaName" : "page", 
 "pageSize" : 10, 
 "zeroBasedIndexing" : true, 
 "hasNextFlagJsonPath" : "$.hasNext", 
 "totalResultsJsonPath" : "$.totalResults", 
 "pageNumberJsonPath" : "$.pageNumber", 
 "pageCountJsonPath" : "$.pageCount"
}

Dcr-määritys

Kenttä Pakollinen Kirjoita Kuvaus
DataCollectionEndpoint Tosi Merkkijono Tietojen keräämisen päätepiste (DCE). Esimerkki: https://example.ingest.monitor.azure.com.
DataCollectionRuleImmutableId Tosi Merkkijono Dcr:n muuttumaton tunnus. Etsi se tarkastelemalla dcr-luontivastaus tai käyttämällä DCR-ohjelmointirajapintaa.
StreamName Tosi Merkkijono Tämä arvo on streamDeclaration määritetty DCR:ssä. Etuliitteen alussa Custom-on oltava .

Esimerkki CCF-tietoyhdistimestä

Tässä on esimerkki kaikista CCF-tietoliittimen JSON:n osista:

{
   "kind": "RestApiPoller",
   "properties": {
      "connectorDefinitionName": "ConnectorDefinitionExample",
      "dcrConfig": {
           "streamName": "Custom-ExampleConnectorInput",
           "dataCollectionEndpoint": "https://example-dce-sbsr.location.ingest.monitor.azure.com",
           "dataCollectionRuleImmutableId": "dcr-32_character_hexadecimal_id"
            },
      "dataType": "ExampleLogs",
      "auth": {
         "type": "Basic",
         "password": "[[parameters('username')]",
         "userName": "[[parameters('password')]"
      },
      "request": {
         "apiEndpoint": "https://rest.contoso.com/example",
         "rateLimitQPS": 10,
         "rateLimitConfig": {
            "evaluation": {
              "checkMode": "OnlyWhen429"
            },
            "extraction": {
              "source": "CustomHeaders",
              "headers": {
                "limit": {
                  "name": "X-RateLimit-Limit",
                  "format": "Integer"
                },
                "remaining": {
                  "name": "X-RateLimit-Remaining",
                  "format": "Integer"
                },
                "reset": {
                  "name": "X-RateLimit-RetryAfter",
                  "format": "UnixTimeSeconds"
                }
              }
            },
            "retryStrategy": {
              "useResetOrRetryAfterHeaders": true
            }
         },
         "queryWindowInMin": 5,
         "httpMethod": "POST",
         "queryTimeFormat": "UnixTimestamp",
         "startTimeAttributeName": "t0",
         "endTimeAttributeName": "t1",
         "retryCount": 3,
         "timeoutInSeconds": 60,
         "headers": {
            "Accept": "application/json",
            "User-Agent": "Example-app-agent"
         } 
      },
      "paging": {
         "pagingType": "LinkHeader",
         "pagingInfoPlacement": "RequestBody",
         "pagingQueryParamOnly": true
      },
      "response": {
         "eventsJsonPaths": ["$"]
      }
   }
}