Tilslut dit SIEM til Uniqkeys auditlog-feed

Har du flere spørgsmål? Indsend en anmodning

Uniqkey kan streame din organisations sikkerhedshændelser til dit SIEM (Microsoft Sentinel, Splunk, Elastic, Wazuh eller ethvert værktøj, der kan forespørge et REST API). Denne artikel forklarer, hvordan du aktiverer integrationen i Admin Portal, hvordan events-API'et fungerer, og hvad du kan forvente af dataene.

Hvem kan bruge dette

  • Integrationen aktiveres pr. organisation af en organisationsadministrator i Admin Portal.
  • Dit SIEM skal have udgående HTTPS-adgang til Uniqkeys events-endpoint.
  • Events er de samme auditlogposter, som du allerede kan se under Audit logs i Admin Portal. Intet, der ikke er synligt dér, eksporteres, og vault-hemmeligheder, adgangskoder eller nøgler inkluderes aldrig.

Trin 1: Aktivér integrationen og generér et token

  1. Log ind på Admin Portal som administrator.
  2. Gå til Integrations og åbn fanen SIEM.
  3. Kopiér det API endpoint der vises øverst i widgetten. Dette er den URL, som dit SIEM vil forespørge.
  4. Slå SIEM til, eller klik på Generate Token. En dialogboks viser dit nye token.
  5. Kopiér tokenet, og gem det i dit SIEMs secret store. Tokenet vises kun én gang. Når du lukker dialogboksen, kan det ikke vises igen.

Administration af tokenet efterfølgende:

  • Regenerate Token udsteder et nyt token og ugyldiggør straks det gamle. Opdatér dit SIEM før eller umiddelbart efter regenereringen, ellers stopper polling.
  • Hvis du slår SIEM fra, slettes tokenet, og integrationen deaktiveres. Dit SIEM vil modtage 403 Forbidden until a new token is generated.
  • Der er ét token pr. organisation. Hvis flere værktøjer skal bruge feedet, deler de tokenet.
  • Generering eller sletning af et token registreres også i auditloggen.

Trin 2: Konfigurér dit SIEM

Alle SIEM-connectors har brug for de samme tre ting:

IndstillingVærdi
AnmodningGET på API-endpointet, der blev kopieret fra SIEM-fanen (.../api/v1/events)
GodkendelseHTTP-header Authorization: Bearer <your token>
PagineringGem cursor fra hvert svar, og send den tilbage som cursor-queryparameteren i den næste anmodning. Fortsæt polling, mens has_more er true.

Polling hvert 5. minut er et godt udgangspunkt. Events bliver tilgængelige cirka 2 minutter efter, de sker (se "Hvad du kan forvente af dataene" nedenfor), så der er ingen fordel ved at polle oftere end hvert 2. minut.

Hurtig test med curl

curl -s "https://<endpoint>/api/v1/events?limit=5" \
  -H "Authorization: Bearer <your token>"

En fungerende opsætning returnerer HTTP 200 med en JSON-body som den i afsnittet "Svar". 401 betyder, at Authorization-headeren mangler eller ikke er et Bearer-token. 403 betyder, at tokenet er ukendt, er blevet regenereret, eller at integrationen er deaktiveret.

API-reference

Anmodning

GET /api/v1/events

QueryparameterBeskrivelse
cursorPositionsmarkør fra et tidligere svar. Send den tilbage uændret. Når den er angivet, bestemmer den, hvor siden starter; start ignoreres.
startNedre tidsgrænse, inklusive, ISO 8601 (for eksempel 2026-09-01T00:00:00Z). Brug den ved første polling eller til backfill. UTC antages, når der ikke er angivet en tidszone.
endØvre tidsgrænse, eksklusive, ISO 8601. Anvendes sammen med cursor, så en afgrænset backfill kan paginere gennem dataene.
limitEvents pr. side. Standard er 200, maksimum er 1000. Værdier uden for intervallet begrænses i stedet for at blive afvist.
categoryFiltrér efter én eller flere kategorier. Gentag parameteren, eller adskil værdier med kommaer: ?category=authentication,credential_access. Hvis den udelades, betyder det alle kategorier.

En anmodning uden parametre er gyldig og returnerer din organisations historik fra begyndelsen, én side ad gangen.

Cursoren er opaque. Du må ikke konstruere, parse eller ændre den. Formatet kan ændres uden varsel, men en cursor, du har modtaget, vil fortsat fungere.

Svar

{
  "events": [ ... ],
  "has_more": true,
  "cursor": "eyJUIjoiMjAyNi0wOS0wMVQwOToxNDoyMi4xMTdaIiwiSSI6Ijlh..."
}
  • Events returneres med de ældste først.
  • has_more fortæller, om du straks skal anmode om næste side. Loop på has_more, ikke på et tomt events-array: En side kan være tom, selvom der stadig er flere data.
  • cursor er altid til stede, også på tomme sider og når has_more er false. Gem den som dit checkpoint efter hvert svar.

