DOCS

OAuth 2.0-authenticatie

Authenticeer uw backend-services bij Zonos met asymmetrische sleutelcryptografie — zonder gedeelde secrets.

Zonos ondersteunt machine-to-machine-authenticatie via OAuth 2.0 JWT Bearer Token Grant (RFC 7523). Uw service tekent een kortlevende JWT met uw RSA private key; Zonos verifieert deze met uw geregistreerde public key en retourneert een Bearer token die gebonden is aan uw organisatie.

Flow-samenvatting:

  1. Genereer een RSA-keypair en registreer uw public key bij Zonos.
  2. Teken tijdens runtime een JWT-assertie met uw private key en POST deze naar het token-eindpunt.
  3. Zonos retourneert een kortlevende access token.
  4. Neem de access token op als Authorization: Bearer <token> bij elk API-verzoek.

Tokenlevenscyclus en caching 

Access tokens verlopen standaard na 5 minuten. Cache de token en vernieuw proactief — vraag niet bij elke API-aanroep een nieuwe token aan. Elke vernieuwing vereist een nieuw getekende JWT-assertie.

1import time, requests
2 
3_cache = {"access_token": None, "expires_at": 0}
4 
5def get_access_token():
6 if time.time() < _cache["expires_at"] - 30:
7 return _cache["access_token"]
8 
9 assertion = build_jwt_assertion()
10 data = requests.post(
11 "https://auth.zonos.com/oauth/token",
12 json={
13 "grant_type": "urn:ietf:params:oauth:grant-type:jwt-bearer",
14 "assertion": assertion,
15 },
16 ).json()
17 
18 _cache["access_token"] = data["access_token"]
19 _cache["expires_at"] = time.time() + data["expires_in"]
20 return _cache["access_token"]

Foutreferentie 

Alle fouten volgen het OAuth 2.0 error response-formaat (RFC 6749 §5.2):

1{
2 "error": "invalid_grant",
3 "error_description": "JWT assertion has expired"
4}
HTTP-statuserrorOorzaak
400unsupported_grant_typegrant_type was niet urn:ietf:params:oauth:grant-type:jwt-bearer
400invalid_requestOntbrekend of ongeldig veld
401invalid_grantOngeldige handtekening, verlopen assertie, onbekende org of niet-geregistreerde key
500server_errorInterne fout — neem contact op met Zonos support als het aanhoudt

Veelvoorkomende invalid_grant-oorzaken:

  • exp ligt in het verleden — zorg dat uw systeemklok NTP-gesynchroniseerd is
  • aud is niet exact "zonos-auth"
  • iss komt niet overeen met uw geregistreerde Organization ID
  • Public key is geroteerd maar nog niet bijgewerkt bij Zonos

Best practices voor beveiliging 

  • Bescherm uw private key. Bewaar deze in een dedicated secrets manager — nooit in source control, environment variables of logs.
  • Houd asserties kortlevend. 60–300 seconden is standaard; er is geen reden om langere uit te geven.
  • Neem jti op. Een unieke waarde per assertie maakt server-side replay-detectie mogelijk.
  • Roteer keypairs periodiek. Registreer een nieuwe public key bij Zonos voordat u de oude intrekt om downtime te voorkomen.
  • Log nooit access_token- of assertion-waarden. Behandel beide als credentials.
Boek een demo

Was deze pagina nuttig?