Uniqkey NL Voor beheerders Functieoverzicht Zoeken Je SIEM verbinden met de Uniqkey-auditlogfeed Uniqkey kan de beveiligingsgebeurtenissen van je organisatie naar je SIEM streamen (Microsoft Sentinel, Splunk, Elastic, Wazuh of elk ander hulpmiddel dat een REST API kan pollen). In dit artikel wordt uitgelegd hoe je de integratie in het Admin Portal inschakelt, hoe de events-API werkt en wat je van de gegevens kunt verwachten.Wie kan dit gebruikenDe integratie wordt per organisatie ingeschakeld door een organisatiebeheerder in het Admin Portal.Je SIEM heeft uitgaande HTTPS-toegang tot het Uniqkey-eventsendpoint nodig.De gebeurtenissen zijn dezelfde auditlogvermeldingen die je al onder Audit logs in het Admin Portal ziet. Er wordt niets geëxporteerd dat daar niet zichtbaar is en kluisgeheimen, wachtwoorden of sleutels worden nooit opgenomen.Stap 1: Schakel de integratie in en genereer een tokenMeld je als beheerder aan bij het Admin Portal.Ga naar Integrations en open het tabblad SIEM.Kopieer het API endpoint dat bovenaan de widget wordt weergegeven. Dit is de URL die je SIEM zal pollen.Schakel de SIEM-schakelaar in of klik op Generate Token. In een dialoogvenster wordt je nieuwe token weergegeven.Kopieer de token en bewaar deze in de secret store van je SIEM. De token wordt slechts één keer weergegeven. Nadat je het dialoogvenster hebt gesloten, kan deze niet opnieuw worden weergegeven.De token later beheren:Regenerate Token genereert een nieuwe token en maakt de oude onmiddellijk ongeldig. Werk je SIEM vóór of direct na het opnieuw genereren bij, anders stopt het pollen.Als je de SIEM-schakelaar uitschakelt, wordt de token verwijderd en de integratie uitgeschakeld. Je SIEM ontvangt 403 Forbidden until a new token is generated.Er is één token per organisatie. Als meerdere tools de feed gebruiken, delen ze dezelfde token.Het genereren of verwijderen van een token wordt zelf ook in het auditlog geregistreerd.Stap 2: Configureer je SIEMElke SIEM-connector heeft dezelfde drie onderdelen nodig:InstellingWaardeRequestGET op het API-endpoint dat uit het SIEM-tabblad is gekopieerd (.../api/v1/events)AuthenticatieHTTP-header Authorization: Bearer <your token>PagineringBewaar de cursor van elke response en stuur deze bij de volgende request terug als de queryparameter cursor. Blijf pollen zolang has_more true is.Elke 5 minuten pollen is een goede standaard. Gebeurtenissen worden ongeveer 2 minuten nadat ze plaatsvinden beschikbaar (zie ‘Wat je van de gegevens kunt verwachten’ hieronder), dus vaker dan elke 2 minuten pollen levert niets op.Snelle test met curlcurl -s "https://<endpoint>/api/v1/events?limit=5" \ -H "Authorization: Bearer <your token>" Een werkende configuratie retourneert HTTP 200 met een JSON-body zoals in de sectie ‘Response’. 401 betekent dat de Authorization-header ontbreekt of geen Bearer-token bevat. 403 betekent dat de token onbekend is, opnieuw is gegenereerd of dat de integratie is uitgeschakeld.API-referentieRequestGET /api/v1/eventsQueryparameterBeschrijvingcursorPositiemarkering uit een eerdere response. Stuur deze ongewijzigd terug. Als deze aanwezig is, bepaalt deze waar de pagina begint; start wordt genegeerd.startOndergrens voor de tijd, inclusief, in ISO 8601-indeling (bijvoorbeeld 2026-09-01T00:00:00Z). Gebruik deze voor de eerste poll of een backfill. UTC wordt aangenomen wanneer geen tijdzone is opgegeven.endBovengrens voor de tijd, exclusief, in ISO 8601-indeling. Wordt samen met cursor toegepast, zodat een begrensde backfill over meerdere pagina's kan worden uitgevoerd.limitGebeurtenissen per pagina. Standaard 200, maximaal 1000. Waarden buiten het bereik worden begrensd en niet geweigerd.categoryFilter op één of meerdere categorieën. Herhaal de parameter of scheid waarden met komma's: ?category=authentication,credential_access. Weglaten betekent alle categorieën.Een request zonder parameters is geldig en retourneert de geschiedenis van je organisatie vanaf het begin, één pagina per keer.De cursor is opaque. Bouw, parse of wijzig deze niet. De indeling kan zonder voorafgaande kennisgeving veranderen, maar een cursor die je hebt ontvangen blijft werken.Response{ "events": [ ... ], "has_more": true, "cursor": "eyJUIjoiMjAyNi0wOS0wMVQwOToxNDoyMi4xMTdaIiwiSSI6Ijlh..." } Gebeurtenissen worden van oud naar nieuw geretourneerd.has_more geeft aan of je direct de volgende pagina moet opvragen. Loop op has_more, niet op een lege events-array: een pagina kan leeg zijn terwijl er nog meer gegevens beschikbaar zijn.cursor is altijd aanwezig, ook op lege pagina's en wanneer has_more false is. Bewaar deze na elke response als checkpoint.Fouten retourneren HTTP 400 met een machineleesbare code:{ "error": { "code": "invalid_cursor", "message": "Cursor is not valid. Submit the cursor from a previous response verbatim." } } CodeBetekenisinvalid_cursorDe cursor is gewijzigd of komt niet van deze API. Begin opnieuw vanaf een start-tijdstip.invalid_categoryOnbekende categoriewaarde. Het bericht vermeldt de geldige waarden.Newline-delimited JSONAls je collector de voorkeur geeft aan één gebeurtenis per regel (generieke Splunk REST-inputs, Elastic, log shippers), stuur dan Accept: application/x-ndjson. De body bevat vervolgens één JSON-event per regel zonder envelope en de pagineringsvelden worden naar responseheaders verplaatst:Content-Type: application/x-ndjson X-Next-Cursor: eyJUIjoi... X-Has-More: true De headers bieden dezelfde garanties als de JSON-body: de cursor is altijd aanwezig, ook op een lege pagina.Gebeurtenisindeling{ "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" } } VeldBeschrijvingidUnieke gebeurtenis-id. Gebruik deze voor deduplicatie.timestampWanneer de gebeurtenis plaatsvond, in UTC.categoryEen van de onderstaande categorieën. Stabiel: een bepaalde actie verandert nooit van categorie.actionLeesbare actienaam, bijvoorbeeld login_to_extension. Niet uniek en niet gegarandeerd stabiel. Gebruik deze voor weergave.action_idStabiele identifier van het actietype. Bouw detectieregels hierop, niet op action.action_sourceWelk onderdeel van Uniqkey de actie definieert: extension, mobile, web_portal, partner_portal, scim_service, desktop_extension, queue_messages, breach. Gebruik dit om twee gebeurtenissen met dezelfde action van elkaar te onderscheiden.outcomesuccess of failure. Zie de opmerking onder ‘Wat je van de gegevens kunt verwachten’.organization_idDe id van je organisatie.actor.id, actor.emailDe medewerker die de actie heeft uitgevoerd, indien van toepassing.actor.typeuser, scim, system, supporter (een partner-supportgebruiker) of breach.client.systemWaar de request vandaan kwam: extension, mobile, web, desktop of undefined. Veel gebeurtenissen bevatten undefined; gebruik bij voorkeur action_source wanneer je de bron nodig hebt.client.ipBron-IP van de request, indien geregistreerd. Kan ontbreken.target.type, target.id, target.nameHet object waarop de actie is uitgevoerd: vault, employee, group, employee_group, resource_collection of tag. name is de naam van het object op het moment van de gebeurtenis en kan ontbreken (tags bevatten nooit een naam).CategorieënCategorieBevatauthenticationAan- en afmeldingen, levenscyclus van het hoofdwachtwoord, SSO-aanmelding, Trusted Browser- en Trusted Portal-sessiesaccount_managementLevenscyclus en profielwijzigingen van medewerkers: uitgenodigd, geactiveerd, gearchiveerd, verwijderd, inclusief SCIM-provisioningprivilege_managementBeheerdersrechten toegekend of ingetrokken, toegang voor partner-support verleendgroup_managementGroepen, medewerkersgroepen, resourcecollecties, tags en het lidmaatschap daarvancredential_accessEen geheim is bekeken of gekopieerd, of de details ervan zijn opgevraagd, goedgekeurd of afgewezen. De categorie met het hoogste volume.credential_managementKluisitems en passkeys aangemaakt, bewerkt of verwijderdsharingAlles wat wijzigt wie toegang heeft tot een credential: delen, intrekken, verlopen, verplaatsen, ontkoppelendata_exportGegevens die in bulk het systeem verlaten, zoals exports van inloggegevenspolicy_managementBeveiligingsinstellingen, beperkingen en beperkingssjablonen, bewaartermijnen, configuratie van SSO-providersdevice_managementApparaten en companion-apps gekoppeld of ontkoppeld, passieve registratie van extensiesorganization_managementOrganisatiegegevens, geverifieerde domeinen, archiveren en herstellen van de organisatie, SIEM-token gegenereerd of verwijderdthreat_detectionGebeurtenissen voor monitoring van datalekken en hergebruik van wachtwoordenotherAlgemene gebeurtenissen zonder zelfstandige beveiligingsbetekenis, plus gebeurtenissen die zijn geregistreerd voordat de huidige categorisering bestondOmdat elke gebeurtenis een categorie bevat, kun je meerdere connectors naar hetzelfde endpoint laten wijzen met verschillende category-filters. Je kunt bijvoorbeeld credential_access naar een goedkopere opslaglaag sturen en de rest in je analyticslaag bewaren.Wat je van de gegevens kunt verwachtenLevering vindt minimaal één keer plaats. Onder bepaalde omstandigheden kan een gebeurtenis twee keer worden geleverd. Dedupliceer op id.Gebeurtenissen verschijnen ongeveer 2 minuten nadat ze plaatsvinden. De feed houdt de nieuwste 2 minuten bewust achter zodat geen gebeurtenissen worden overgeslagen terwijl schrijfbewerkingen nog worden afgerond. Daarom moet je SIEM niet vaker dan elke 2 minuten pollen.De geschiedenis wordt beperkt door de bewaartermijn van je auditlog. De feed levert wat je organisatie bewaart. Controleer Data Cleanup & Retention onder de organisatie-instellingen. Als je collector langer uitvalt dan de bewaartermijn, kunnen verlopen gebeurtenissen niet worden hersteld. Laat de collector continu draaien.outcome is geen signaal voor een mislukte aanmelding. Uniqkey registreert momenteel geen mislukte aanmeldpogingen, dus elke authentication-gebeurtenis is een succesvolle gebeurtenis. failure wordt alleen gebruikt voor acties die bedoeld zijn om een afwijzing vast te leggen, bijvoorbeeld een goedkeuringsverzoek dat in de mobiele app is afgewezen. Bouw geen brute-force-detecties op basis van deze feed.client.ip is niet altijd aanwezig. Gebeurtenissen van achtergrondprocessen, SCIM of bepaalde clientflows bevatten geen IP-adres. De waarde wordt overgenomen uit de ontvangen request en moet worden beschouwd als door de client gerapporteerd, niet als door de infrastructuur geverifieerd.Gevoelige gegevens worden nooit opgenomen. Wachtwoorden, beveiligde notities, kaartnummers, sleutels en andere versleutelde kluisinhoud verlaten nooit de zero-knowledge-grens. De feed bevat uitsluitend de metadata die zichtbaar zijn in het auditlog van het Admin Portal.Opmerkingen per SIEMUniqkey levert nog geen kant-en-klare connectorpakketten. Het endpoint volgt dezelfde conventies als andere leveranciers van identiteits- en wachtwoordbeheer, zodat het standaard REST-pollingmechanisme van elke SIEM kan worden gebruikt.Microsoft Sentinel: gebruik een Codeless Connector of een Logic App met API-key-authenticatie (Authorization-header, prefix Bearer ). Configureer paginering op het responseveld cursor, stuur dit terug als de queryparameter cursor en gebruik has_more als lusvoorwaarde. De API accepteert start en cursor tegelijk, wat overeenkomt met de manier waarop het Codeless Connector Framework de tweede pagina verzendt.Splunk: een REST modular input of Add-on Builder-input werkt. Stuur Accept: application/x-ndjson zodat elke gebeurtenis als afzonderlijk record wordt geïndexeerd en lees X-Next-Cursor en X-Has-More voor checkpointing.Elastic: de Elastic Agent of Filebeat HTTP JSON / CEL-input kan het endpoint pollen, cursor als cursorstatus bewaren en op has_more blijven loopen. NDJSON-modus wordt ook ondersteund.Wazuh: Wazuh heeft geen ingebouwde REST-poller. Voer een klein gepland script uit dat het endpoint pollt, de cursor in een statusbestand bewaart en gebeurtenissen als JSON-regels schrijft naar een logbestand dat door een Wazuh-agent wordt bewaakt met log_format: json.Problemen oplossenSymptoomWaarschijnlijke oorzaakOplossing401 UnauthorizedGeen Authorization-header of deze begint niet met BearerControleer de headerindeling in de SIEM-connector403 ForbiddenToken is onjuist, opnieuw gegenereerd of de integratie is uitgeschakeldGenereer een nieuwe token in het SIEM-tabblad en werk de SIEM bij400 invalid_cursorCursor is bewerkt, afgekapt of afkomstig van een andere organisatieReset het connectorcheckpoint en begin opnieuw vanaf een start-tijdstip400 invalid_categoryTypfout in het categoriefilterGebruik een van de waarden uit de categorietabelFeed is leeg maar het Admin Portal toont gebeurtenissenGebeurtenissen zijn jonger dan 2 minuten of het categoriefilter sluit ze uitWacht of verwijder het filterConnector stopt na enige tijdCheckpoint is verloren gegaan of de token is opnieuw gegenereerdControleer of de cursor wordt bewaard en of de token in de SIEM overeenkomt met de nieuwste tokenOudere gebeurtenissen ontbrekenDe bewaartermijn van het auditlog is verstrekenControleer de bewaartermijn en laat de collector continu draaienDubbele gebeurtenissenNormaal bij minimaal-één-keer-leveringDedupliceer op idWanneer je contact opneemt met support, vermeld dan je organisatie-id, de exacte request-URL zonder de token, de HTTP-status en de responsebody.