Nedap · Authentication Profile
Nedap Authentication
Authentication
Nedap secures its APIs with mutualTLS across 1 declared security scheme, as derived from its OpenAPI definitions.
CompanyHealthcareElectronic Health RecordsInteroperabilityFHIRopenEHRRFIDRetailPhysical SecurityLivestockNetherlandsWebhooks
Methods: mutualTLS
Schemes: 1
OAuth flows:
API key in:
Security Schemes
OnsApiClientCertificate mutualTLS
Source
Authentication Profile
generated: '2026-09-02'
method: searched
source: openapi/nedap-ons-openapi-original.json
docs: https://ons-api.nl/english/technical/Certificate_requirements.html
api: Nedap Ons API
note: >-
The harvested OpenAPI declares no components.securitySchemes at all — running
derive-authentication.py over it yields nothing — so this profile is read from the
docs instead. Ons API is mutual-TLS only. There is no bearer token, no API key and no
OAuth: every request must be made with an SSL client certificate signed by Nedap's
own Certificate Authority, and that certificate binds one connector to one customer
environment. That is the strongest auth posture in this pipeline and the least
agent-reachable one — an agent cannot self-serve a credential; a human completes an
intake, has a connector reviewed, submits a CSR and receives a PEM back.
summary:
types:
- mutualTLS
api_key_in: []
oauth2_flows: []
self_serve: false
spec_declares_security: false
schemes:
- name: OnsApiClientCertificate
type: mutualTLS
documented_only: true
sources:
- https://ons-api.nl/english/technical/Certificate_requirements.html
issuance:
authority: Nedap's own Certificate Authority (per environment)
process: >-
Generate a 4096-bit CSR, upload it to the Ons API Dashboard, receive a signed PEM
back. The private key is never shared with Nedap; if it leaks, the certificate is
disabled in the Dashboard.
csr_requirements:
- Key length of at least 4096 bits
- CN, OU, O, L, ST, C and email address all filled in
- 'CN structured as {technical_name_connector}-{customer_code}-{identification}'
cn_example: hr_integration-TE1002-free_text
transport:
min_tls: TLSv1.2
sni_required: true
ciphers:
- ECDHE-ECDSA-AES256-GCM-SHA384
- ECDHE-ECDSA-AES128-GCM-SHA256
- ECDHE-ECDSA-CHACHA20-POLY1305
- ECDHE-RSA-AES256-GCM-SHA384
- ECDHE-RSA-AES128-GCM-SHA256
- ECDHE-RSA-CHACHA20-POLY1305
- DHE-RSA-AES256-GCM-SHA384
- DHE-RSA-AES128-GCM-SHA256
ca_chains:
production: https://ons-api.nl/assets/production-chain.pem
staging: https://ons-api.nl/assets/staging-chain.pem
development: https://ons-api.nl/assets/development-chain.pem
legacy_note: >-
Separate legacy chains are published for certificates signed before 02-09-2025
(production), 28-08-2025 (staging) and 20-08-2025 (development); no new
certificates are issued from them.
verification:
endpoint: GET /ping
expected: '200 = the certificate works; 403 = the certificate does not work with this URL'
authorization:
model: Ons Autorisatie rights, evaluated per user/employee per client
note: >-
Authorization is not OAuth scopes. It is Nedap's own rights model, and a connector
queries it rather than carrying it in a token. Four read operations expose it —
scopeForUser, scopeForEmployee, clearanceForUser, clearanceForEmployee — returning
either the set of client ids a user may reach for a named right, or a boolean
clearance for one client. A right not linked to the connector's version yields 404.
spec: openapi/nedap-ons-authorization-openapi-original.json
docs: https://ons-api.nl/english/authorization/UsingAuthorizationAPIs.html
operations:
- scopeForUser
- scopeForEmployee
- clearanceForUser
- clearanceForEmployee
identity_headers:
- name: X-Cupido-User-Name
used_by: 130 operations
note: Names the acting user behind the connector; feeds Ons' own audit trail.
- name: X-Cupido-Active-Identity
used_by: 127 operations
webhooks:
method: HMAC
note: >-
Inbound webhook notifications are authenticated the other way round — the connector
generates a secret in the Ons API Dashboard and verifies a Hash-based Message
Authentication Code on each POST, answering 200 for a valid HMAC and 401 for an
invalid one. Nedap sends two NOP events at configuration time, one with a correct
HMAC and one with a deliberately wrong one, to prove the receiver checks.
docs: https://ons-api.nl/english/technical/Webhooks.html
Work with this as data
Every security artifact here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for security posture
4 MCP tools reach this
find_securityBrowse and filter every security artifact in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This security artifact
curl "https://apis.io/api/v1/security/nedap-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.