Yöneticiler için MDM Ayarları
RedirectWeb, Apple'ın Yönetilen Uygulama Yapılandırmasını (Managed App Configuration) destekleyerek, sizlerin (BT yöneticileri) Jamf, Intune, Kandji vb. gibi bir Mobil Cihaz Yönetimi (MDM) çözümü aracılığıyla çalışan/öğrenci cihazlarında uygulama ayarlarını merkezi olarak dağıtmanıza ve yönetmenize olanak tanır.
Bu sayfa yapılandırılabilir anahtarları, uygulama davranışlarını, en iyi uygulamaları ve sınırlamaları özetlemektedir.
Genel Bakış
Apple Business Manager / Apple School Manager (VPP) Dağıtımları İçin: Standart RedirectWeb uygulaması, VPP toplu satın alımı için uygun olmayan, freemium Uygulama İçi Satın Alma modelini kullanır. Tam kilidi açılmış uygulamayı kuruluşunuza dağıtmak için lütfen özellikle MDM/VPP dağıtımı için tasarlanmış ücretli bir sürüm olan RedirectWeb Pro uygulamasını satın alın.
Yapılandırmaları MDM'niz aracılığıyla göndererek aşağıdakileri elde edebilirsiniz:
- Zorunlu Kurallar: Kullanıcıların değiştiremeyeceği veya silemeyeceği kuruluş çapında yönlendirme kuralları uygulayın.
- Başlangıç Kuralı Dağıtımı: Uygulamanın ilk açılışında varsayılan olarak hizmet veren bir şablon kural seti dağıtın.
- UI Kontrolü: Belirli özelliklere (Kitaplık gibi) erişimi kısıtlayın ve uygulama içinde uygulamanın kuruluş yönetimi altında olduğunu açıkça belirtin.
- Büyük Kural Alma (Fallback): Kuralları harici bir sunucudan alarak MDM yük boyutu sınırlarını aşın.
Kullanım Durumları
- Sistem geçişleri sırasında sorunsuz yönlendirme:
Eski bir dahili sistemden (örn.
legacy-crm.internal.local) yeni bir platforma (örn.salesforce.com) geçerken birenforcedRuleSetdağıtın. Çalışanlar eski yer imlerini kullansalar bile otomatik olarak yeni sisteme yönlendirilirler, bu da güncel olmayan bağlantılarla ilgili BT destek taleplerini ortadan kaldırır. - İntranet Erişimi Yardımı: Omnissa Web gibi Uygulama Başına VPN tünelleri aracılığıyla intranet kaynaklarına erişimi kolaylaştırmak için özel URL şemaları kullanan yönlendirme kuralları dağıtın.
MDM yapılandırma gönderimleri, yalnızca kullanıcı RedirectWeb uygulamasını açarsa hemen uygulanır. Uygulama, tarayıcı uzantısına MDM güncellemelerini sessizce göndermek için arka plan görevlerini kullansa da, bu işletim sistemi tarafından dikte edilen bir "en iyi çaba" (best-effort) yürütmedir. Yürütme zamanlaması son derece öngörülemezdir ve görev hiç çalışmayabilir. Bu nedenle, bu özelliğe zaman açısından kritik olay müdahalesi için (örn. bir bulut hizmeti kesintisinden birkaç dakika sonra tüm çalışanları anında yedek bir siteye yönlendirmeye çalışmak) güvenilmemelidir.
Demo
Videoda kullanılan plist dosyası, Sözlük (<dict>) anahtarlarını kullanan sample-mdm.plist olarak mevcuttur. Ayrıca JSON Dizesi anahtarlarını kullanan sample-mdm-json-string.plist de mevcuttur (aynı veriler).
Videoda, yapılandırmayı dağıtmak için ManageEngine'in MDM'si kullanılmıştır, ancak Apple'ın Yönetilen Uygulama Yapılandırmasını destekledikleri sürece aynı yapılandırma diğer MDM çözümleri için de kullanılabilir.
Sözlük vs. JSON Dizesi: Sözlük türü daha fazla tür güvenliği sağlarken, bazı MDM çözümleri (Omnissa Workspace ONE UEM gibi) yönetilen uygulama yapılandırmasında Sözlük türünü desteklemez. Bu gibi durumlarda, JSON Dizesi türünü kullanmak önerilen bir geçici çözümdür.
Yapılandırılabilir Anahtarlar
Managed App Configuration için aşağıdaki anahtarları ve değerleri MDM konsolunuz aracılığıyla, genellikle plist formatında dağıtın.
| Anahtar Adı | Tür | Açıklama |
|---|---|---|
enforcedRuleSet | Kural Seti | Normal kurallardan daha yüksek öncelikle uygulanan bir kural seti. Listedeki ilk kural önceliklidir. Kullanıcılar bu kuralları düzenleyemez, silemez veya yeniden sıralayamaz. Uygulamanın genel devre dışı bırakma düğmesini yok sayarak her zaman aktiftirler. |
enforcedRuleSetJSONString | JSON Dizesi | enforcedRuleSet ile aynıdır, ancak kural seti ham bir JSON dizesi olarak sağlanır. Bu, yönetilen uygulama yapılandırmasında Sözlük türünü desteklemeyen MDM platformları için kullanışlıdır. |
prefilledRuleSet | Kural Seti | Mevcut kuralları olmayan bir kullanıcı uygulamayı ilk kez başlattığında varsayılan örnek kuralın yerine oluşturulan bir kural seti. Dağıtıldıktan sonra bunlar normal kurallar gibi hareket ederek kullanıcı değişikliğine, silinmesine ve iCloud senkronizasyonuna olanak tanır. |
prefilledRuleSetJSONString | JSON Dizesi | prefilledRuleSet ile aynıdır, ancak kural seti ham bir JSON dizesi olarak sağlanır. Bu, yönetilen uygulama yapılandırmasında Sözlük türünü desteklemeyen MDM platformları için kullanışlıdır. |
organizationName | Dize | Uygulama içi ayarlar ekranının üst kısmında "[organizationName] tarafından yönetiliyor" ifadesini görüntüleyerek kullanıcıya uygulamanın yönetildiğini belirtir. |
managedConfigVersion | Dize | Yapılandırma için rastgele bir sürüm dizesi. BT desteğinin sorun giderme sırasında en son MDM yükünün cihaza ulaşıp ulaşmadığını doğrulamasına olanak tanıyacak şekilde kullanıcı arayüzünde görüntülenir. |
showsLibrarySection | Boole | false olarak ayarlanırsa, Kural Kitaplığı özelliği gizlenir ve bölüm "Kuruluşunuz tarafından kısıtlandı" hata mesajıyla değiştirilir. |
fallback | Fallback | MDM yük boyutu sınırı aşıldığında bunu belirtin. Uygulama, yapılandırmayı fallbackDataURL içinde belirtilen URL'den alacaktır. |
fallbackJSONString | JSON Dizesi | fallback ile aynıdır, ancak fallback yapılandırması ham bir JSON dizesi olarak sağlanır. Bu, yönetilen uygulama yapılandırmasında Sözlük türünü desteklemeyen MDM platformları için kullanışlıdır. |
Bu anahtarların tümü isteğe bağlıdır.
Yapılandırma Değeri Türleri
Kural Seti
Her kural nesnesi, uygulama aracılığıyla paylaşabileceğiniz/dışa aktarabileceğiniz formatla aynı formata sahiptir, ancak bunu JSON'dan plist'e şu şekilde dönüştürmeniz gerekir:
...
<key>enforcedRuleSet</key>
<dict>
<key>kind</key>
<string>RedirectList</string>
<key>bundleID</key>
<string>io.github.mshibanami.RedirectWebForSafari</string>
<key>formatVersion</key>
<string>5</string>
<key>redirects</key>
<array>
<dict>
<key>kind</key>
<string>Redirect</string>
<key>type</key>
<string>originalRedirect</string>
<key>title</key>
<string>My enforced Rule</string>
<key>sourceURLPattern</key>
<dict>
<key>type</key>
<string>wildcard</string>
<key>value</key>
<string>https://example.com/1</string>
</dict>
<key>destinationURLPattern</key>
<string>https://google.com/search?q=1</string>
</dict>
</array>
</dict>
...
Fallback
| Anahtar Adı | Tür | Açıklama |
|---|---|---|
fallbackDataURL | Dize (URL) | Kural setlerini içeren bir JSON/XML dosyasının uç nokta URL'si. |
authToken | Dize | fallbackDataURL adresinden alınırken HTTP üstbilgisine eklenen bir kimlik doğrulama belirteci. (Authorization: Bearer [authToken] olarak kullanılır). |
JSON Dizesi
Bazı MDM platformları (örn. Omnissa Workspace ONE UEM), yönetilen uygulama yapılandırmasında Sözlük (<dict>) türünü desteklemez. Geçici bir çözüm olarak, JSONString ile biten anahtarlar (enforcedRuleSetJSONString, prefilledRuleSetJSONString ve fallbackJSONString gibi), Sözlük karşılıklarıyla aynı verileri kabul eder ancak bir plist <string> öğesi içinde ham bir JSON dizesi olarak kodlanır.
JSON dizesi, aşağıdaki örnekte gösterildiği gibi, okunabilirlik için küçültülebilir veya satır sonları ve girintilerle güzelce yazdırılabilir:
...
<key>enforcedRuleSetJSONString</key>
<string>{
"kind": "RedirectList",
"bundleID": "io.github.mshibanami.RedirectWebForSafari",
"formatVersion": "5",
"redirects": [
{
"kind": "Redirect",
"type": "originalRedirect",
"title": "My enforced Rule",
"sourceURLPattern": {
"type": "wildcard",
"value": "https://example.com/1"
},
"destinationURLPattern": "https://google.com/search?q=1"
}
]
}</string>
...
Hem bir Sözlük anahtarı hem de buna karşılık gelen JSONString anahtarı mevcutsa (örn. hem enforcedRuleSet hem de enforcedRuleSetJSONString), Sözlük anahtarı önceliklidir.
Kural Değerlendirmesi ve Çatışma Çözümü
- Bir
enforcedRuleSetsağlanırsa, kuralları mutlak öncelikle uygulanır. - Normal kural yoksa ancak bir
prefilledRuleSetvarsa,prefilledRuleSetnormal kural olarak kaydedilir. - Varsayılan "Örnek yönlendirme kuralı", yalnızca hiçbir MDM kuralı yapılandırılmamışsa ve normal kural yoksa oluşturulur.
Fallback URL Davranışı
Bir anahtar hem satır içi MDM yükünde hem de fallbackDataURL aracılığıyla alınan verilerde mevcut olduğunda, uygulama çatışmayı şu şekilde ele alır:
- Alım Tamamlanmadan Önce: Satır içi ayarlar kesinlikle önceliklidir ve kullanılır.
- Başarılı Alımdan Sonra:
fallbackDataURLadresinden alınan veriler ilgili satır içi ayarların üzerine yazılır. - Başarısız Alımdan Sonra: Uygulama, satır içi ayarları kullanmaya devam eder.
- Bağımsız Anahtarlar: Yalnızca satır içi yükte bulunan anahtarlar her zaman korunur.
MDM Geri Bildirimi ve Durum Kontrolü
Yapılandırmanın başarıyla uygulanıp uygulanmadığını, MDM çözümünüz destekliyorsa MDM geri bildirim kanalı (com.apple.feedback.managed) aracılığıyla doğrulayabilirsiniz. Yapılandırmayı işledikten (veya URL alımını tamamladıktan) sonra uygulama aşağıdaki verileri döndürür:
managedConfigVersion: Yapılandırma girişiminin sürüm dizesi.result:successveyaerror.messages: Varsa, ayrıntılı hata veya uyarı mesajlarını içeren bir dizi.