DOCS

OAuth 2.0-godkendelse

Godkend dine backend-tjenester hos Zonos med asymmetrisk nøglekryptografi — uden delte hemmeligheder.

Zonos understøtter maskine-til-maskine-godkendelse via OAuth 2.0 JWT Bearer Token Grant (RFC 7523). Din tjeneste signerer en kortvarig JWT med din RSA-private nøgle; Zonos verificerer den ved hjælp af din registrerede offentlige nøgle og returnerer et Bearer-token med scope til din organisation.

Flow-oversigt:

  1. Generer et RSA-nøglepar, og registrer din offentlige nøgle hos Zonos.
  2. Ved kørsel signerer du en JWT-assertion med din private nøgle og sender den med POST til token-endpointet.
  3. Zonos returnerer et kortvarigt adgangstoken.
  4. Inkluder adgangstokenet som Authorization: Bearer <token> i hver API-anmodning.

Tokenlivscyklus og caching 

Adgangstokens udløber som standard efter 5 minutter. Cache tokenet, og forny proaktivt — anmod ikke om et nyt token ved hvert API-kald. Hver fornyelse kræver en ny signeret JWT-assertion.

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"]

Fejlreference 

Alle fejl følger OAuth 2.0 fejlresponsformatet (RFC 6749 §5.2):

1{
2 "error": "invalid_grant",
3 "error_description": "JWT assertion has expired"
4}
HTTP-statuserrorÅrsag
400unsupported_grant_typegrant_type var ikke urn:ietf:params:oauth:grant-type:jwt-bearer
400invalid_requestManglende eller fejlformateret felt
401invalid_grantUgyldig signatur, udløbet assertion, ukendt org eller uregistreret nøgle
500server_errorIntern fejl — kontakt Zonos support, hvis den vedvarer

Almindelige årsager til invalid_grant:

  • exp ligger i fortiden — sørg for, at dit systemur er NTP-synkroniseret
  • aud er ikke præcis "zonos-auth"
  • iss matcher ikke dit registrerede Organization ID
  • Offentlig nøgle blev roteret, men er endnu ikke opdateret hos Zonos

Sikkerhedsbedste praksis 

  • Beskyt din private nøgle. Opbevar den i en dedikeret secrets manager — aldrig i source control, miljøvariabler eller logs.
  • Hold assertions kortvarige. 60–300 sekunder er standard; der er ingen grund til at udstede længere.
  • Inkluder jti. En unik værdi pr. assertion muliggør replay-detektion på serversiden.
  • Roter nøglepar periodisk. Registrer en ny offentlig nøgle hos Zonos, før du tilbagekalder den gamle, for at undgå nedetid.
  • Log aldrig access_token- eller assertion-værdier. Behandl begge som legitimationsoplysninger.
Book en demo

Var denne side nyttig?