Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Bu kılavuz birkaç ayrı aşamaya ayrılmıştır. Entegrasyonu Planlama bölümünü gözden geçirerek başlayın.
Aşama Hedefleri
- Intune Uygulama SDK'sını indirin.
- Intune Uygulama SDK'sına hangi dosyaların dahil olduğunu öğrenin.
- Uygulamanızdaki Intune App SDK'sına başvurun.
- Intune App SDK'nın derlemenize düzgün bir şekilde eklendiğini onaylayın.
- MSAL ile kimlik doğrulaması yaptıktan sonra MAM yönetimi için yeni hesaplar kaydedin.
- Şirket verilerini kaldırmak için, oturumu kapattığınızda hesapların kaydını silin
- (Önerilen) MAM oturum açma özelliğini uygulamanıza dahil edin.
Önkoşullar
Xcode 16.0 veya sonraki bir sürüme sahip bir macOS bilgisayara ihtiyacınız vardır.
Uygulamanız iOS 16.0 veya üzeri için hedeflenmelidir.
iOS için Intune App SDK'sı Lisans Koşulları'nı inceleyin. Kayıtlarınız için lisans koşullarının bir kopyasını yazdırın ve saklayın. iOS için Intune App SDK'yı indirip kullanarak bu lisans koşullarını kabul etmiş olursunuz. Bu koşulları kabul etmiyorsanız yazılımı kullanmayın.
GitHub'da iOS için Intune App SDK'sı dosyalarını indirin.
SDK Deposunda neler var?
IntuneMAMSwift.xcframework: TIntuneIntune Uygulama SDK'sı dinamik çerçevesi. TIntuneIntune istemci uygulaması yönetimini etkinleştirmek için bu çerçeveyi uygulamanıza/uzantılarınıza bağlamanız önerilir. Ancak, bazı geliştiriciler statik çerçevenin (IntuneMAMStatic.xcframework) performans avantajlarını tercih edebilir.
IntuneMAMStatic.xcframework: IntuneIntune Uygulama SDK'sı statik çerçevesi. Geliştiriciler, dinamik çerçeve yerine statik çerçeveyi bağlamayı seçebilir. Statik bir çerçeveden yürütülebilir kod, derleme zamanında doğrudan uygulama/uzantı ikili dosyasına eklendiğinden, statik kitaplığı kullanmanın bazı başlatma zamanı performans avantajları vardır. Ancak, uygulamanız herhangi bir uzantı içeriyorsa, statik çerçeveyi uygulamaya ve uzantılara bağlamak, daha büyük bir uygulama paketi boyutuna neden olur. Yürütülebilir kod, her uygulama/uzantı ikili dosyasına eklenir. Buna karşılık, dinamik çerçeve kullanılırken, uygulamalar ve uzantılar aynı IntuneIntune SDK ikili dosyasını paylaşabilir ve bu da daha küçük bir uygulama boyutuna neden olur.
IntuneMAMSwiftStub.xcframework: The IntuneIntune App SDK Swift Stub framework. Bu çerçeve, uygulamaların/uzantıların bağlaması gereken hem IntuneMAMSwift.xcframework hem de IntuneMAMStatic.xcframework için gerekli bir bağımlılıktır.
IntuneMAMConfigurator: Uygulama veya uzantının Info.plist'ini, IntuneIntune yönetimi için gereken en düşük değişikliklerle yapılandırmak için kullanılan bir araç. Uygulamanızın veya uzantınızın işlevselliğine bağlı olarak Info.plist dosyasında el ile daha fazla değişiklik yapmanız gerekebilir.
libIntuneMAMSwift.xcframework: IntuneIntune Uygulama SDK'sı statik kitaplığı. TIntuneIntune MAM iOS SDK'sının bu çeşidi kullanım dışı bırakılmıştır ve gelecekteki bir güncelleştirmede kaldırılacaktır. Statik kitaplığı bağlamamanızı ve bunun yerine uygulamanızı/uzantılarınızı daha önce bahsedilen dinamik çerçeveye (IntuneMAMSwift.xcframework) veya statik çerçeveye (IntuneMAMStatic.xcframework) bağlamanızı öneririz.
IntuneMAMResources.bundle: SDK'nın dayandığı kaynakları içeren bir kaynak paketi. Kaynak paketi yalnızca kullanım dışı bırakılan statik kitaplığı (libIntuneMAMSwift.xcframework) tümleştiren uygulamalar için gereklidir ve gelecekteki bir güncelleştirmede bu kitaplığı kaldırır.
TIntuneIntune Uygulama SDK'sı nasıl çalışır?
iOS için Intune Uygulama SDK'sının amacı, iOS uygulamalarına en az kod değişikliğiyle yönetim özellikleri eklemektir. Kod ne kadar az değişirse, pazara sunma süresi o kadar kısa olur, ancak mobil uygulamanızın tutarlılığını ve kararlılığını etkilemez.
Süreç akışı
Aşağıdaki diyagramda iOS için Intune App SDK'sı işlem akışı sağlanır:
SDK'yı mobil uygulamanıza ekleyin
Önemli
IntuneIntune, IntuneIntune Uygulama SDK'sı için düzenli olarak güncelleştirmeler yayınlar. Güncelleştirmeler için iOS için Intune Uygulama SDK'sını düzenli olarak denetleyin ve uygulamalarınızın en son Uygulama Koruma İlkesi ayarlarını desteklediğinden emin olmak için yazılım geliştirme sürüm döngünüze dahil edin.
TIntuneIntune Uygulama SDK'sını etkinleştirmek için şu adımları izleyin:
IntuneMAMSwift.xcframeworkHedefinize veyaIntuneMAMStatic.xcframeworkhedefinize bağlayın: xcframework paketini proje hedefinin Çerçeveler, Kitaplıklar ve Gömülü İçerik listesine sürükleyin. için bu adımları yineleyinIntuneMAMSwiftStub.xcframework. Ana uygulamanız için, eklenen her iki xcframework için "Ekle" sütununda "Ekle & İşareti" ni seçin. Herhangi bir uzantı için "Ekleme"yi seçin.
Bu iOS çerçevelerini projeye ekleyin:
- MessageUI.framework
- Security.framework
- CoreServices.framework
- SystemConfiguration.framework
- libsqlite3.tbd
- libc++.tbd
- ImageIO.framework
- LocalAuthentication.framework
- AudioToolbox.framework
- QuartzCore.framework
- WebKit.framework
- MetricKit.framework
Her proje hedefinde Özellikler'i seçerek ve Anahtar Zinciri Paylaşımı anahtarını etkinleştirerek anahtarlık paylaşımını etkinleştirin (henüz etkinleştirilmemişse). Bir sonraki adıma geçebilmeniz için anahtarlık paylaşımı gereklidir.
Not
Sağlama profilinizin yeni anahtarlık paylaşım değerlerini desteklemesi gerekir. Anahtarlık erişim grupları, joker karakteri desteklemelidir. Bunu, .mobileprovision dosyasını bir metin düzenleyicide açarak, keychain-access-groups öğesini arayarak ve joker karakteriniz olduğundan emin olarak kontrol edebilirsiniz. Örneğin:
<key>keychain-access-groups</key> <array> <string>YOURBUNDLESEEDID.*</string> </array>Anahtarlık paylaşımını etkinleştirdikten sonra, IntuneIntune App SDK'sının verilerini depoladığı ayrı bir erişim grubu oluşturmak için adımları izleyin. Kullanıcı arabirimini veya yetkilendirme dosyasını kullanarak bir anahtarlık erişim grubu oluşturabilirsiniz. Anahtarlık erişim grubunu oluşturmak için kullanıcı arabirimini kullanıyorsanız şu adımları izlediğinizden emin olun:
Mobil uygulamanızda tanımlanmış hiçbir anahtarlık erişim grubu yoksa uygulamanın paket kimliğini ilk grup olarak ekleyin.
Paylaşılan anahtarlık grubunu
com.microsoft.intune.mammevcut erişim gruplarınıza ekleyin. TIntuneIntune Uygulama SDK'sı, verileri depolamak için bu erişim grubunu kullanır.Varolan erişim gruplarınıza ekleyin
com.microsoft.adalcache.
Not
MSAL'yi varsayılan
com.microsoft.adalcacheyerine özel bir anahtarlık erişim grubu kullanacak şekilde yapılandırdıysanız, bu anahtarlık erişim grubunu burada belirtmeniz gerekmez. Bunun yerine, özel anahtarlık grubunu belirtin. Ayrıca Intune IntuneMAMSettings Info.plist sözlüğündeki ADALCacheKeychainGroupOverride ayarı aracılığıyla aynı özel erişim grubunu kullanacak şekilde yapılandırmanız gerekir.Yetkilendirme dosyasını doğrudan düzenliyorsanız, anahtarlık erişim gruplarını oluşturmak için Xcode kullanıcı arabirimini kullanmak yerine anahtarlık erişim gruplarının önüne (Xcode bunu otomatik olarak işler) ekleyin
$(AppIdentifierPrefix). Örneğin:$(AppIdentifierPrefix)com.microsoft.intune.mam$(AppIdentifierPrefix)com.microsoft.adalcache
Not
Yetkilendirme dosyası, mobil uygulamanıza özel bir XML dosyasıdır. iOS uygulamanızda özel izinler ve yetenekler belirtmek için kullanılır. Uygulamanızın daha önce bir yetkilendirme dosyası yoksa, anahtarlık paylaşımını etkinleştirmek (3. adım) Xcode'un uygulamanız için bir tane oluşturmasına neden olmalıydı. Uygulamanın paket kimliğinin listedeki ilk giriş olduğundan emin olun.
Uygulamanızın geçtiği
UIApplication canOpenURLher protokolü, uygulamanızın Info.plist dosyası dizisineLSApplicationQueriesSchemesekleyin. Bu dizide listelenen her protokol için, diziye eklenen-intunemamprotokolün bir kopyasını ekleyin. Ayrıca, diziye şu değerleri ekleyin:http-intunemam,https-intunemam,smseczipslacoonsecuritysmart-nswanderalookoutwork-asemicrosoft-edge-https-intunemammicrosoft-edge-http-intunemambetteractiveshieldmvisionmobileskycurescmxve .intunemam-mtdUygulamanız mailto: protokolünü kullanıyorsa, diziye de ekleyinms-outlook-intunemam. Sonraki adıma geçmeden önce değişikliklerinizi kaydedin.Uygulamanın LSApplicationQueriesSchemes listesinde yer kalmazsa, "-intunemam" düzenlerini, IntuneIntune MAM SDK'sını da uyguladığı bilinen uygulamalar için kaldırabilir. Uygulama LSApplicationQueriesSchemes listesinden "scheme-intunemam"ı kaldırdığında,
canOpenURL()bu düzenler için yanlış yanıtlar döndürebilir. Bu sorunu çözmek için bunun yerine bu düzeni arayın[IntuneMAMPolicy isURLAllowed:url isKnownManagedAppScheme:YES]. İlke URL'nin açılmasını engelliyorsa bu çağrı döndürülürNO. True değerini döndürürse, uygulama URL'nin açılıp açılamayacağını belirlemek için boş bir kimlikle çağrıcanOpenURL()yapabilir. Örneğin:BOOL __block canOpen = NO; if([policy isURLAllowed:urlForKnownManagedApp isKnownManagedAppScheme:YES]) { [[IntuneMAMPolicyManager instance] setCurrentThreadAccountId:"" forScope:^{ canOpen = [[UIApplication sharedApplication] canOpenURL:urlForKnownManagedApp]; }]; }Uygulamanız zaten FaceID kullanmıyorsa NSFaceIDUsageDescription Info.plist anahtarının varsayılan iletiyle yapılandırıldığından emin olun. iOS'un kullanıcıya uygulamanın FaceID'yi nasıl kullanmayı planladığını bildirebilmesi için bu adım gereklidir. Bir IntuneIntune uygulama koruma ilkesi ayarı, BT yöneticisi tarafından yapılandırıldığında FaceID'nin uygulama erişimi için bir yöntem olarak kullanılmasına olanak tanır.
Uygulamanızın Info.plist dosyasını yapılandırmayı tamamlamak için SDK deposuna dahil edilen IntuneMAMConfigurator aracını kullanın. Aracın üç parametresi vardır:
Özellik Kullanımı - i <Path to the input plist>- e <Path to the entitlements file>- o (İsteğe bağlı) <Path to the output plist>'-o' parametresi belirtilmezse giriş dosyası yerinde değiştirilir. Araç bir kez etkilidir ve uygulamanın Info.plist veya yetkilendirmelerinde her değişiklik yaptığınızda yeniden çalıştırılmalıdır. Ayrıca, en son sürümde Info.plist yapılandırma gereksinimlerinin değişmesi durumunda, IntuneIntune SDK'sını güncelleştirirken aracın en son sürümünü indirip çalıştırmanız gerekir.
Not
SwiftUI uygulamanız varsa, Info.pist dosyasındaki UIApplicationSceneManifest sözlüğün eksik veya boş olmadığından emin olunUISceneConfigurations. Bu ayarın yapılandırılmaması, uygulama koruma ilkeleri başarıyla uygulanmasına rağmen Intune SDK'sının uygulamanızı korumasını engelleyebilir.
Bunun UISceneConfigurations için belirli bir değer ayarlamadıysanız, bu varsayılan yapılandırmayı kullanabilirsiniz:
<key>UISceneConfigurations</key>
<dict>
<key>UIWindowSceneSessionRoleApplication</key>
<array>
<dict>
<key>UISceneConfigurationName</key>
<string>Default Configuration</string>
<key>UISceneDelegateClassName</key>
<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
</dict>
</array>
</dict>
Xcode Derleme Ayarları ve Özellikleri
Uygulamanın Xcode derleme ayarlarında hem "Strip Swift Symbols"(STRIP_SWIFT_SYMBOLS) hem de "Bitcode'u Etkinleştir"(ENABLE_BITCODE) seçeneği HAYIR olarak ayarlanmış olmalıdır. Uygulamanız Xcode 26+'da kullanılabilen "Gelişmiş Güvenlik" özelliğini içeriyorsa, "İşaretçileri doğrula" ve "Salt Okunur Platform Belleğini Etkinleştir" seçeneklerini devre dışı bırakmanız GEREKİR.
Dosya Sağlayıcısı uzantısını tümleştirme
Dosya Sağlayıcısı uzantılarının, tam SDK'yı tümleştirmeyi zorlaştırabilecek belirli bellek gereksinimleri vardır. Daha kolay hale getirmek için, bir statik kitaplık libIntuneMAMSwiftFileProvider.xcframework, özellikle Dosya Sağlayıcısı uzantıları için SDK'nın sadeleştirilmiş bir sürümüdür. Bu kitaplığın FileProvider uzantısının UI olmayan bölümü için olduğunu unutmayın. Tam SDK'yı dosya sağlayıcısı kullanıcı arabirimi uzantısıyla tümleştirmeniz gerekir.
Bu kitaplıklardan birini Dosya Sağlayıcısı uzantınızla tümleştirmek için SDK'yı statik kitaplık olarak tümleştirme adımlarını izleyin. Ayarı eklediğinizden ContainingAppBundleId emin olun.
Çoğaltılmamış Dosya Sağlayıcısı uzantısını tümleştirme
Uygulamanız, NSFileProviderExtension protokolünü uyguluyorsa Çoğaltılmamış Dosya Sağlayıcısı kullanıyor demektir. iOS 16.0'dan önce oluşturulan tüm dosya sağlayıcıları çoğaltılmaz.
In - startProvidingItemAtURL:completionHandler: [[IntuneMAMPolicy örneği]shouldFileProviderEncryptFiles] kullanarak dosyaları şifrelemeniz gerekip gerekmediğini kontrol edin. Gerçek dosya şifrelemesi için IntuneMAMFileProtectionManager'da encryptFile:forAccountId: API'yi kullanın. Ayrıca, dosyanın şifrelenmiş bir kopyasını bulut depolama alanınızda depolamak istemeyeceğiniz için şifreleme gerektiğinde dosyanın bir kopyasını paylaşın.
In - importDocumentAtURL:toParentItemIdentifier:completionHandler: dosyanın IntuneMAMFileProtectionManager'daki isFileEncrytped: API'si kullanılarak şifrelenip şifrelenmediğini kontrol edin. Öyleyse, IntuneMAMFileProtectionManager'ın decryptFile:toCopyPath: API'sini kullanarak şifresini çözün. Çok kimlikli uygulamalarda, sahibin dosyayı alıp alamayacağını belirlemek için hedef sahibin IntuneMAMPolicy'sindeki canReceiveSharedFile: API'sini de denetleyin.
Çoğaltılmış Dosya Sağlayıcısı uzantısını tümleştirme
Uygulamanız, NSFileProviderReplicatedExtension protokolünü (iOS 16.0'da eklenen) uyguluyorsa Çoğaltılmış Dosya Sağlayıcısı kullanıyor demektir.
In - fetchContentsForItemWithIdentifier:version:request:completionHandler: [[IntuneMAMPolicy örneği]shouldFileProviderEncryptFiles] kullanarak dosyaları şifrelemeniz gerekip gerekmediğini kontrol edin. Gerçek dosya şifrelemesi için IntuneMAMFileProtectionManager'da encryptFile:forAccountId: API'sini kullanın. Dosyanın şifrelenmiş bir kopyasını bulut depolama alanınızda depolamak istemediğiniz için dosyanın bir kopyasını şifreleme gerektiğinde paylaşın.
In - createItemBasedOnTemplate:fields:contents:options:request:completionHandler: dosyanın IntuneMAMFileProtectionManager'daki isFileEncrypted: API'si kullanılarak şifrelenip şifrelenmediğini denetleyin. Öyleyse, IntuneMAMFileProtectionManager'ın decryptFile:toCopyPath: API'sini kullanarak şifresini çözün. Çok kimlikli uygulamalarda, sahibin dosyayı alıp alamayacağını belirlemek için hedef sahibin IntuneMAMPolicy'sindeki canReceiveSharedFile: API'sini de denetleyin.
Çoğaltılmış Dosya Sağlayıcısı'nın oluşturduğu ve sisteme bir NSFileProviderItem geçirdiği her yerde, öğenin sahip kimliğiyle IntuneMAMFileProtectionManager'ın protectFileProviderItem:forAccountId: API'sini çağırın. NSFileProviderItem nesnesinin uzantınız içinde oluşturulduğu ve kalıcı olduğu yere bağlı olarak, bunu NSFileProviderReplicatedExtension'ın protokol yöntemlerinin her birinde yapmanız gerekebilir.
TIntuneIntune App SDK'sı için ayarları yapılandırma
TIntuneIntune Uygulama SDK'sını ayarlamak ve yapılandırmak için uygulamanın Info.plist dosyasındaki IntuneMAMSettings sözlüğünü kullanabilirsiniz. IntuneMAMSettings sözlüğü Info.plist dosyanızda görünmüyorsa, bunu oluşturmanız gerekir.
IntuneMAMSettings sözlüğü altında, IntuneIntune App SDK'yı yapılandırmak için aşağıdaki desteklenen ayarları tanımlayabilirsiniz.
Önceki bölümlerde bu ayarların bazıları ele alınır ve bazıları tüm uygulamalar için geçerli değildir.
| Ayar | Tür | Tanım | Gerekli mi? |
|---|---|---|---|
| ADALClientId | Dize | Uygulama Microsoft EntraMicrosoft Entra client identifier. | Tüm uygulamalar için gereklidir. |
| ADALAuthority | Dize | Uygulamanın Microsoft EntraMicrosoft Entra authority in use. Microsoft Entra hesaplarının yapılandırıldığı kendi ortamınızı kullanmanız gerekir. Daha fazla bilgi için bkz: Uygulama yapılandırma seçenekleri. | Uygulama, tek bir kuruluş / Microsoft EntraMicrosoft Entra kiracısı içinde kullanılmak üzere oluşturulmuş özel bir iş kolu uygulamasıysa gereklidir. Bu değer yoksa, ortak Microsoft EntraMicrosoft Entra yetkisi kullanılır (yalnızca çok kiracılı uygulamalar için desteklenir). |
| ADALRedirectUri | Dize | Uygulamanın Microsoft EntraMicrosoft Entra yönlendirme URI'si. | Tüm uygulamalar için ADALRedirectUri veya ADALRedirectScheme gereklidir. |
| ADALRedirectScheme | Dize | Uygulama Microsoft Entra IDMicrosoft Entra ID yönlendirme şeması. Bu, uygulamanın yeniden yönlendirme URI'si biçimindeyse scheme://bundle_idADALRedirectUri yerine kullanılabilir. |
Tüm uygulamalar için ADALRedirectUri veya ADALRedirectScheme gereklidir. |
| ADALLogOverrideDisabled | Boole | SDK'nın tüm MSAL günlüklerini (varsa uygulamadan gelen MSAL çağrıları dahil) kendi günlük dosyasına yönlendirip yönlendirmediğini belirtir. Varsayılan değer HAYIR'dır. Uygulama kendi MSAL günlüğü geri aramasını ayarlarsa EVET olarak ayarlayın. | İsteğe bağlı. |
| ADALCacheKeychainGroupOverride | Dize | Bunun yerine "com.microsoft.adalcache"MSAL önbelleği için kullanılacak anahtarlık grubunu belirtir. Sistem bunu çalışma zamanında otomatik olarak önekler. |
İsteğe bağlı. |
| AppGroupIdentifiers | Dize dizisi | Uygulamanın yetkilendirmeler com.apple.security.application-groups bölümündeki uygulama grupları dizisi. |
Uygulama, uygulama gruplarını kullanıyorsa gereklidir. |
| ContainingAppBundleId | Dize | Uzantının içeren uygulamasının paket kimliğini belirtir. | iOS uzantıları için gereklidir. |
| AutoEnrollOnLaunch | Boole | Var olan bir yönetilen kimlik algılanırsa ve henüz bunu yapmadıysa uygulamanın başlatma sırasında otomatik olarak kaydolmaya çalışıp çalışmayacağını belirtir. Varsayılan değer HAYIR'dır. Bilginize: Yönetilen kimlik bulunamazsa veya MSAL önbelleğinde geçerli bir belirteç yoksa, kayıt EVET olmadığı sürece MAMPolicyRequired sessizce başarısız olur. |
İsteğe bağlı. Varsayılan değer HAYIR'dır. |
| MAMPolicyGerekli | Boole | Uygulamanın bir IntuneIntune uygulama koruma ilkesi yoksa başlatılmasının engellenip engellenmeyeceğini belirtir. Varsayılan değer HAYIR'dır. Bilginize: Bu ayar EVET olarak olduğunda uygulamalar App Store gönderilemez. EVET olarak ayarlarken, AutoEnrollOnLaunch aynı zamanda EVET olmalıdır. |
İsteğe bağlı. Varsayılan değer HAYIR'dır. |
| MAMPolicyWarnEksik | Boole | Intune uygulama koruma ilkesi yoksa uygulamanın başlatma sırasında kullanıcıyı uyarıp uyarmayacağını belirtir. Bilginize: Kullanıcılar uyarıyı kapattıktan sonra da devam edebilir. |
İsteğe bağlı. Varsayılan değer HAYIR'dır. |
| Çoklu Kimlik | Boole | Uygulamanın çoklu kimlik algılamalı olup olmadığını belirtir. Daha fazla bilgi için çoklu kimlik belgelerine bakın. | İsteğe bağlı. Varsayılan değer HAYIR'dır. |
| MultiIdentityCancelDisabled | Boole | Çok kimlikli uygulamalarda koşullu başlatma kullanıcı arabirimi ekranlarındaki Intune iptal düğmesini devre dışı bırakır. Bu seçenek EVET olarak ayarlanmamışsa, uygulamanın hata kodunu işlemesi IntuneMAMSwitchIdentityResultCanceled gerekir. Bkz. Kimlikleri değiştirme. |
İsteğe bağlı. Varsayılan değer HAYIR'dır. |
| SafariViewControllerBlockedOverride | Boole | SFSafariViewController, SFAuthSession veya ASWebAuthSession aracılığıyla MSAL kimlik doğrulamasını etkinleştirmek için Intune SafariViewController kancalarını devre dışı bırakır. Bilginize: Yapılandırılmış bir etkinlik düğmesi, yalnızca görünüm yönetilmiyorsa ve bu EVET olarak ayarlandığında görünür. |
İsteğe bağlı. Varsayılan değer HAYIR'dır. Uyarı: Yanlış kullanılırsa veri sızıntısına neden olabilir. |
| SplashIconFile SplashIconFile ~ ipad |
Dize | TIntuneIntune splash (başlangıç) simge dosyasını belirtir. | İsteğe bağlı. |
| Sıçrama Süresi | Sayı | Intune başlangıç ekranının gösterildiği saniye cinsinden en kısa süre. Varsayılan değer 1,5'tir. | İsteğe bağlı. |
| Arka Plan Rengi | Dize | TIntuneIntune SDK kullanıcı arabirimi bileşenleri için arka plan rengini belirtir. Pound işareti olmayan bir onaltılık değeri kabul eder #XXXXXX . |
İsteğe bağlı. Varsayılan olarak sistem arka plan rengi kullanılır. |
| ForegroundColor | Dize | Kullanıcı arabirimi bileşenleri için ön plan/metin rengini belirtir. Pound işareti olmadan kabul eder veya onaltılık yapar #XXXXXX . |
İsteğe bağlı. Varsayılan olarak sistem etiketi rengi kullanılır. |
| Vurgu Rengi | Dize | Kullanıcı arabirimi bileşenleri (düğmeler, PIN kutusu vurgusu) için tema rengini belirler. Pound işareti olmadan kabul eder veya onaltılık yapar #XXXXXX . |
İsteğe bağlı. Varsayılan olarak sistem mavidir. |
| İkincilArkaPlanRengi | Dize | MTD ekranları için ikincil arka plan rengini belirtir. Pound işareti olmadan kabul eder veya onaltılık yapar #XXXXXX . |
İsteğe bağlı. Varsayılan ayar beyazdır. |
| SecondaryForegroundColor | Dize | MTD ekranlar için ikincil ön plan rengini belirtir. Pound işareti olmadan kabul eder veya onaltılık yapar #XXXXXX . |
İsteğe bağlı. Varsayılan olarak gri değerdir. |
| DarkMode'u destekler | Boole | Açık renkler ayarlanmadığında kullanıcı arabirimi renklerinin sistem Koyu Modu'nu takip edip etmeyeceğini belirtir. | İsteğe bağlı. Varsayılan değer EVET'tir. |
| MAMTelemetryDisabled | Boole | Telemetrinin arka uca gönderilip gönderilmeyeceğini belirtir. | İsteğe bağlı. Varsayılan değer HAYIR'dır. |
| MAMTelemetryUsePPE | Boole | PPE arka ucuna telemetri gönderir. Verilerin müşteri verileriyle karışmaması için uygulamaları test etmek için kullanışlıdır. | İsteğe bağlı. Varsayılan değer HAYIR'dır. |
| MaxFileProtectionLevel | Dize | Uygulamanın desteklediği en yüksek değeri NSFileProtectionType belirtir. Hizmet daha yüksek bir düzey gönderirse ilkeyi geçersiz kılar.Olası değerler: NSFileProtectionComplete, NSFileProtectionCompleteUnlessOpen, NSFileProtectionCompleteUntilFirstUserAuthentication, . NSFileProtectionNoneUyarı: ile NSFileProtectionComplete, uygulama, cihaz kilitlendikten ~10 saniye sonra korumalı dosyalara erişimini kaybeder ve bu da yerel veritabanları gibi bileşenlerin bozulmasına neden olabilir. Kilit ekranı kullanıcı arabirimine NSFileProtectionCompleteUntilFirstUserAuthenticationsahip uygulamalar . |
İsteğe bağlı. Varsayılan olarak NSFileProtectionComplete. |
| OpenInActionExtension | Boole | Open in Action uzantıları için EVET olarak ayarlayın. Bkz. UIActivityViewController aracılığıyla veri paylaşma. | İsteğe bağlı. |
| TreatAllWebViewsAsUnmanaged | Boole | Tüm Web View'larını kesme/kopyalama/yapıştırma zorlaması için yönetilmemiş olarak kabul eder. Bkz. Web içeriğini görüntüleme. | İsteğe bağlı. Varsayılan değer HAYIR'dır. |
| WebViewHandledURLSchemes | Dize dizisi | Uygulamanın Web Görünümü tarafından işlenen URL şemaları. | WebView'ınız bağlantıları veya JavaScript gezintisini işliyorsa, gereklidir. |
| DocumentBrowserFileCachePath | Dize | Kullanılıyorsa UIDocumentBrowserViewController, şifresi çözülen yönetilen dosyalar için bir yol (uygulama giriş dizinine göre) ayarlayın. |
İsteğe bağlı. Varsayılan olarak /Documents/. |
| VerboseLoggingEnabled | Boole | Ayrıntılı günlüğü etkinleştirir. | İsteğe bağlı. Varsayılan değer HAYIR'dır. |
| FinishLaunchingAtStartup | Boole | Kullanırken [BGTaskScheduler registerForTaskWithIdentifier:]gereklidir; EVET olmalıdır. |
İsteğe bağlı. Varsayılan değer HAYIR'dır. |
| ValuesToScrubFromLogging | Dize dizisi | Günlüklerden kaldırılması gereken Uygulama Yapılandırması değerleri. Ayrıca açık IntuneMAMSettingsüzerinden valuesToScrubFromLogging de ayarlanabilir. |
İsteğe bağlı. |
Uygulama koruma ilkesi alın
Genel bakış
TIntuneIntune uygulama koruma ilkesini almak için, uygulamaların IntuneIntune MAM hizmetiyle bir kayıt isteği başlatması gerekir. Uygulamalar, Intune yönetim merkezinde cihaz kaydıyla veya cihaz kaydı olmadan uygulama koruma ilkesi alacak şekilde yapılandırılabilir. Mobil Uygulama Yönetimi (MAM), cihazın Intune mobil cihaz yönetimine (MDM) kaydedilmesine gerek kalmadan uygulamaların Intune tarafından yönetilmesini sağlar. Her iki durumda da, ilke almak için IntuneIntune MAM hizmetine kaydolmak gerekir.
Önemli
iOS için Intune App SDK'sı, şifreleme uygulama koruma ilkeleri tarafından etkinleştirildiğinde 256 bit şifreleme anahtarları kullanır. Korumalı veri paylaşımına izin vermek için tüm uygulamaların güncel bir SDK sürümüne sahip olması gerekir.
Zaten ADAL veya MSAL kullanan uygulamalar
Not
Azure AD Kimlik Doğrulama Kitaplığı (ADAL) ve Azure AD Graph API kullanım dışıdır. Daha fazla bilgi için bkz. Microsoft Authentication Library (MSAL) ve Microsoft Graph APIGraph API kullanmak için uygulamalarınızı güncelleştirme.
Kullanıcının kimliği başarıyla doğrulandıktan sonra zaten MSAL kullanan uygulamaların örnekteki IntuneMAMEnrollmentManager yöntemi çağırması registerAndEnrollAccountId gerekir:
/*
* This method adds the account to the list of registered accounts.
* An enrollment request starts immediately.
* @param accountId The Entra object ID of the account to be registered with the SDK
*/
(void)registerAndEnrollAccountId:(NSString *_Nonnull)accountId;
Oturum açma işlemi başarılı olduğunda MSAL, MSALResult nesnesindeki sonucu geri gönderir. API'nin accountId parametresi olarak MSALResult içinde tenantProfile.identifier kullanın.
SDK, yöntemi çağırarak registerAndEnrollAccountId kullanıcı hesabını kaydeder ve uygulamayı bu hesap adına kaydetmeye çalışır. Kayıt herhangi bir nedenle başarısız olursa, SDK 24 saat sonra kaydı otomatik olarak yeniden dener. Hata ayıklama amacıyla uygulama, herhangi bir kayıt isteğinin sonuçları hakkında bir temsilci aracılığıyla bildirim alabilir.
Bu API çağrıldıktan sonra uygulama normal şekilde çalışmaya devam edebilir. Kayıt başarılı olursa SDK, kullanıcıya uygulamanın yeniden başlatılması gerektiğini bildirir. Bu anda, kullanıcı uygulamayı hemen yeniden başlatabilir.
[[IntuneMAMEnrollmentManager instance] registerAndEnrollAccountId:@"3ec2c00f-b125-4519-acf0-302ac3761822"];
ADAL veya MSAL kullanmayan uygulamalar
ADAL veya MSAL kullanarak kullanıcıda oturum açmayan uygulamalar, SDK'nın bu kimlik doğrulamasını işlemesi için API'yi çağırarak IntuneIntune MAM hizmetinden uygulama koruma ilkesi almaya devam edebilir. Uygulamalar, kullanıcının kimliğini Microsoft Entra IDMicrosoft Entra ID ile doğrulamadığında, ancak verilerin korunmasına yardımcı olmak için yine de uygulama koruma ilkesini alması gerektiğinde bu tekniği kullanmalıdır. Örnek olarak, uygulamada oturum açmak için başka bir kimlik doğrulama hizmeti kullanılıyor olabilir veya uygulama oturum açmayı hiç desteklemiyorsa. Bunu yapmak için, uygulama örnekteki IntuneMAMEnrollmentManager yöntemi çağırabilirloginAndEnrollAccount:
/**
* Creates an enrollment request, which starts immediately.
* If no token can be retrieved for the identity, the user is prompted
* to enter their credentials, after which enrollment is retried.
* @param identity The UPN of the account to be logged in and enrolled.
*/
(void)loginAndEnrollAccount: (NSString *)identity;
SDK, bu yöntemi çağırarak mevcut bir belirteç bulunamazsa kullanıcıdan kimlik bilgilerini ister. SDK daha sonra sağlanan kullanıcı hesabı adına uygulamayı IntuneIntune MAM hizmetine kaydetmeyi dener. Yöntem, kimlik olarak "nil" ile çağrılabilir. Bu durumda SDK, aygıttaki mevcut yönetilen kullanıcıya (MDM ise) kaydedilir veya kullanılabilir kullanıcı bulunamazsa kullanıcıdan bir kullanıcı adı ister.
Kayıt başarısız olursa, uygulama hatanın ayrıntılarına bağlı olarak bu API'yi gelecekte yeniden çağırmayı düşünmelidir. Uygulama, herhangi bir kayıt isteğinin sonuçları hakkında bir temsilci aracılığıyla bildirim alabilir.
Bu API çağrıldıktan sonra uygulama normal şekilde çalışmaya devam edebilir. Kayıt başarılı olursa SDK, kullanıcıya uygulamanın yeniden başlatılması gerektiğini bildirir.
Uygulama yönetildikten sonra, Microsoft EntraMicrosoft Entra nesne kimliği değerinin enrolledAccountId .IntuneMAMEnrollmentManager Uygulamanın bu kayıtlı hesap için kullandığı tüm MAM SDK API'leri için bunu kullanın.
Örneğin:
[[IntuneMAMEnrollmentManager instance] loginAndEnrollAccount:@"user@foo.com"];
Kimlik doğrulaması ve kaydı başlatma sırasında Intune halletmesine izin verin
Uygulamanızın başlatılması tamamlanmadan önce Intune SDK'sının ADAL/MSAL ile tüm kimlik doğrulamasını ve kaydı işlemesini istiyorsanız ve uygulamanız her zaman uygulama koruma ilkeleri gerektiriyorsa, API kullanmanız loginAndEnrollAccount gerekmez. Uygulamanın Info.plist dosyasındaki IntuneMAMSettings sözlüğünde aşağıdaki ayarları EVET olarak ayarlayabilirsiniz.
| Ayar | Tür | Tanım |
|---|---|---|
| AutoEnrollOnLaunch | Boole | Var olan bir yönetilen kimlik algılanırsa ve henüz bunu yapmadıysa uygulamanın başlatma sırasında otomatik olarak kaydolmaya çalışıp çalışmayacağını belirtir. Varsayılan değer HAYIR'dır. Bilginize: Yönetilen kimlik bulunamazsa veya ADAL/MSAL önbelleğinde kimlik için geçerli bir belirteç yoksa, uygulama da EVET olarak ayarlanmadığı MAMPolicyRequired sürece kayıt girişimi kimlik bilgileri istenmeden sessizce başarısız olur. |
| MAMPolicyGerekli | Boole | Uygulamanın bir IntuneIntune uygulama koruma ilkesi yoksa uygulamanın başlatılmasının engellenip engellenmediğini belirtir. Varsayılan değer HAYIR'dır. Bilginize: Uygulamalar EVET olarak ayarlıyken MAMPolicyRequiredApp Store gönderilemez.
EVET olarak ayarlandığındaMAMPolicyRequired, AutoEnrollOnLaunch ayrıca EVET olarak da ayarlanmalıdır. |
Uygulamanız için bu seçeneği belirlerseniz, kaydolduktan sonra uygulamanızı yeniden başlatmanız gerekmez.
Kullanıcı hesaplarının kaydını silme
Kullanıcının uygulamada oturumu kapatılmadan önce uygulamanın kullanıcının SDK'daki kaydını kaldırması gerekir. Bu işlem şunları sağlar:
Kayıt yeniden denemeleri artık kullanıcının hesabı için gerçekleşmez.
Uygulama korumasıUygulama koruması ilkesi kaldırıldı.
Uygulama, seçmeli silme işlemi başlatırsa (isteğe bağlı) şirket verileri silinir.
Kullanıcının oturumu kapatmadan önce, uygulamanın örnekte aşağıdaki yöntemi çağırması IntuneMAMEnrollmentManager gerekir:
/*
* This method removes the provided account from the list of
* registered accounts. Once removed, if the account enrolled
* the application, the account is un-enrolled.
* @note In the case where an un-enroll is required, this method blocks
* until the Intune APP AAD token is acquired, then returns. This method must be called before
* the user is removed from the application (so that required AAD tokens are not purged
* before this method is called).
* @param accountId The object ID of the account to be removed.
* @param doWipe If YES, a selective wipe if the account is un-enrolled
*/
(void)deRegisterAndUnenrollAccountId:(NSString *)accountId withWipe:(BOOL)doWipe;
Kullanıcı hesabının Microsoft EntraMicrosoft Entra belirteçleri silinmeden önce bu yöntemin çağrılması gerekir. SDK, kullanıcı adına Intune MAM hizmetine belirli isteklerde bulunmak için kullanıcı hesabının Microsoft Entra belirteçlerine ihtiyaç duyar.
Uygulama kullanıcının şirket verilerini kendi doWipe kendine silerse bayrak false olarak ayarlanabilir. Aksi takdirde, uygulama SDK'nın seçmeli silme işlemini başlatmasını sağlayabilir. Bu eylem, uygulamanın seçmeli silme temsilcisine yapılan bir çağrıyla sonuçlanır.
Örneğin:
[[IntuneMAMEnrollmentManager instance] deRegisterAndUnenrollAccountId:@"3ec2c00f-b125-4519-acf0-302ac3761822" withWipe:YES];
Durum, sonuç ve hata ayıklama bildirimleri
Uygulama, IntuneIntune MAM hizmetine yapılan aşağıdaki istekler hakkında durum, sonuç ve hata ayıklama bildirimleri alabilir:
- Kayıt istekleri
- İlke güncelleştirme istekleri
- Kayıt silme istekleri
Bildirimler, temsilci yöntemleri aracılığıyla şurada IntuneMAMEnrollmentDelegate.hsunulur:
/**
* Called when an enrollment request operation is completed.
* @param status status object containing debug information
*/
(void)enrollmentRequestWithStatus:(IntuneMAMEnrollmentStatus *)status;
/**
* Called when a MAM policy request operation is completed.
* @param status status object containing debug information
*/
(void)policyRequestWithStatus:(IntuneMAMEnrollmentStatus *)status;
/**
* Called when a un-enroll request operation is completed.
* @Note: when a user is un-enrolled, the user is also de-registered with the SDK
* @param status status object containing debug information
*/
(void)unenrollRequestWithStatus:(IntuneMAMEnrollmentStatus *)status;
Bu temsilci yöntemleri, aşağıdaki bilgilere sahip bir IntuneMAMEnrollmentStatus nesne döndürür:
- İstekle ilişkilendirilmiş hesabın accountId değeri (Nesne Kimliği)
- İstekle ilişkilendirilmiş hesabın kimliği (UPN)
- İsteğin sonucunu gösteren durum kodu
- Durum kodunun açıklamasını içeren bir hata dizesi
- Nesne
NSError. Bu nesne 'deIntuneMAMEnrollmentStatus.htanımlanmıştır ve döndürülebilecek belirli durum kodları vardır.
Örnek kod
Aşağıda, temsilci yöntemlerinin örnek uygulamaları verilmiştir:
- (void)enrollmentRequestWithStatus:(IntuneMAMEnrollmentStatus*)status
{
NSLog(@"enrollment result for identity %@ with status code %ld", status.accountId, (unsigned long)status.statusCode);
NSLog(@"Debug Message: %@", status.errorString);
}
- (void)policyRequestWithStatus:(IntuneMAMEnrollmentStatus*)status
{
NSLog(@"policy check-in result for identity %@ with status code %ld", status.accountId, (unsigned long)status.statusCode);
NSLog(@"Debug Message: %@", status.errorString);
}
- (void)unenrollRequestWithStatus:(IntuneMAMEnrollmentStatus*)status
{
NSLog(@"un-enroll result for identity %@ with status code %ld", status.accountId, (unsigned long)status.statusCode);
NSLog(@"Debug Message: %@", status.errorString);
}
Uygulamanın yeniden başlatılması
Bir uygulama ilk kez MAM ilkelerini aldığında, gerekli kancaları uygulamak için yeniden başlatılması gerekir. SDK, uygulamaya yeniden başlatmanın gerçekleşmesi gerektiğini bildirmek için uygulamasında IntuneMAMPolicyDelegate.hbir temsilci yöntemi sağlar.
- (BOOL) restartApplication
Bu yöntemin dönüş değeri, SDK'ya uygulamanın gerekli yeniden başlatmayı işlemesi gerekip gerekmediğini söyler:
True değeri döndürülürse, uygulamanın yeniden başlatmayı işlemesi gerekir.
false döndürülürse, bu yöntem döndürüldükten sonra SDK uygulamayı yeniden başlatır. SDK hemen, kullanıcıya uygulamayı yeniden başlatmasını söyleyen bir iletişim kutusu gösterir.
Not
.NET MAUI uygulamaları yeniden başlatma gerektirmez.
Çıkış Kriterleri
Yapı eklentisini yapılandırdıktan veya komut satırı aracını derleme işleminizle tümleştirdikten sonra başarıyla çalıştığını doğrulayın:
- Yapınızın başarılı bir şekilde derlendiğinden ve derlendiğinden emin olun.
- Derlenmiş uygulamanızı başlatın, Uygulama Koruma İlkesi ile hedeflenmeyen bir Microsoft EntraMicrosoft Entra kullanıcısıyla oturum açın ve uygulamanın beklendiği gibi çalıştığını onaylayın.
- Oturumu kapatın ve bu testi Uygulama Koruma İlkesi ile hedeflenen bir Microsoft EntraMicrosoft Entra kullanıcısıyla tekrarlayın ve uygulamanın artık IntuneIntune tarafından yönetildiğini ve yeniden başlatıldığını onaylayın.
Tümleştirmenin bu noktasında, uygulamanız artık Uygulama Koruma İlkesi'ni alabilir ve zorunlu tutabilir. Tümleştirmeyi doğrulamak için aşağıdaki testleri yürütün.
İlk Politika Uygulama Testi
Uygulamanızdaki ilke uygulamasının tam son kullanıcı deneyimini öğrenmek için önce aşağıdaki testi yürütün:
- TMicrosoft IntuneMicrosoft Intune yönetim merkezinde bir iOS Uygulama Koruma İlkesi oluşturun. Bu test için ilkeyi yapılandırın:
- Erişim Gereksinimleri altında, varsayılan ayarları bırakın. Özellikle, "Erişim için PIN" "Gerekli" olmalıdır.
- Uygulama Koruma İlkesi'nin uygulamanıza yönelik olduğundan emin olun. İlke oluşturma sihirbazında uygulamanın paket kimliğini el ile eklemeniz gerekebilir.
- Uygulama Koruma İlkesi'ni test hesabınızı içeren bir kullanıcı grubuna atayın.
- Uygulamanızı yükleyin.
- Uygulama Koruma İlkesi ile hedeflenen test hesabınızla uygulamanızda oturum açın.
- Bir IntuneIntune yönetilen ekranı ile yönlendirildiğinizi onaylayın ve istemi onaylayarak uygulamayı yeniden başlatın. Bu ekran, SDK'nın bu hesap için ilkeyi başarıyla aldığını gösterir.
- Uygulama PIN'i ayarlamanız istendiğinde PIN oluşturun.
- Uygulamanızdaki yönetilen hesabın oturumunu kapatır.
- Uygulamanızı gezinin ve mümkünse oturum açmadan uygulamanızın beklendiği gibi çalıştığını doğrulayın.
Bu adım listesi, uygulamanızın hesabı düzgün bir şekilde kaydettiğini, kimlik doğrulama geri çağrısını kaydettiğini ve hesabın kaydını sildiğini doğrulamak için *minimum bir testtir. Diğer Uygulama Koruma İlkesi ayarlarının uygulamanızın davranışını nasıl değiştirdiğini daha kapsamlı bir şekilde doğrulamak için aşağıdaki testleri yürütün.
Sonraki adımlar
Tüm Çıkış Kriterlerini tamamladıktan sonra 4. Aşama: Uygulamaya katılım özellikleri bölümüne geçin.