Programlar API anahtarları ile kimlik doğrular. Bir anahtar, onu oluşturan üye adına hareket eder ve anahtara verdiğiniz izinlerle sınırlıdır. Token değişimi yoktur: anahtarın kendisi kimlik bilgisidir ve her çağrıda gönderilir.
API anahtarları yöneticiler tarafından API Keys üzerinden yönetilir (menünün Developer bölümünde). Anahtar oluşturmak için API anahtarları içeren bir plan gerekir.
Bir anahtar oluşturun
- API Keys bölümünü açın ve New API Key seçeneğini seçin.
- Bir Name girin (en fazla 100 karakter) ve isteğe bağlı olarak bir Description (en fazla 500 karakter) girin.
- Module permissions altında, anahtarın neler yapabileceğini bir modül seçerek belirleyin. Her modül bir Read only ön ayarı sunar; ayrıca tek tek izinleri de işaretleyebilirsiniz. Bir modül veya izin bulmak için Search modules or permissions… alanını kullanın. Seçici yalnızca sizin kendinizin sahip olduğu izinleri listeler: “Anahtar, en fazla sizin yapabildiklerinizi yapabilir. Kendi haklarınız daha sonra daralırsa, anahtar da bunları kaybeder.”
- Expires on alanını ayarlayın. Varsayılan, bugünden itibaren 90 gündür; en fazla bir yıl olabilir (“Varsayılan 90 gündür, en fazla bir yıl.”).
- İsteğe bağlı olarak IP allowlist alanını doldurun: her satıra bir alt ağ yazın, örneğin
10.0.0.0/8veya203.0.113.7/32. Boş bırakmak, kuruluşunuzun izin verdiği her adres anlamına gelir. - Bir entegrasyonun kendi belgeleri istemedikçe Integration scopes (advanced) alanını boş bırakın (örneğin SCIM provisioning).
- Create Key seçeneğini seçin ve anahtarı hemen kopyalayın.
Uyarı
“Bu anahtar yalnızca bir kez gösterilecek. Güvenli bir yerde saklayın.” Hermetry yalnızca bir özet (hash) saklar. Anahtarı kaybederseniz yeni bir tane oluşturun.
İki adımlı doğrulama veya bir passkey kullanıyorsanız, Hermetry anahtar oluşturulmadan önce bunu onaylamanızı ister. Bir üyenin yerine geçerken anahtar oluşturulamaz.
Anahtar biçimi
sk_live_<first 8 characters of the organisation id>_<48 random hexadecimal characters>
live anahtarları üretim hizmetine, test anahtarları test kurulumlarına aittir; böylece ikisi birbirine karıştırılamaz.
Bir anahtarı kullanın
Anahtarı her çağrıda Authorization başlığında gönderin:
curl "https://<your host>/tenant/<tenantId>/api/iot/devices" \
-H "Authorization: Bearer sk_live_…"
- API anahtarı içeren bir istek yalnızca o anahtar olarak değerlendirilir. Aynı istekteki bir tarayıcı çerezi yok sayılır.
- Anahtarlar yalnızca kuruluşunuzun yollarında çalışır (
/tenant/<tenantId>/api/...). Anahtarın kuruluşu, yoldakitenantIdile eşleşmelidir. - Bir anahtar hiçbir zaman platform, hesap veya oturum açma yollarında çalışmaz.
Bir anahtarın yapabilecekleri
Her çağrıda, bunların hepsinin geçerli olması gerekir:
- Anahtar, yolun gerektirdiği izne sahiptir.
- İznin modülü kuruluşunuz için açıktır.
- Anahtarı oluşturan üye izne şu anda sahiptir: rolleri, grupları ve erişim politikalarınız dikkate alınır.
- Üye hâlâ aktif bir üyedir ve kuruluş aktiftir.
Bir anahtar, bir Owner tarafından oluşturulmuş olsa bile en fazla Admin rolüyle hareket eder. Bu nedenle bir anahtar hiçbir zaman yalnızca Owner’a özgü izinlere sahip olamaz (örneğin ham cihaz komutları, firmware imzalama anahtarları, tehlikeli cihaz ayarları, bir webhook gizli anahtarını yenileme) ve kimlik ve erişim modüllerinin izinlerine (oturum açma, hesaplar, API anahtarları, üyeler, oturumlar) asla sahip olamaz. Dolayısıyla bir anahtar, anahtar oluşturamaz veya döndüremez.
Servis anahtarları
Bir anahtar normalde oluşturanı kuruluştan ayrıldığında çalışmayı bırakır. Bir Owner anahtarı açıp Mark as service key seçeneğini seçebilir: bu durumda anahtar, oluşturanı ayrıldıktan sonra da çalışmaya devam eder (“Evet: oluşturanından sonra da yaşar”) ve onu işaretleyen Owner gibi hareket eder.
İzin verilen ağlar
Bir anahtarın IP allowlist listesi CIDR biçiminde en fazla 100 alt ağ içerebilir; tek bir adres /32 ile yazılır. Bunun dışındaki yerlerden gelen çağrılar 403 ile reddedilir: “Bu API anahtarı geçerli IP adresinden kullanılamaz.” Kendi listesi olmayan bir anahtar, kuruluşun varsayılan listesini kullanır (aşağıdaki Settings bölümüne bakın). Kuruluşunuzun oturum açma için kendi IP izin ve engel listeleri anahtarlar için de geçerlidir.
Son kullanma
Her anahtarın bir son kullanma tarihi vardır. Varsayılan 90 gündür; en geç tarih 365 gün sonrasıdır, ancak kuruluşunuz daha düşük bir üst sınır belirlemişse bu daha kısa olabilir. Süresi dolan anahtarlar kendiliğinden durur. Bir yönetici, süresi dolan anahtarları ayrıca temizleyebilir (POST /api/api-keys/sweep-expired); bu, onları pasif olarak işaretler ve anahtar başına bir api_key.expired webhook olayı gönderir.
Döndürme, devre dışı bırakma ve iptal
Bir anahtarın Identity, Usage (son kullanım, son kullanım IP’si, toplam doğrulama), Module permissions ve Rotation history bilgilerini görmek için anahtarı açın.
- Rotate key aynı izinler, kapsamlar, ağ listesi ve ortamla bir halef anahtar oluşturur. Grace window (days) değerini belirleyin: eski anahtar bu süre dolana kadar çalışmaya devam eder. “0, eski anahtarı hemen iptal eder.” Yeni gizli anahtarı hemen kopyalayın.
- Deactivate bir anahtarı, tekrar Activate edene kadar durdurur. Döndürülmüş bir anahtar yeniden etkinleştirilemez: “Döndürülmüş bir anahtar yeniden etkinleştirilemez; halefini kullanın.”
- Revoke anahtarı siler: “Bu anahtarı kullanan tüm entegrasyonlar hemen çalışmayı durduracak. Bu işlem geri alınamaz.”
- Edit anahtarın modül izinlerini değiştirir. Herhangi bir izni kaldırabilirsiniz, ancak yalnızca sahip olduğunuz izinleri ekleyebilirsiniz. Entegrasyon kapsamları yalnızca daraltılabilir.
Bir olay anında, bir yönetici kuruluşun etkin tüm anahtarlarını tek adımda iptal edebilir.
POST/tenant/{tenantId}/api/api-keys/{apiKeyId}/rotate
Bir halef anahtar oluşturur. Eski anahtar graceSeconds süresince çalışmaya devam eder (0 ile 2592000 arası, yani 30 gün; varsayılan 86400, yani bir gün). 0 eski anahtarı hemen durdurur. Yeni gizli anahtar rawKey yalnızca bu yanıtta bulunur. Yalnızca etkin, süresi dolmamış ve daha önce döndürülmemiş bir anahtar döndürülebilir (aksi halde 409).
İstek gövdesi application/json
{
"graceSeconds": 86400
}
Örnek curl
curl -X POST 'https://<your-host>/tenant/{tenantId}/api/api-keys/{apiKeyId}/rotate' \
-H 'Content-Type: application/json' \
-d '{"graceSeconds":86400}'
Yanıtlar
201Created
{
"key": {
"name": "Plant ERP",
"…": "…"
},
"rawKey": "sk_live_…"
}
409Conflict
{
"message": "Only an active, unexpired key that has not been rotated yet can be rotated.",
"code": "CONFLICT"
}
Anahtarları HTTP üzerinden yönetin
Anahtarları oturum açmış bir yönetici yönetir. Bir API anahtarı anahtar oluşturamaz, değiştiremez veya döndüremez.
| Yöntem | Yol | İşlevi |
|---|---|---|
| GET | /api/api-keys | Anahtarları listeler (page 1’den başlar, pageSize en fazla 100, sort, filtreler isActive, environment, scopeReview). |
| GET | /api/api-keys/permission-catalog | Bir anahtara verebileceğiniz izinleri modüle göre listeler. |
| POST | /api/api-keys | Bir anahtar oluşturur. Gizli anahtar rawKey yalnızca bu yanıtta bulunur. |
| PUT | /api/api-keys/{apiKeyId} | Adı, açıklamayı, etkin durumunu, IP allowlist listesini, izinleri ve kapsamları değiştirir. |
| DELETE | /api/api-keys/{apiKeyId} | Bir anahtarı iptal eder (siler). |
| POST | /api/api-keys/{apiKeyId}/rotate | Bir anahtarı döndürür. |
| POST | /api/api-keys/revoke-all | Etkin tüm anahtarları pasif hâle getirir. |
POST/tenant/{tenantId}/api/api-keys
Bir anahtar oluşturur. Alanlar: name (zorunlu), description, permissions (modül izin kimlikleri, örneğin iot_device.devices.read), scopes, environment (live veya test), ipAllowlist, expiresAt (ISO 8601). En az bir izin veya kapsam verin. expiresAt verilmezse anahtar 90 gün sonra sona erer.
İstek gövdesi application/json
{
"name": "Plant ERP",
"permissions": [
"iot_device.devices.read",
"telemetry.read"
],
"ipAllowlist": [
"203.0.113.0/24"
]
}
Örnek curl
curl -X POST 'https://<your-host>/tenant/{tenantId}/api/api-keys' \
-H 'Content-Type: application/json' \
-d '{"name":"Plant ERP","permissions":["iot_device.devices.read","telemetry.read"],"ipAllowlist":["203.0.113.0/24"]}'
Yanıtlar
201Created
{
"key": {
"name": "Plant ERP",
"…": "…"
},
"rawKey": "sk_live_…"
}
400Bad Request
{
"message": "Select at least one module permission or integration scope."
}
403Forbidden
{
"message": "An API key can only receive permissions you hold yourself."
}
422Unprocessable Entity
{
"message": "The expiry date must be in the future."
}
Bir anahtarı kontrol edin
POST/tenant/{tenantId}/api/api-keys/verify
x-api-key başlığında gönderilen bir anahtarı kontrol eder. Oturum gerekmez. İsteğe bağlı olarak gövdede kontrol edilecek bir scope gönderebilirsiniz. Anahtarın her reddi (bilinmeyen, pasif, süresi dolmuş, başka bir kuruluşa ait, eksik kapsam, adrese izin verilmemesi) aynı 401 yanıtını verir; bu nedenle hangi kontrolün başarısız olduğunu söylemez. Başarılı olduğunda yanıt "valid": true ve anahtarın genel alanlarını içerir.
İstek gövdesi application/json
{
"scope": "read"
}
Örnek curl
curl -X POST 'https://<your-host>/tenant/{tenantId}/api/api-keys/verify' \
-H 'Content-Type: application/json' \
-d '{"scope":"read"}'
Yanıtlar
200OK
{
"valid": true,
"key": {
"name": "Plant ERP",
"…": "…"
}
}
400Bad Request
{
"valid": false,
"message": "scope must be a string"
}
401Unauthorized
{
"valid": false,
"message": "Invalid or expired API key."
}
429Too Many Requests
{
"valid": false,
"message": "Too many requests."
}
Ayarlar
Yöneticiler kuruluşun anahtar politikasını API Keys > ayarlar (dişli düğmesi) üzerinden belirler:
| Ayar | Varsayılan | Anlamı |
|---|---|---|
| Max Active Keys | 0 (sınır yok) | Kuruluşun aynı anda sahip olabileceği etkin anahtar sayısı. |
| Maximum Key Lifetime (days) | 0 (365 gün) | Bir anahtarın ne kadar ileri bir tarihte sona erebileceğine dair daha düşük bir üst sınır. |
| Require Expiry on Every Key | Kapalı | API üzerinden oluşturulan bir anahtar expiresAt değerini belirtmek zorundadır. |
| Tenant Subnet Allowlist | Boş (herhangi) | Kendi listesi olmayan anahtarlar için varsayılan alt ağlar. |
| Per-Key Rate Limit (requests/minute) | 0 | Anahtar başına dakikada yapılan çağrılar. 0, dakikada 1.000 olan platform varsayılanını kullanır. |
Anahtarlar için geçerli diğer sınırlar Errors and rate limits sayfasındadır.
Anahtarları izleme
- Her anahtar, son kez ne zaman ve hangi adresten kullanıldığını kaydeder.
- 14 gün kullanılmayan ve ardından yeni bir adresten kullanılan bir anahtar bir denetim olayı oluşturur (“Uykudaki bir API anahtarı yeni bir adresten kullanıldı”); anahtar ve adres başına saatte en fazla bir kez.
- Reddedilen her anahtar çağrısı denetim günlüğüne yazılır.
- Webhook’lar size anahtarlarla ilgili bilgi verebilir:
api_key.created,api_key.updated,api_key.rotated,api_key.deleted,api_key.expired.
Kontrol listesi için API key hardening sayfasına bakın.

