Apple sistem yöneticilerinin başvuru kaynağı

APPLE BUSINESS MANAGER API REHBERİ

Yazar

Yayın tarihi

Etiketler

Kategori

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:

  1. 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.
  2. 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ı.
  3. 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.

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ırModülDahili mi ?Amaç
import osOSEvetAnahtar dosyasını okumak
İmport datetime as dtdatetimeEvetToken geçerlilik süresi
İmport uuid as uuiduuidEvetBenzersiz kimlik üretimi
from authlib.jose import jwtAuthlibHayırDoğrulama için client assertion oluşturmak
from Crypto.PublicKey import ECCPyCryptodomeHayı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/apple-school-and-business-manager-api/implementing-oauth-for-the-apple-school-and-business-manager-api

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


Settings Blog’a Abone Olun

Yayınlanan her yazı annıda e-posta adresinize gelsin.

Comments

Bir Cevap Yazın

Settings Blog'a Abone Olun

Yayınlanan her yazı anında e-posta adresinize gelsin.

Okumaya devam edin