Fejl returnerer HTTP 400 med en maskinlæsbar kode:

{ "error": { "code": "invalid_cursor", "message": "Cursor is not valid. Submit the cursor from a previous response verbatim." } }
KodeBetydning
invalid_cursorCursoren blev ændret eller stammer ikke fra dette API. Start igen fra et start-tidspunkt.
invalid_categoryUkendt kategoriværdi. Meddelelsen viser de gyldige værdier.

Newline-delimited JSON

Hvis din collector foretrækker én event pr. linje (Splunk generic REST inputs, Elastic, log shippers), skal du sende Accept: application/x-ndjson. Body'en indeholder derefter én JSON-event pr. linje uden envelope, og pagineringsfelterne flyttes til response headers:

Content-Type: application/x-ndjson
X-Next-Cursor: eyJUIjoi...
X-Has-More: true

Headerne giver de samme garantier som JSON-body'en: Cursoren er altid til stede, også på en tom side.

Event-format

{
  "id": "9a1c7f2e-4b13-4a8e-9f21-0c2b7d5e8a44",
  "timestamp": "2026-09-01T09:14:22.117Z",
  "category": "credential_access",
  "action": "get_vault_password_details",
  "action_id": "daf12269-a58f-4e3a-ab01-05b1293a7cac",
  "action_source": "extension",
  "outcome": "success",
  "organization_id": "d5ecd732-4a67-418c-9dea-38a097fba1f6",
  "actor": { "id": "3f2a...", "email": "jane.doe@example.com", "type": "user" },
  "client": { "system": "extension", "ip": "185.23.44.9" },
  "target": { "type": "vault", "id": "7c9d...", "name": "GitHub build account" }
}
FeltBeskrivelse
idUnikt event-id. Brug det til deduplikering.
timestampTidspunktet, hvor eventen fandt sted, i UTC.
categoryEn af kategorierne nedenfor. Stabil: En given handling skifter aldrig kategori.
actionMenneskeligt læsbart handlingsnavn, for eksempel login_to_extension. Ikke unikt (samme handling fra to grænseflader deler et navn) og ikke garanteret stabilt. Brug det til visning.
action_idStabil identifikator for handlingstypen. Byg detektionsregler på denne, ikke på action.
action_sourceHvilken del af Uniqkey der definerer handlingen: extension, mobile, web_portal, partner_portal, scim_service, desktop_extension, queue_messages, breach. Brug den til at skelne mellem to events med samme action.
outcomesuccess eller failure. Se bemærkningen under "Hvad du kan forvente af dataene".
organization_idDin organisations-id.
actor.id, actor.emailDen medarbejder, der udførte handlingen, når der er en.
actor.typeuser, scim, system, supporter (en partner-supportbruger) eller breach.
client.systemHvor anmodningen kom fra: extension, mobile, web, desktop, eller undefined. Mange events indeholder undefined; foretræk action_source når du har brug for at identificere grænsefladen.
client.ipAnmodningens kilde-IP, når den registreres. Kan mangle.
target.type, target.id, target.nameDet objekt, der blev handlet på: vault, employee, group, employee_group, resource_collection, eller tag. name er objektets navn på tidspunktet for eventen og kan mangle (tags indeholder aldrig et navn).

Kategorier

KategoriIndeholder
authenticationLogin og logout, masteradgangskodens livscyklus, SSO-login samt Trusted Browser- og portalsessioner
account_managementMedarbejderlivscyklus og profilændringer: inviteret, aktiveret, arkiveret og slettet, inklusive SCIM-provisionering
privilege_managementAdministratorrettigheder tildelt eller fjernet samt partner-supportadgang tildelt
group_managementGrupper, medarbejdergrupper, resource collections, tags og deres medlemskaber
credential_accessEn hemmelighed blev vist eller kopieret, eller dens detaljer blev anmodet om, godkendt eller afvist. Kategorien med den største mængde events.
credential_managementVault-elementer og passkeys oprettet, redigeret eller slettet
sharingAlt, der ændrer, hvem der har adgang til et login: delinger, tilbagekaldelser, udløb, flytninger og fjernelse af links
data_exportData, der forlader systemet i større mængder, såsom eksport af logins
policy_managementSikkerhedsindstillinger, begrænsninger og begrænsningsskabeloner, opbevaringsperioder samt konfiguration af SSO-provider
device_managementEnheder og companion-apps, der parres eller fjernes fra parring, samt passiv registrering af browserudvidelsen
organization_managementOrganisationsoplysninger, verificerede domæner, arkivering og gendannelse af organisationen samt generering eller sletning af SIEM-token
threat_detectionEvents vedrørende overvågning af datalæk og genbrug af adgangskoder
otherGeneriske events uden selvstændig sikkerhedsmæssig betydning samt events registreret før den nuværende kategorisering blev indført

