Apple ekosistemini kurumsal düzeyde yönetmek sadece birkaç aygıt söz konusu olduğunda oldukça kolaydır. Ancak sayı yüzlere veya binlere ulaştığında, manuel işlemler bir operasyonel kabusa dönüşebilir. İşte tam bu noktada Apple Business Manager (ABM) API devreye giriyor.
Yazının ilk bölümünde, ABM’in ve ABM API‘nin ne olduğunu, işletmenize neler kattığını, neden modern BT altyapılarının ayrılmaz bir parçası olduğunu inceleyeceğiz.
Apple Business Manager (ABM) Nedir?
Apple Business Manager (ABM), kurumların Apple aygıtları ve kullanıcılarını merkezi olarak yönetebilmesi için Apple’ın ücretsiz olarak sunduğu kurumsal bir portaldır. Temelde aygıt yönetimi, kullanıcı ve hesap yönetimi, uygulama ve lisans dağıtımı, aygıt sahipliği ve güvenliği konularını tek bir portaldan yönetmenizi sağlamaktadır.
Apple Business Manager API Nedir?
Apple Business Manager API, Apple’ın kurumsal yönetim platformu ile kendi yazılımlarınız veya üçüncü taraf MDM (Mobile Device Management) çözümleriniz arasında köprü kuran bir programlama arayüzüdür.
Basitçe ifade etmek gerekirse; ABM arayüzüne giriş yaparak manuel olarak yaptığınız aygıt atamaları, sunucu yapılandırmaları ve uygulama yönetimi gibi işlemleri, kod yazarak otomatik hale getirmenizi sağlar.
Neden ABM API Kullanmalısınız?
API kullanımının en büyük getirisi, BT ekiplerinin günlük operasyonel yükünü azaltması ve manuel yönetimde ortaya çıkan hata risklerini ortadan kaldırmasıdır. Aşağıdaki başlıklar bu farkı net biçimde gösterir:
A. Operasyonel Otomasyon
Manuel süreç ile:
- Aygıtları tek tek ABM üzerinden bulup MDM sunucularına atarsınız
- Bir yanlış seçim, atama unutulması veya tekrar gereksinimi doğurabilir
- Yüzlerce/binlerce aygıt için bu işlem uzun süreler alabilir.
API ile:
- Aynı işlemi birkaç satır kod ve istek tetiklemesi ile saniyeler içinde yaparsınız
- Binlerce aygıtı topluca atayabilir, geri çekebilir veya yeniden yönlendirebilirsiniz
- “Zero-touch deployment” yaklaşımına sadık bir uygulama sağlanır
Sonuç: Zaman ve operasyonel tasarruf.
B. Veri Senkronizasyonu ve Raporlama
Manuel süreç ile:
- Seri numaraları ABM’den manuel export edilerek takip edilir
- ERP/varlık yönetim sistemlerine manuel işlenmesi gerekir
- Güncel envanter listesinde hata ihtimali ortaya çıkar (aygıt silinse veya taşınsa bile kayıt farkları oluşabilir)
API ile:
- ABM’deki tüm aygıt listesi anlık olarak çekilip iç sistemlere senkronize edilebilir.
- Seri numarası, sahiplik / atama değişiklikleri vb. parametreler gerçek zamanlı olarak yansıyıp raporlanır.
- Envanter listesindeki “gerçek ile kayıt” uyuşmazlığı ortadan kalkar
Sonuç: Dinamik, güncel ve hatasız envanter takip yapısı.
C. Hata Payının Azaltılması
Manuel süreç ile:
- Yanlış seri numarası girme
- Yanlış MDM sunucusuna atama
- Bir aygıtın gözden kaçması
- Yedekli kayıtlardan kaynaklanan tutarsızlıklar
gibi hatalar yaşanabilmektedir.
API ile:
- Veri işleme Apple’ın sağladığı doğrulukla yapılır
- Seri numaraları ve aygıt bilgileri doğrudan Apple’dan alındığı için
girdi hatası, kopyalama hatası veya eksik veri durumu ortadan kalkar - İş kuralları otomatik uygulanabilir ve segmentasyona uygun atamalar sağlanabilir (örn. “Marka ortaklı MDM sunucularına otomatik dağıtım”)
Sonuç: Tutarlılık + doğruluk + sürdürülebilir süreç.
ABM API’nın Temel Yetenekleri
ABM API ile neler yapabileceğinizi bilmek, projelerinizin kapsamını belirlemenize yardımcı olur:
- Aygıt Yönetimi: Aygıtların hangi MDM sunucusuna atanacağını belirlemek veya değiştirmek.
- Sunucu Yönetimi: Birden fazla MDM sunucusunu tek bir merkezden yönetmek ve senkronize etmek.
- Aygıt Detaylarını Sorgulama: Bir aygıtın seri numarası ile geçmişini, özelliklerini ve hangi sunucuya bağlı olduğunu görmek.
Kimler İçin Uygundur?
ABM API kullanımı genellikle şu senaryolarda kaçınılmaz hale gelir:
- Büyük Ölçekli İşletmeler: Yüzlerce ya da binlerce Apple aygıtına sahip olan ve bunları merkezi bir sistemden takip etmek isteyen kurumlar.
- Yazılım Geliştiriciler & MSP’ler: Kendi envanter yönetim yazılımını geliştiren veya müşterilerine özel MDM çözümleri sunan teknoloji firmaları.
- BT Danışmanları: Müşterilerinin Apple kurulum süreçlerini optimize etmek isteyen kişi ya da kurumlar.
Teknik Hazırlık Öncesi Notlar
Yazının devamında Postman üzerinden yapacağımız teknik uygulamaya geçmeden önce, şunlara sahip olduğunuzdan emin olun:
- Onaylanmış bir Apple Business Manager hesabı.
- Hesapta Administrator veya Device Manager yetkisi.
- Apple Developer portalı üzerinden oluşturulacak gerekli sertifikalar ve anahtarlar.
Adım adım ABM API Entegrasyonu
Postman ve Python Kullanarak İlk İsteğimizi Gönderiyoruz
Yazının bu bölümünde, kollarımızı sıvayıp Apple sunucularıyla konuşmaya başlayacağız ve ilk başarılı bağlantıyı nasıl kuracağımızı teknik detaylarıyla ele alacağız. Bu rehber sonunda, elinizde çalışan bir Postman Collection olacak. ABM API kullanımı için sırasıyla aşağıdaki adımlar takip edilir.
ABM API (.pem) oluşturulur
↓
JWT (client assertion) oluşturulur
↓
Token Endpoint’e gönderilir (Authentication)
↓
Access Token (Bearer Token) elde edilir
↓
API’ye Request atılır (Authorization type: Bearer <token>)
↓
API’den Response alınır
Adım Adım Yapılan İşlemler
1. ABM içerisinden API oluşturulur.
– Apple Business Manager’a girin.
– Sol köşede yer alan kendi isminize tıklayın ve Preferences (Tercihler) seçin
– API sekmesine tıklayarak sağ üstte yer alan “+” butonuna tıklayın ve API’nize bir isim verin.
– Özel anahtarı (.pem) indirin ve saklayın. Her API için oluşan “.pem” yalnızca bir kez indirilebilir, güvenle saklayınız.

