DOCS

OAuth 2.0 kimlik doğrulaması

Asimetrik anahtar şifrelemesi kullanarak Zonos ile arka uç hizmetlerinizi doğrulayın — paylaşılan sırlar yok.

Zonos, OAuth 2.0 JWT Bearer Token Grant (RFC 7523) aracılığıyla makine-makine kimlik doğrulamasını destekler. Hizmetiniz RSA özel anahtarınızla kısa ömürlü bir JWT imzalar; Zonos, kayıtlı ortak anahtarınızı kullanarak doğrular ve kuruluşunuza özgü bir Bearer belirteci döndürür.

Akış özeti:

  1. Bir RSA anahtar çifti oluşturun ve ortak anahtarınızı Zonos'a kaydedin.
  2. Çalışma zamanında, özel anahtarınızla bir JWT iddiasını imzalayın ve belirteç uç noktasına gönderin.
  3. Zonos kısa ömürlü bir erişim belirteci döndürür.
  4. Her API isteğinde erişim belirtecini Authorization: Bearer <token> olarak ekleyin.

Belirteç yaşam döngüsü ve önbelleğe alma 

Erişim belirteçleri varsayılan olarak 5 dakika içinde sona erer. Belirteci önbelleğe alın ve proaktif olarak yenileyin — her API çağrısında yeni bir belirteç istemeyin. Her yenileme yeni bir imzalanmış JWT iddiası gerektirir.

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

Hata referansı 

Tüm hatalar OAuth 2.0 hata yanıtı biçimini izler (RFC 6749 §5.2):

1{
2 "error": "invalid_grant",
3 "error_description": "JWT assertion has expired"
4}
HTTP DurumerrorNeden
400unsupported_grant_typegrant_type tam olarak urn:ietf:params:oauth:grant-type:jwt-bearer değildi
400invalid_requestEksik veya hatalı biçimlendirilmiş alan
401invalid_grantGeçersiz imza, süresi dolmuş iddia, bilinmeyen kuruluş veya kayıtlı olmayan anahtar
500server_errorİç hata — devam ederse Zonos desteğine başvurun

Yaygın invalid_grant nedenleri:

  • exp geçmişte — sistem saatinizin NTP ile senkronize olduğundan emin olun
  • aud tam olarak "zonos-auth" değil
  • iss kayıtlı Kuruluş Kimliğinizle eşleşmiyor
  • Ortak anahtar döndürüldü ancak henüz Zonos'ta güncellenmedi

Güvenlik en iyi uygulamaları 

  • Özel anahtarınızı koruyun. Bunu bir özel sırlar yöneticisinde saklayın — asla kaynak kontrolünde, ortam değişkenlerinde veya günlüklerde saklamayın.
  • İddiaları kısa ömürlü tutun. 60–300 saniye standarttır; daha uzun olanları vermeyin.
  • jti ekleyin. İddia başına benzersiz bir değer sunucu tarafı yeniden yürütme tespitini etkinleştirir.
  • Anahtar çiftlerini düzenli olarak döndürün. Kesinti yaşanmaması için eski olanı iptal etmeden önce Zonos'a yeni bir ortak anahtar kaydedin.
  • Hiçbir zaman access_token veya assertion değerlerini günlüğe kaydetmeyin. Her ikisini de kimlik bilgileri olarak değerlendirin.

Bu sayfa faydalı mıydı?