API
-
API Erişimi
Daha fazlasını gösterAPI Erişimi ekranından, harici sistem ve servisleri Berqnet SASE ile entegre etmek için client kimlik bilgileri (Client ID ve Client Secret) oluşturabilirsiniz. Bu kimlik bilgileri, üçüncü taraf uygulamalardan gelen API çağrılarının yetkilendirilmesi ve doğrulanması için kullanılır.
Özel bir kontrol paneli geliştirirken, kullanıcı tanımlama sürecini otomatikleştirirken veya kimlik sağlayıcılarını entegre ederken ihtiyaç duyduğunuz token'lar bu ekrandan yönetilir.
Ayarlar → Konfigürasyonlar → API Erişimi
Her kart, mevcut bir API Erişimi yapılandırmasını temsil eder ve şu bilgileri içerir:
Sütun Açıklama Başlık Entegrasyonu tanımlamak için belirlediğiniz etiket Son Geçerlilik Tarihi Token'ın geçersiz olacağı tarih Client ID Entegrasyonun genel kimlik tanımlayıcısı Client Secret Kimlik doğrulama için kullanılan özel token Her biri farklı bir kullanım senaryosuna bağlı olacak şekilde, aynı anda birden fazla yapılandırma yönetebilirsiniz.
Yeni Bir API Erişimi Oluşturun
Kurulum penceresini açmak için Yeni Oluştur'a tıklayın. İki alanı doldurmanız gerekir:
Alan Açıklama Başlık Entegrasyonun adı Uygulama Türü Entegre edilecek sistemi seçin: Active Directory: AD kurulumunuzla entegrasyon için Özel: Listede yer almayan dahili araçlar, scriptler veya diğer servisler için
💡Active Directory entegrasyonunda yardıma mı ihtiyacınız var? Active Directory Entegrasyon Kılavuzu'na göz atın.Kaydettiğinizde bir Client ID ve Client Secret oluşturulur. Bu değerleri, harici uygulamanızın API başlıklarında güvenli iletişim için kullanın.
API referansları dokümanı için makaleye göz atabilirsiniz.
✅ En İyi Uygulamalar
- Client Secret'ınızı güvende tutun. Bu değer, entegrasyon adına tam erişim sağlar.
- Token'ları periyodik olarak değiştirin. Anahtarları API üzerinden veya yeni bir kayıt oluşturarak yenileyebilirsiniz.
- Token'larınızı net etiketleyin. Sisteminiz büyüdükçe karışıklığı önlemek için anlamlı başlıklar kullanın.
-
API Referansları
Daha fazlasını gösterBerqnet SASE API'sini etkin şekilde kullanabilmeniz için her endpoint'e ait parametreler, istek ve yanıt örnekleri ile kullanım yönergelerini aşağıda bulabilirsiniz.
Cihazlar
Cihazlar API Referansı dokümanı ile cihazlarınızı yönetebilirsiniz. Bu API sayesinde cihaz envanteriniz üzerinde kapsamlı kontrol sağlar, gerektiğinde yapılandırmaları izleyebilir ve güncelleyebilirsiniz.
Etiketler
Etiketler API Referansı dokümanı ile oluşturduğunuz etiketleri yönetebilirsiniz.
Kullanıcı
Kullanıcılar API Referansı dokümanı ile kullanıcı silme veya cihaz bağlantısı sonlandırma gibi işlemleri gerçekleştirebilirsiniz.
-
Kullanıcılar API Referansı
Daha fazlasını gösterKullanıcı hesaplarını ve cihaz bağlantılarını yönetmenize ilişkin detayları aşağıda bulabilirsiniz.
Kullanıcı Silme
Bir kullanıcıyı e-posta adresine göre siler. Kullanıcı bağlıysa, bu istek cihaz bağlantısını da sonlandırır.
DELETE https://api.berqnetservices.com/users?email=test@berqnet.comRequest Parametreleri
Ad Tür Açıklama email string Kullanıcının e-posta adresi Response:
200 Kullanıcı Başarıyla Silindi
{ "date": "2024-11-18T08:25:50.587Z", "status": true, "messages": [], "results": {} }400 Geçersiz Parametreler
{ "date": "2024-11-18T08:18:39.086Z", "status": false, "messages": [ { "code": "UserNotFound", "description": "User cannot be found." } ], "results": [] }Bu metodu nasıl çağırabileceğinize ilişkin bir örnek:
curl --request DELETE \ --url '<https://api.berqnetservices.com/users?email=test@berqnet.com>' \ --header 'Authorization: Bearer YOUR_TOKEN'
Kullanıcı Bağlantısını Sonlandırma
Bir kullanıcının tüm cihaz bağlantılarını e-posta adresine göre sonlandırır.
POST https://api.berqnetservices.com/users/vpn/dropRequest Parametreleri
Ad Tür Açıklama email string Kullanıcının e-posta adresi Response:
200 Kullanıcı VPN Bağlantısı Başarıyla Düşürüldü
{ "date": "2024-11-18T08:25:50.587Z", "status": true, "messages": [], "results": {} }400 Geçersiz Parametreler
{ "date": "2024-11-18T08:18:39.086Z", "status": false, "messages": [ { "code": "UserNotFound", "description": "User cannot be found." } ], "results": [] }Bu metodu nasıl çağırabileceğinize ilişkin bir örnek:
curl --request POST \ --url '<https://api.berqnetservices.com/users/vpn/drop>' \ --header 'Authorization: Bearer YOUR_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "email": "test@berqnet.com" }' -
Etiketler API Referansı
Daha fazlasını gösterEtiketler listesini çekme, yeni etiket oluşturma ve varolan etiketi güncelleme dahil olmak üzere sisteminizdeki etiketleri etkin şekilde yönetmenize ve kullanmanıza ilişkin detayları aşağıda bulabilirsiniz.
Etiketler Listesi Çekme
GET https://api.berqnetservices.com/tagsRequest Parametreleri
Ad Tür Açıklama page number Sonuçların belirli bir bölümüne erişmek için sayfa numarasını belirtin. limit number İstek başına döndürülen sonuç sayısına sınır koyun. Response:
200 Etiketler Başarıyla Getirildi
{ "date": "2024-04-18T21:20:51.734Z", "status": true, "messages": [], "results": [] }400 Geçersiz Parametreler
{ "date": "2024-04-18T21:20:51.734Z", "status": false, "messages": [], "results": [] }Bu metodu nasıl çağırabileceğinize ilişkin bir örnekler:
curl
curl --location '<https://api.berqnetservices.com/tags?page=1&limit=100>' \ --header 'Authorization: Bearer YOUR_TOKEN'
NodeJS
const axios = require('axios'); let config = { method: 'get', maxBodyLength: Infinity, url: '<https://api.berqnetservices.com/tags?page=1&limit=100>', headers: { 'Authorization': 'Bearer YOUR_TOKEN' } }; axios.request(config) .then((response) => { console.log(JSON.stringify(response.data)); }) .catch((error) => { console.log(error); });Go
package main import ( "fmt" "net/http" "io/ioutil" ) func main() { url := "<https://api.berqnetservices.com/tags?page=1&limit=100>" method := "GET" client := &http.Client { } req, err := http.NewRequest(method, url, nil) if err != nil { fmt.Println(err) return } req.Header.Add("Authorization", "Bearer YOUR_TOKEN") res, err := client.Do(req) if err != nil { fmt.Println(err) return } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return } fmt.Println(string(body)) } -
Cihazlar API Referansı
Daha fazlasını gösterCihaz envanterinizi API üzerinden yönetmeye ilişkin kapsamlı bilgileri, cihaz yapılandırmalarının izlenmesi ve güncellenmesine dair detayları aşağıda bulabilirsiniz.
Cihaz Listesi Çekme
GET https://api.berqnetservices.com/devicesRequest Parametreleri
Ad Tür Açıklama page number Sonuçların belirli bir bölümüne erişmek için sayfa numarasını belirtin order string Sonuçları artan veya azalan sırada sıralayın filter_name string Belirli cihazları bulmak için isme göre arama yapın limit number İstek başına döndürülen sonuç sayısına sınır koyun sort string Sonuçları izin verilen alanlara göre sıralayın: name, local_ip, os.type, online status, last_seen_at, network_interfaces.mac veya created_at Response:
200 Cihazlar Başarıyla Getirildi
{ "date": "2024-04-18T21:06:38.569Z", "status": true, "messages": [], "results": { "total": 41, "entries": [ { "site_id": 848, "node_id": 1633, "user_id": null, "name": "John's Laptop", "alias": "John's Laptop", "os": { "type": "windows", "version": "" }, "public_ip": null, "local_ip": "192.168.249.8", "private_interface_id": 2339, "uuid": null, "epp_device_identifiers": { "sentinelone": null, "bitdefender": null, "microsoft_defender": null }, "network_interfaces": [ { "mac": "b0:a4:60:76:bd:c1", "inet": [ null ] } ], "is_ssl_inspection_enabled": false, "tunnel_configuration": {}, "is_online": false, "last_seen_at": "2023-10-18T08:53:02.000Z", "created_at": "2023-10-18T07:25:36.000Z", "updated_at": "2023-10-18T08:53:02.000Z", "sdn_id": 183, "id": "73ibf44BYIdzK88IGmtp", "tags": [] } ] } }400 Geçersiz Parametreler
{ "date": "2024-04-18T21:08:12.946Z", "status": false, "messages": [ { "code": "BadRequestException", "description": "Sort must be specified using one of the following values: name, local_ip, os.type, online, last_seen_at, network_interfaces.mac, or created_at." } ], "results": [] }Bu metodu nasıl çağırabileceğinize ilişkin bir örnekler:
curl
curl --location '<https://api.berqnetservices.com/devices?page=1&order=asc&search=MyDevice&limit=1&sort=name3>' \ --header 'Authorization: Bearer YOUR_TOKEN'
NodeJS
const axios = require('axios'); let config = { method: 'get', maxBodyLength: Infinity, url: '<https://api.berqnetservices.com/devices?page=1&order=asc&search=test&limit=1&sort=name3>', headers: { 'Authorization': 'Bearer YOUR_TOKEN' } }; axios.request(config) .then((response) => { console.log(JSON.stringify(response.data)); }) .catch((error) => { console.log(error); });Go
package main import ( "fmt" "net/http" "io/ioutil" ) func main() { url := "<https://api.berqnetservices.com/devices?page=1&order=asc&search=test&limit=1&sort=name3>" method := "GET" client := &http.Client { } req, err := http.NewRequest(method, url, nil) if err != nil { fmt.Println(err) return } req.Header.Add("Authorization", "Bearer YOUR_TOKEN") res, err := client.Do(req) if err != nil { fmt.Println(err) return } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return } fmt.Println(string(body)) }Cihaz Güncelleme
PUT <https://api.berqnetservices.com/devices/:id>Request Parametreleri
Ad Tür Açıklama name string Cihazın güncellenmiş adı tags array Cihaza atanmış güncellenmiş etiket listesi alias string Cihazın güncellenmiş takma adı Response:
200 Cihaz Başarıyla Güncellendi
{ "date": "2024-04-18T21:18:29.977Z", "status": true, "messages": [], "results": { "site_id": 848, "node_id": 1633, "user_id": null, "name": "Richard", "alias": "Richard's iPhone", "os": { "type": "ios 15.1.0", "version": null }, "public_ip": null, "local_ip": "192.168.2.53", "private_interface_id": "2093", "uuid": null, "epp_device_identifiers": { "sentinelone": null, "bitdefender": null, "microsoft_defender": null }, "network_interfaces": [ { "inet": [ "192.168.2.53" ], "mac": "26:b1:0a:6d:c9:78" } ], "is_ssl_inspection_enabled": true, "tunnel_configuration": {}, "is_online": false, "last_seen_at": "2023-05-30T08:21:17.000Z", "created_at": "2023-05-30T05:12:10.000Z", "updated_at": "2024-04-18T21:18:29.628Z", "sdn_id": 183, "id": "bnii4I0BgdRKipEj9t7A", "allowed_sites": [ 848 ], "tags": [ "hWPsHY4BKyic2m5h68XM", "0Hif4I0BgdRKipEjFN2n", "lp6mcIsBT1DQPYTabiYd" ], "static_ips": [ { "ip": "192.168.249.4/32", "site_id": 848, "private_interface_id": 2601 } ] } }400 Geçersiz Parametreler
{ "date": "2024-04-18T21:20:51.734Z", "status": false, "messages": [ { "code": "BadRequestException", "description": "Name must be a string" } ], "results": [] }Bu metodu nasıl çağırabileceğinize ilişkin bir örnekler:
curl
curl --location --request PUT '<https://api.berqnetservices.com/devices/bnii4I0BgdRKipEj9t7A>' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer YOUR_TOKEN' \ --data '{ "name": "Test", "tags": [ "hWPsHY4BKyic2m5h68XM", "0Hif4I0BgdRKipEjFN2n", "lp6mcIsBT1DQPYTabiYd" ] }'NodeJS
const axios = require('axios'); let data = JSON.stringify({ "name": "Test", "tags": [ "hWPsHY4BKyic2m5h68XM", "0Hif4I0BgdRKipEjFN2n", "lp6mcIsBT1DQPYTabiYd" ] }); let config = { method: 'put', maxBodyLength: Infinity, url: '<https://api.berqnetservices.com/devices/bnii4I0BgdRKipEj9t7A>', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN', }, data : data }; axios.request(config) .then((response) => { console.log(JSON.stringify(response.data)); }) .catch((error) => { console.log(error); });Go
package main import ( "fmt" "strings" "net/http" "io/ioutil" ) func main() { url := "<https://api.berqnetservices.com/devices/bnii4I0BgdRKipEj9t7A>" method := "PUT" payload := strings.NewReader(`{ "name": "Test", "tags": [ "hWPsHY4BKyic2m5h68XM", "0Hif4I0BgdRKipEjFN2n", "lp6mcIsBT1DQPYTabiYd" ] }`) client := &http.Client { } req, err := http.NewRequest(method, url, payload) if err != nil { fmt.Println(err) return } req.Header.Add("Content-Type", "application/json") req.Header.Add("Authorization", "Bearer YOUR_TOKEN") res, err := client.Do(req) if err != nil { fmt.Println(err) return } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return } fmt.Println(string(body)) }