2. Kullanılan IDLE üzerinden (örn: Python editor) JWT (client assertion) oluşturulur.
Oluşturulacak kod bloğu içerisindeki private_key_file, client_id, team_id, key_id, audience ve alg alanları doğru şekilde tanımlanmalıdır.
“private_key_file”, indirilen “.pem” dosyasıdır. “client_id”, “team_id” ve “key_id” bilgileri ABM’de oluşturulan API arayüzünde mevcuttur. Not: (team_id = client_id olarak kullanılmalıdır.)
Bilgileri öğrenmek için oluşturulan API’nin yanında bulunan “Yönet” seçeneği kullanılmalıdır.


Kodun çalıştırılması sonucunda ilgili klasörde “client_assertion.txt” dosyası oluşur.
NOT: Python üzerinden sağlanacak JWT üretimi için Python kütüphanelerinin kullanılması gerekir. Kullanılacak kütüphanelere ilişkin bilgilendirmeler aşağıdaki gibidir. Dahili olmayan modüller için işlem öncesinde indirme gerekmektedir.
| Satır | Modül | Dahili mi ? | Amaç |
| import os | OS | Evet | Anahtar dosyasını okumak |
| İmport datetime as dt | datetime | Evet | Token geçerlilik süresi |
| İmport uuid as uuid | uuid | Evet | Benzersiz kimlik üretimi |
| from authlib.jose import jwt | Authlib | Hayır | Doğrulama için client assertion oluşturmak |
| from Crypto.PublicKey import ECC | PyCryptodome | Hayır | .pem dosyasındaki özel anahtarı yüklemek ve JWT’yi imazlamak |
3. Postman Authentication işleminin sağlanması
client_assertion.txt dosyasında bulunan token ile https://account.apple.com/auth/oauth2/v2/token adresine POST isteği yapılır. Sağlanan istek sonucunda response olarak access (bearer) token elde edilir.