Da hver event har en kategori, kan du pege flere connectors mod det samme endpoint med forskellige category-filtre, for eksempel for at sende credential_access til et billigere storage tier og beholde resten i dit analytics tier.

Hvad du kan forvente af dataene

  • Levering sker mindst én gang. Under visse forhold kan en event leveres to gange. Deduplikér på id.
  • Events vises cirka 2 minutter efter, de sker. Feedet tilbageholder bevidst de nyeste 2 minutter, så ingen events springes over, mens skrivninger stadig færdiggøres. Derfor bør dit SIEM ikke polle oftere end hvert 2. minut.
  • Historikken er begrænset af opbevaringsperioden for din auditlog. Feedet leverer det, som din organisation opbevarer. Kontrollér Data Cleanup & Retention under organisationens indstillinger. Hvis din collector er nede længere end opbevaringsperioden, kan udløbne events ikke gendannes. Hold collectoren kørende kontinuerligt.
  • outcome er ikke et signal om mislykket login. Uniqkey registrerer i øjeblikket ikke mislykkede loginforsøg, så hver authentication-event er en vellykket event. failure bruges kun til handlinger, hvis formål er at registrere en afvisning, for eksempel en godkendelsesanmodning, der afvises i mobilappen. Byg ikke brute-force-detektioner på dette feed.
  • client.ip er ikke altid til stede. Events, der skrives af baggrundsprocesser, SCIM eller visse klientflows, indeholder ingen IP. Værdien tages fra den modtagne anmodning og bør betragtes som rapporteret af klienten frem for verificeret af infrastrukturen.
  • Følsomme data inkluderes aldrig. Adgangskoder, sikre noter, kortnumre, nøgler og andet krypteret vault-indhold forlader aldrig zero-knowledge-grænsen. Feedet indeholder kun de metadata, der er synlige i auditloggen i Admin Portal.

Bemærkninger pr. SIEM

Uniqkey leverer endnu ikke færdigbyggede connector-pakker. Endpointet følger de samme konventioner som andre leverandører af identitets- og password manager-løsninger, så standardmekanismen til REST-polling i hvert SIEM fungerer.

  • Microsoft Sentinel: brug en Codeless Connector eller en Logic App med API key authentication (Authorization-header, præfiks Bearer ). Konfigurér paginering på cursor-responsefeltet, som sendes tilbage som cursor-queryparameteren, og brug has_more som loop-betingelse. API'et accepterer start og cursor sammen, hvilket er den måde, Codeless Connector Framework sender sin anden side på.
  • Splunk: et REST modular input eller Add-on Builder input fungerer. Send Accept: application/x-ndjson så hver event indekseres som sin egen post, og læs X-Next-Cursor og X-Has-More til checkpointing.
  • Elastic: Elastic Agent eller Filebeat HTTP JSON / CEL input kan polle endpointet, gemme cursor som sin cursor-state og loope på has_more. NDJSON-tilstand understøttes også.
  • Wazuh: Wazuh har ingen indbygget REST-poller. Kør et lille planlagt script, der poller endpointet, gemmer cursor i en state-fil og skriver events som JSON-linjer til en logfil, som en Wazuh-agent overvåger med log_format: json.

Fejlfinding

SymptomSandsynlig årsagLøsning
401 UnauthorizedIngen Authorization-header, eller den starter ikke med BearerKontrollér headerformatet i SIEM-connectoren
403 ForbiddenTokenet er forkert, blev regenereret, eller integrationen blev deaktiveretGenerér et nyt token i SIEM-fanen, og opdatér SIEM'et
400 invalid_cursorCursoren blev redigeret, afkortet eller kom fra en anden organisationNulstil connectorens checkpoint, og start igen fra et start time
400 invalid_categoryTastefejl i kategorifilteretBrug en af værdierne fra kategoritabellen
Feedet er tomt, men Admin Portal viser eventsEvents er mindre end 2 minutter gamle, eller kategorifilteret udelukker demVent, eller fjern filteret
Connectoren stopper efter et stykke tidCheckpointet gik tabt, eller tokenet blev regenereretBekræft, at cursoren gemmes; bekræft, at tokenet i SIEM'et matcher det nyeste
Ældre events manglerAuditloggens opbevaringsperiode er udløbet for demKontrollér opbevaringsperioden; kør collectoren kontinuerligt
Duplikerede eventsNormalt ved at-least-once-leveringDeduplikér på id

Når du kontakter support, skal du inkludere din organisations-id, den præcise request-URL uden tokenet, HTTP-statussen og response body'en.

Artikler i denne sektion