4. API İsteklerini Kullanmak
Access token ile API istekleri sağlanır. Herhangi bir metot kullanımından önce ilgili istek yapısının Authorization alanı “Auth Type” “Bearer Token” seçilmelidir. Token alanına ise Authentication işleminden alınan “access token” girilmelidir.

Kullanılabilen İstek Tipleri
GET Organization Devices – Bir kuruluşta Otomatik Aygıt Kaydı (ADE) kullanarak kaydolan aygıtların bir listesi edinilir.
GET Device Information – Bir kuruluştaki bir aygıt hakkında seri numarası üzerinden bilgi edinilir.
GET Device Management Services – Bir kuruluştaki MDM sunucularının listesi edinilir.
GET Device Serial Numbers for a Device Management Service – Bir aygıt yönetim hizmetine (MDM sunucusuna) atanan aygıt seri numaralarının listesi edinilir.
GET Assigned Device Management Service ID for a Device – Bir aygıtın atanmış olduğu MDM sunucuna ait kimlik bilgileri edinilir.
GET Assigned Device Management Service Information for a Device – Bir aygıtın atanmış olduğu MDM sunucusuna ait hizmet bilgileri edinilir.
POST Assign or Unassign Devices to a Device Management Service – Aygıtların bir MDM sunucuna atanmasını ya da mevcut atamanın kaldırılmasını sağlar.
GET Organization Device Activity Information – Atama veya atamayı kaldırma gibi bir aygıt yönetimi eylemi hakkında bilgi edinilir.
İşlem Akışında Dikkat Edilmesi Gerekenler
- Access (bearer) token yaklaşık 1 saat geçerlidir; süresi dolduğunda yeniden token alınmalıdır.
- Client assertion token’ı (JWT) ise en fazla 180 gün için geçerli olacak şekilde üretilir; süresi dolmadan yeniden imzalanabilir.
- İşlem sağlanırken .py ve .pem dosyaları aynı klasörde bulunmalıdır.
- ABM içerisinde oluşturulan API’ye ait .pem token’ın expire süresi 1 yıldır. 1 yıl sonra tekrar generate seçeneği üzerinden yeni .pem token elde edilebilir.
Sık görülen hatalar ve kontroller
- invalid_client → Çoğunlukla aşağıdaki sebepler:
- aud yanlış (mutlaka https://account.apple.com/auth/oauth2/v2/token olmalı),
- expire olmuş JWT, access (bearer), .pem token ile işlem yapılması,
- yanlış/hatalı key ID ya da private key ile imzalama,
- yanlış scope tanımı (ABM için business.api olmalıdır).
Kaynakça
https://developer.apple.com/documentation/applebusinessmanagerapi
https://support.apple.com/tr-tr/guide/apple-business-manager/axm33189f66a/web
ABM API.postman_collection.json
Client Assertion.py
Photo by Rubaitul Azad on Unsplash

Bir Cevap Yazın