Aracılığıyla paylaş


3. Aşama: iOS uygulamanıza SDK tümleştirmesi Intune

Not

Bu kılavuz birkaç ayrı aşamaya ayrılmıştır. Tümleştirmeyi Planlama'ya bakarak başlayın.

Aşama Goals

  • Intune Uygulama SDK'sını indirin.
  • Intune Uygulama SDK'sında hangi dosyaların yer aldığı hakkında bilgi edinin.
  • Uygulamanızdaki Intune Uygulama SDK'sı'na başvurun.
  • Intune Uygulama SDK'sının derlemenize düzgün ş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 kapatan hesapların kaydını kaldırın
  • (Önerilen) MAM günlüğünü uygulamanıza dahil edin.

Önkoşullar

  • Xcode 14.0 veya üzeri yüklü bir macOS bilgisayara ihtiyacınız vardır.

  • Uygulamanızın iOS 14.0 veya üzeri için hedeflenmiş olması gerekir.

  • iOS için Intune Uygulama SDK'sı Lisans Koşulları'nı gözden geçirin. Kayıtlarınızın lisans koşullarının bir kopyasını yazdırın ve tutun. iOS için Intune Uygulama SDK'sını indirip kullanarak bu lisans koşullarını kabul etmiş olursunuz. Bunları kabul etmezseniz yazılımı kullanmayın.

  • GitHub'da iOS için Intune Uygulama SDK'sının dosyalarını indirin.

SDK Deposundakiler

  • IntuneMAMSwift.xcframework: Intune Uygulama SDK'sı dinamik çerçevesi. Intune istemci uygulama 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. Aşağıya bakın.

  • IntuneMAMStatic.xcframework: Intune Uygulama SDK'sı statik çerçevesi. Geliştiriciler dinamik çerçeve yerine statik çerçeveyi bağlamayı seçebilir. Statik bir çerçevedeki yürütülebilir kod derleme zamanında doğrudan uygulama/uzantı ikilisine eklendiğinden, statik kitaplığı kullanmanın bazı başlatma zamanı performans avantajları vardır. Ancak, uygulamanız herhangi bir uzantı içeriyorsa, statik çerçevenin uygulamaya ve uzantılara bağlanması, yürütülebilir kod her uygulama/uzantı ikilisine eklendiğinden daha büyük bir uygulama paketi boyutuyla sonuçlanır. Buna karşılık, dinamik çerçeve kullanılırken uygulamalar ve uzantılar aynı Intune SDK ikili dosyasını paylaşabilir ve bu da daha küçük bir uygulama boyutuna neden olur.

  • IntuneMAMSwiftStub.xcframework: Intune Uygulama SDK'sı Swift Saptama çerçevesi. 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: Uygulamanın veya uzantının Info.plist dosyasını Intune 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: Intune Uygulama SDK'sı statik kitaplığı. Intune MAM iOS SDK'sının bu değişkeni kullanım dışıdı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 önerilir.

  • IntuneMAMResources.bundle: SDK'nın bağlı olduğu 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 kaldırılacaktır.

Intune Uygulama SDK'sı nasıl çalışır?

iOS için Intune Uygulama SDK'sının amacı, en az kod değişikliğiyle iOS uygulamalarına yönetim özellikleri eklemektir. Kod ne kadar az olursa, mobil uygulamanızın tutarlılığını ve kararlılığını etkilemeden pazara daha az zaman alır.

İşlem akışı

Aşağıdaki diyagramda iOS için Intune Uygulama SDK'sı işlem akışı sağlanır:

Microsoft Intune için üst düzey mimari diyagram.

SDK'yi mobil uygulamanızda oluşturma

Önemli

Intune, Intune Uygulama SDK'sına yönelik güncelleştirmeleri düzenli olarak yayımlar. 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.

Intune Uygulama SDK'sını etkinleştirmek için şu adımları izleyin:

  1. IntuneMAMSwift.xcframework Hedefinize veya IntuneMAMStatic.xcframework bağlantı: xcframework paketini proje hedefinin Çerçeveler, Kitaplıklar ve Eklenmiş İçerik listesine sürükleyin. için IntuneMAMSwiftStub.xcframeworkbu adımları yineleyin. Ana uygulamanız için eklenen her iki xcframeworks için de "Ekle" sütunundaki "Ekleme & İşareti" öğesini seçin. Uzantılar için "Ekleme" seçeneğini belirleyin.

    Intune Uygulama SDK'sı iOS Çerçevesi: Xcode Çerçeveleri, Kitaplıklar ve Katıştırılmış İçerik örneği

  2. 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
  3. Her proje hedefinde Özellikler'i seçip Anahtar Zinciri Paylaşımı anahtarını etkinleştirerek anahtar zinciri paylaşımını etkinleştirin (henüz etkinleştirilmemişse). Bir sonraki adıma geçebilmek 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 denetlemek için bir metin düzenleyicisinde .mobileprovision dosyasını açabilir, keychain-access-groups araması yapabilir ve joker karaktere sahip olduğunuzdan emin olabilirsiniz. Örneğin:

    <key>keychain-access-groups</key>
    <array>
    <string>YOURBUNDLESEEDID.*</string>
    </array>
    
  4. Anahtarlık paylaşımını etkinleştirdikten sonra, Intune Uygulama SDK'sının verilerini depoladığı ayrı bir erişim grubu oluşturma adımlarını izleyin. Kullanıcı arabirimini veya yetkilendirmeler 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ğinize emin olun:

    1. Mobil uygulamanızda tanımlı anahtarlık erişim grubu yoksa, uygulamanın paket kimliğini ilk grup olarak ekleyin.

    2. Paylaşılan anahtarlık grubunu com.microsoft.intune.mam mevcut erişim gruplarınıza ekleyin. Intune Uygulama SDK'sı, verileri depolamak için bu erişim grubunu kullanır.

    3. Mevcut erişim gruplarınıza ekleyin com.microsoft.adalcache .

      Intune Uygulama SDK'sı iOS: anahtarlık paylaşımı

    4. Anahtarlık erişim gruplarını oluşturmak için yukarıda gösterilen Xcode kullanıcı arabirimini kullanmak yerine yetkilendirmeler dosyasını doğrudan düzenliyorsanız anahtarlık erişim gruplarının $(AppIdentifierPrefix) başına ekleyin (Xcode bunu otomatik olarak işler). Örneğin:

      • $(AppIdentifierPrefix)com.microsoft.intune.mam
      • $(AppIdentifierPrefix)com.microsoft.adalcache

      Not

      Yetkilendirmeler dosyası, mobil uygulamanıza özgü bir XML dosyasıdır. iOS uygulamanızda özel izinler ve özellikler belirtmek için kullanılır. Uygulamanızın daha önce bir yetkilendirme dosyası yoksa, anahtarlık paylaşımının etkinleştirilmesi (3. adım) Xcode'un uygulamanız için bir tane oluşturmasına neden olmuş olmalıdır. Uygulamanın paket kimliğinin listedeki ilk giriş olduğundan emin olun.

  5. Uygulamanızın geçiş UIApplication canOpenURL yaptığı her protokolü uygulamanızın LSApplicationQueriesSchemes Info.plist dosyasının dizisine ekleyin. Bu dizide listelenen her protokol için, ile -intunemam eklenen protokolün bir kopyasının da diziye eklenmesi gerekir. Ayrıca, , http-intunemamhttps-intunemam, , microsoft-edge-http-intunemam, microsoft-edge-https-intunemam, smart-ns, zips, , lacoonsecurity, wandera, lookoutwork-ase, skycure, smsecmvisionmobilebetteractiveshieldscmx, ve intunemam-mtd diziye eklenmelidir. Uygulamanız mailto: protokolunu kullanıyorsa, ms-outlook-intunemam diziye de eklenmelidir. Sonraki adıma geçmeden önce değişikliklerinizi kaydettiğinizden emin olun.

    Uygulamanın LSApplicationQueriesSchemes listesinde alanı tükenirse, mam SDK'Intune sını da uyguladığı bilinen uygulamalar için "-intunemam" düzenlerini kaldırabilir. Uygulama LSApplicationQueriesSchemes listesinden "scheme-intunemam" öğesini kaldırdığında, canOpenURL() bu düzenler için yanlış yanıtlar döndürebilir. Bu sorunu çözmek için uygulamanın bunun yerine bu şemayı çağırması [IntuneMAMPolicy isURLAllowed:url isKnownManagedAppScheme:YES] gerekir. İlke URL'nin açılmasını engelliyorsa bu çağrı döndürülüyor NO . True döndürürse, uygulama url'nin açılıp açılamadığı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];
        }];
    }
    
  6. Uygulamanız 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ı amaçladığından haberdar edebilmesi için bu adım gereklidir. Intune uygulama koruma ilkesi ayarı, FACEID'nin BT yöneticisi tarafından yapılandırıldığında uygulama erişimi için bir yöntem olarak kullanılmasını sağlar.

  7. Uygulamanızın Info.plist dosyasını yapılandırmayı tamamlamak için SDK deposundaki IntuneMAMConfigurator aracını kullanın. Aracın üç parametresi vardır:

    Özellik Nasıl kullanılır?
    <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 dosyasında veya yetkilendirmelerinde değişiklik yapıldığında yeniden çalıştırılmalıdır. Info.plist yapılandırma gereksinimlerinin en son sürümde değişmesi durumunda Intune SDK'yı güncelleştirirken aracın en son sürümünü indirip çalıştırmanız gerekir.

Xcode Derleme Ayarları

Uygulama hem "Swift Sembollerini Şeritle"(STRIP_SWIFT_SYMBOLS) hem de "Bitcode'ı Etkinleştir"(ENABLE_BITCODE) seçeneğinin HAYIR olarak ayarlanmış olması gerekir.

Çoğaltılmamış Dosya Sağlayıcısı uzantısını tümleştirme

Uygulamanız NSFileProviderExtension protokolü uyguluyorsa Çoğaltılmamış Dosya Sağlayıcısı kullanıyordur. iOS 16.0'ın öncesinde oluşturulan tüm dosya sağlayıcıları çoğaltılamaz.

in - startProvidingItemAtURL:completionHandler: [[IntuneMAMPolicy instance]shouldFileProviderEncryptFiles]] kullanarak dosyaları şifrelemeniz gerekip gerekmediğini denetleyin. Gerçek dosya şifrelemesi için IntuneMAMFileProtectionManager'da encryptFile:forAccountId: API kullanın. Ayrıca, şifreleme gerektiğinde dosyanın şifrelenmiş bir kopyasını bulut depolama alanınızda depolamak istemediğiniz için dosyanın bir kopyasını paylaşın.

in - importDocumentAtURL:toParentItemIdentifier:completionHandler: dosyanın isFileEncrytped: IntuneMAMFileProtectionManager'da API kullanılarak şifrelenip şifrelenmediğini denetleyin. Daha sonra decryptFile:toCopyPath: IntuneMAMFileProtectionManager API'sini kullanarak şifresini çözer. Çok kimlikli uygulamalarda, hedef sahibinin IntuneMAMPolicy'sindeki canReceiveSharedFile: API'sini denetleerek sahibin dosyayı alıp alamayacağına bakın.

Çoğaltılmış Dosya Sağlayıcısı uzantısını tümleştirme

Uygulamanız NSFileProviderReplicatedExtension protokolü (iOS 16.0'da eklendi) uyguluyorsa Çoğaltılmış Dosya Sağlayıcısı kullanıyordur.

in - fetchContentsForItemWithIdentifier:version:request:completionHandler: [[IntuneMAMPolicy instance]shouldFileProviderEncryptFiles]] kullanarak dosyaları şifrelemeniz gerekip gerekmediğini denetleyin. Gerçek dosya şifrelemesi için IntuneMAMFileProtectionManager'da encryptFile:forAccountId: API kullanın. Ayrıca, şifreleme gerektiğinde dosyanın şifrelenmiş bir kopyasını bulut depolama alanınızda depolamak istemediğiniz için dosyanın bir kopyasını paylaşın.

in - createItemBasedOnTemplate:fields:contents:options:request:completionHandler: dosyanın isFileEncrypted: IntuneMAMFileProtectionManager'da API kullanılarak şifrelenip şifrelenmediğini denetleyin. Daha sonra decryptFile:toCopyPath: IntuneMAMFileProtectionManager API'sini kullanarak şifresini çözer. Çok kimlikli uygulamalarda, hedef sahibinin IntuneMAMPolicy'sindeki canReceiveSharedFile: API'sini denetleerek sahibin dosyayı alıp alamayacağına bakın.

Çoğaltılan 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ızda nerede oluşturulduğuna ve kalıcı olduğuna bağlı olarak, bunu NSFileProviderReplicatedExtension protokol yöntemlerinin her birinde yapmanız gerekebilir.

Intune Uygulama SDK'sı ayarlarını yapılandırma

Intune 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, oluşturmanız gerekir.

IntuneMAMSettings sözlüğü altında, Intune Uygulama SDK'sını yapılandırmak için aşağıdaki desteklenen ayarları tanımlayabilirsiniz.

Bu ayarlardan bazıları önceki bölümlerde ele alınmış olabilir ve bazıları tüm uygulamalar için geçerli değildir.

Ayar Tür Tanım Gerekli?
ADALClientId Dize Uygulamanın Microsoft Entra istemci tanımlayıcısı. Tüm uygulamalar için gereklidir.
ADALAuthority Dize Uygulamanın kullanımdaki Microsoft Entra yetkilisi. 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 Entra kiracıda kullanılmak üzere oluşturulmuş özel bir iş kolu uygulamasıysa gereklidir. Bu değer yoksa, ortak Microsoft Entra yetkilisi kullanılır (yalnızca çok kiracılı uygulamalar için desteklenir).
ADALRedirectUri Dize Uygulamanın Microsoft Entra yeniden yönlendirme URI'si. Tüm uygulamalar için ADALRedirectUri veya ADALRedirectScheme gereklidir.
ADALRedirectScheme Dize Uygulamanın Microsoft Entra ID yeniden yönlendirme şeması. Bu, uygulamanın yeniden yönlendirme URI'sinin biçiminde scheme://bundle_idolması durumunda ADALRedirectUri 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önlendirmeyeceğini belirtir. Varsayılan değer HAYıR'dır. Uygulama kendi MSAL günlük geri aramasını ayarlayacaksa EVET olarak ayarlayın. Isteğe bağlı.
ADALCacheKeychainGroupOverride Dize "com.microsoft.adalcache" yerine MSAL önbelleği için kullanılacak anahtar zinciri grubunu belirtir. Bunun app-id ön ekinin olmadığını unutmayın. Bu, çalışma zamanında sağlanan dizeye ön ek olarak eklenir. Isteğe bağlı.
AppGroupIdentifiers Dize dizisi Uygulamanın yetkilendirmeleri com.apple.security.application-groups bölümünden uygulama grupları dizisi. Uygulama uygulama grupları kullanıyorsa gereklidir.
ContainingAppBundleId Dize Uzantıyı içeren uygulamanın paket kimliğini belirtir. iOS uzantıları için gereklidir.
AutoEnrollOnLaunch Boole Mevcut bir yönetilen kimlik algılanırsa ve henüz yapmadıysa, uygulamanın başlatma sırasında otomatik olarak kaydolmaya çalışıp çalışmayacağını belirtir. Varsayılan değer HAYıR'dır.

Notlar: MSAL önbelleğinde yönetilen kimlik bulunamazsa veya kimlik için geçerli bir belirteç yoksa, uygulama MAMPolicyRequired değerini EVET olarak ayarlamadığı sürece kayıt girişimi kimlik bilgileri istemeden sessizce başarısız olur.
Isteğe bağlı. Varsayılan değer hayır'dır.
MAMPolicyRequired Boole Uygulamanın Intune uygulama koruma ilkesi yoksa uygulamanın başlatılmasının engellenip engellenmeyeceğini belirtir. Varsayılan değer HAYıR'dır.

Notlar: MAMPolicyRequired ayarı EVET olarak ayarlanmış App Store uygulamalar gönderilemez. MAMPolicyRequired ayarı EVET olarak ayarlanırken AutoEnrollOnLaunch da EVET olarak ayarlanmalıdır.
Isteğe bağlı. Varsayılan değer hayır'dır.
MAMPolicyWarnAbsent Boole Uygulamanın uygulama koruma ilkesi Intune başlatma sırasında kullanıcıyı uyarıp uyarmayacağını belirtir.

Not: Uyarı kapatıldıktan sonra kullanıcıların ilke olmadan uygulamayı kullanmasına izin verilir.
Isteğe bağlı. Varsayılan değer hayır'dır.
MultiIdentity Boole Uygulamanın çok kimlikli olup olmadığını belirtir. Isteğe bağlı. Varsayılan değer hayır'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.

Not: SFSafariViewControllerConfiguration etkinlik düğmesi özelliği, Intune yönetilen Safari Görünüm Denetleyicisi tarafından desteklenmez. Yapılandırılmış bir etkinlik düğmesi safariViewController'da yalnızca görünüm yönetilmeyense ve SafariViewControllerBlockedOverride evet olarak ayarlandıysa görünür.
Isteğe bağlı. Varsayılan değer hayır'dır. UYARI: Yanlış kullanıldığında veri sızıntısına neden olabilir. Yalnızca kesinlikle gerekliyse etkinleştirin. Daha fazla bilgi için bkz. Uygulama tarafından başlatılan kimlik doğrulaması için MSAL kullanırken dikkat edilmesi gereken özel noktalar.
SplashIconFile
SplashIconFile~ipad
Dize Intune giriş (başlangıç) simgesi dosyasını belirtir. Isteğe bağlı.
SplashDuration Sayı Uygulama başlatıldığında Intune başlangıç ekranının gösterilmesi için saniye cinsinden minimum süre. Varsayılan değer 1,5'tir. Isteğe bağlı.
Backgroundcolor Dize Intune SDK'sının kullanıcı arabirimi bileşenlerinin arka plan rengini belirtir. X'in 0-9 veya A-F arasında değişebileceği #XXXXXX biçiminde onaltılık bir RGB dizesini kabul eder. Pound işareti atlanabilir. Isteğe bağlı. Varsayılan olarak, iOS sürümleri arasında ve iOS Koyu Mod ayarına göre farklılık gösterebilen sistem arka plan rengi kullanılır.
ForegroundColor Dize metin rengi gibi Intune SDK'sının kullanıcı arabirimi bileşenlerinin ön plan rengini belirtir. X'in 0-9 veya A-F arasında değişebileceği #XXXXXX biçiminde onaltılık bir RGB dizesini kabul eder. Pound işareti atlanabilir. Isteğe bağlı. Varsayılan olarak, iOS sürümleri arasında ve iOS Koyu Mod ayarına göre farklılık gösterebilen sistem etiketi rengi kullanılır.
AccentColor Dize düğme metin rengi ve PIN kutusu vurgu rengi gibi Intune SDK'sının kullanıcı arabirimi bileşenlerinin vurgu rengini belirtir. X'in 0-9 veya A-F arasında değişebileceği #XXXXXX biçiminde onaltılık bir RGB dizesini kabul eder. Pound işareti atlanabilir. Isteğe bağlı. Varsayılan olarak sistem mavisi olur.
SecondaryBackgroundColor Dize MTD ekranları için ikincil arka plan rengini belirtir. X'in 0-9 veya A-F arasında değişebileceği #XXXXXX biçiminde onaltılık bir RGB dizesini kabul eder. Pound işareti atlanabilir. Isteğe bağlı. Varsayılan olarak beyazdır.
SecondaryForegroundColor Dize MTD ekranları için dipnot rengi gibi ikincil ön plan rengini belirtir. X'in 0-9 veya A-F arasında değişebileceği #XXXXXX biçiminde onaltılık bir RGB dizesini kabul eder. Pound işareti atlanabilir. Isteğe bağlı. Varsayılan olarak gridir.
SupportsDarkMode Boole BackgroundColor/ForegroundColor/AccentColor için açık bir değer ayarlanmamışsa, Intune SDK'sının kullanıcı arabirimi renk düzeninin sistem koyu modu ayarını gözlemleyip gözlemlemeyeceğini belirtir Isteğe bağlı. Varsayılan değer evet'tir.
MAMTelemetryDisabled Boole SDK'nın arka ucuna herhangi bir telemetri verisi göndermeyeceğini belirtir. Isteğe bağlı. Varsayılan değer hayır'dır.
MAMTelemetryUsePPE Boole MAM SDK'nın PPE telemetri arka ucuna veri gönderip göndereceğini belirtir. Telemetri verilerinin müşteri verileriyle karışmaması için uygulamalarınızı Intune ilkesiyle test ederken bunu kullanın. Isteğe bağlı. Varsayılan değer hayır'dır.
MaxFileProtectionLevel Dize Uygulamanın destekleyebileceğiniz maksimum değeri NSFileProtectionType belirtmesine izin verir. Düzey uygulamanın destekleyenenden yüksekse bu değer hizmet tarafından gönderilen ilkeyi geçersiz kılar. Olası değerler: NSFileProtectionComplete, NSFileProtectionCompleteUnlessOpen, NSFileProtectionCompleteUntilFirstUserAuthentication, NSFileProtectionNone. Dikkat: En yüksek dosya koruma düzeyiyle (NSFileProtectionComplete ) korumalı dosyalara yalnızca cihazın kilidi açıkken erişilebilir. Cihaz kilitlendikten 10 saniye sonra uygulama korumalı dosyalara erişimi kaybeder. Bazı durumlarda, bu durum iç bileşenlere (MySQL veritabanları gibi) erişim kaybına neden olabilir ve beklenmeyen davranışlara yol açabilir. Kilit ekranı kullanıcı arabirimi öğeleri sunan uygulamaların bu değeri olarak ayarlaması NSFileProtectionCompleteUntilFirstUserAuthenticationönerilir. Isteğe bağlı. varsayılan olarak ayarlanır NSFileProtectionComplete.
OpenInActionExtension Boole Eylemde Aç uzantıları için EVET olarak ayarlayın. Daha fazla bilgi için UIActivityViewController aracılığıyla Veri Paylaşma bölümüne bakın.
WebViewHandledURLSchemes Dize dizisi Uygulamanızın WebView'unun işlediği URL düzenlerini belirtir. Uygulamanız url'leri bağlantılar ve/veya JavaScript aracılığıyla işleyen bir WebView kullanıyorsa gereklidir.
DocumentBrowserFileCachePath Dize Uygulamanız çeşitli dosya sağlayıcılarındaki dosyalara göz atmak için öğesini UIDocumentBrowserViewController kullanıyorsa, Intune SDK'sının şifresi çözülmüş yönetilen dosyaları bu klasöre bırakabilmesi için bu yolu uygulama korumalı alandaki giriş dizinine göre ayarlayabilirsiniz. Isteğe bağlı. Varsayılan olarak dizinini /Documents/ kullanır.
VerboseLoggingEnabled Boole EVET olarak ayarlanırsa Intune ayrıntılı modda oturum açar. Isteğe bağlı. Varsayılan değer HAYIR'dır
FinishLaunchingAtStartup Boole Uygulama kullanıyorsa [BGTaskScheduler registerForTaskWithIdentifier:] bu ayar EVET olarak ayarlanmalıdır. Isteğe bağlı. Varsayılan değer HAYIR'dır
ValuesToScrubFromLogging Dize dizisi Günlüklerden temizlenmesi gereken Uygulama Yapılandırması değerlerini belirtir. Alternatif olarak, IntuneMAMSettings sınıfındaki valuesToScrubFromLogging özelliğine aynı davranış için bir dize dizisi verilebilir. Isteğe bağlı.

Uygulama koruma ilkesini alma

Genel Bakış

Intune uygulama koruma ilkesi almak için uygulamaların Intune MAM hizmetiyle bir kayıt isteği başlatması gerekir. Uygulamalar, cihaz kaydıyla veya cihaz kaydı olmadan uygulama koruma ilkesini almak için Intune yönetim merkezinde yapılandırılabilir. Mobil Uygulama Yönetimi (MAM), uygulamaların Intune mobil cihaz yönetimine (MDM) kaydedilmesine gerek kalmadan Intune tarafından yönetilmesine olanak tanır. her iki durumda da ilkeyi almak için Intune MAM hizmetine kaydolmak gerekir.

Önemli

iOS için Intune Uygulama SDK'sı, şifreleme Uygulama Koruma İlkeleri tarafından etkinleştirildiğinde 256 bit şifreleme anahtarlarını kullanır. Korumalı veri paylaşımına izin vermek için tüm uygulamaların geçerli bir SDK sürümüne sahip olması gerekir.

ADAL veya MSAL kullanan uygulamalar

Not

Azure AD Kimlik Doğrulama Kitaplığı (ADAL) ve Azure AD Graph API kullanım dışı bırakılacaktır. Daha fazla bilgi için bkz. Uygulamalarınızı Microsoft Kimlik Doğrulama Kitaplığı (MSAL) ve Microsoft Graph API kullanacak şekilde güncelleştirme.

MSAL kullanan uygulamalar, kullanıcının kimliği başarıyla doğrulandıktan sonra örnekte yöntemini IntuneMAMEnrollmentManager çağırmalıdırregisterAndEnrollAccountId:

/*
 *  This method will add the account to the list of registered accounts.
 *  An enrollment request will immediately be started.
 *  @param accountId The Entra object ID of the account to be registered with the SDK
 */

(void)registerAndEnrollAccountId:(NSString *_Nonnull)accountId;

Başarılı oturum açmada MSAL, sonucu MSALResult nesnesine geri gönderir. Yukarıdaki API için accountId parametresi olarak MSALResult içinde tenantProfile.identifier kullanın.

yöntemini çağırarak registerAndEnrollAccountId SDK, kullanıcı hesabını kaydeder ve uygulamayı bu hesap adına kaydetmeyi dener. 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 sırada 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şlemesini sağlamak için API'yi çağırarak Intune MAM hizmetinden uygulama koruma ilkesi almaya devam edebilir. Uygulamalar, Microsoft Entra ID olan bir kullanıcının kimliğini doğrulamamış olsalar da verilerin korunmasına yardımcı olmak için uygulama koruma ilkesini almaları gerektiğinde bu tekniği kullanmalıdır. Uygulama oturum açma için başka bir kimlik doğrulama hizmeti kullanılıyorsa veya uygulamanın oturum açmayı hiç desteklemediği bir örnektir. Bunu yapmak için uygulama örnekte yöntemini IntuneMAMEnrollmentManager çağırabilirloginAndEnrollAccount:

/**
 *  Creates an enrollment request which is started immediately.
 *  If no token can be retrieved for the identity, the user will be prompted
 *  to enter their credentials, after which enrollment will be retried.
 *  @param identity The UPN of the account to be logged in and enrolled.
 */
 (void)loginAndEnrollAccount: (NSString *)identity;

Bu yöntemi çağırarak SDK, mevcut belirteç bulunamazsa kullanıcıdan kimlik bilgilerini ister. Ardından SDK, sağlanan kullanıcı hesabı adına uygulamayı Intune MAM hizmetine kaydetmeyi dener. yöntemi kimlik olarak "nil" ile çağrılabilir. Bu durumda SDK, cihazdaki mevcut yönetilen kullanıcıyla (MDM söz konusu olduğunda) kaydedilir veya mevcut 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 gelecekte bu API'yi 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, Entra nesne kimliği değerinin IntuneMAMEnrollmentManageriçinde kullanılarak enrolledAccountId sorgulanması gerekir. Bunu, uygulamanın bu kayıtlı hesap için kullandığı tüm MAM SDK API'leri için kullanın.

Örneğin:

[[IntuneMAMEnrollmentManager instance] loginAndEnrollAccount:@"user@foo.com"];

Intune başlatma sırasında kimlik doğrulaması ve kaydı işlemesine izin ver

uygulamanız başlatılmadan ö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 APP ilkesi gerektiriyorsa API kullanmanız loginAndEnrollAccount gerekmez. Uygulamanın Info.plist dosyasındaki IntuneMAMSettings sözlüğünde aşağıdaki iki ayarı EVET olarak ayarlayabilirsiniz.

Ayar Tür Tanım
AutoEnrollOnLaunch Boole Mevcut bir yönetilen kimlik algılanırsa ve henüz yapmadıysa, uygulamanın başlatma sırasında otomatik olarak kaydolmaya çalışıp çalışmayacağını belirtir. Varsayılan değer HAYıR'dır.

Not: ADAL/MSAL önbelleğinde yönetilen kimlik bulunamazsa veya kimlik için geçerli bir belirteç yoksa, uygulama MAMPolicyRequired değerini EVET olarak ayarlamadığı sürece kayıt girişimi kimlik bilgileri istemeden sessizce başarısız olur.
MAMPolicyRequired Boole Uygulamanın Intune uygulama koruma ilkesi yoksa uygulamanın başlatılmasının engellenip engellenmeyeceğini belirtir. Varsayılan değer HAYıR'dır.

Not: UYGULAMALAR MAMPolicyRequired ayarı EVET olarak ayarlanmış App Store gönderilemez. MAMPolicyRequired ayarı EVET olarak ayarlanırken AutoEnrollOnLaunch da EVET olarak ayarlanmalıdır.

Uygulamanız için bu seçeneği belirlerseniz, kaydolduktan sonra uygulamanızı yeniden başlatmayı işlemeniz gerekmez.

Kullanıcı hesaplarının kaydını kaldırma

Bir kullanıcı bir uygulamanın oturumunu kapatmadan önce, uygulamanın kullanıcının SDK kaydını kaldırması gerekir. Bu, aşağıdakilerin sağlanmasını sağlar:

  1. Kayıt yeniden denemeleri artık kullanıcının hesabı için gerçekleşmez.

  2. Uygulama koruması ilkesi kaldırılır.

  3. Uygulama seçmeli silme başlatırsa tüm kurumsal veriler silinir (isteğe bağlı).

Kullanıcı oturumu kapatmadan önce uygulamanın örnekte aşağıdaki yöntemi çağırması IntuneMAMEnrollmentManager gerekir:

/*
 *  This method will remove the provided account from the list of
 *  registered accounts.  Once removed, if the account has enrolled
 *  the application, the account will be un-enrolled.
 *  @note In the case where an un-enroll is required, this method will block
 *  until the Intune APP AAD token is acquired, then return.  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 Entra belirteçleri silinmeden önce bu yöntem çağrılmalıdır. 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 kendine silerse, doWipe bayrak false olarak ayarlanabilir. Aksi takdirde, uygulama SDK'nın seçmeli silme başlatmasını sağlayabilir. Bu, uygulamanın seçmeli silme temsilcisine yapılan bir çağrıya neden olur.

Örneğin:

[[IntuneMAMEnrollmentManager instance] deRegisterAndUnenrollAccountId:@"3ec2c00f-b125-4519-acf0-302ac3761822" withWipe:YES];

Durum, sonuç ve hata ayıklama bildirimleri

Uygulama, Intune MAM hizmetine yönelik aşağıdaki istekler hakkında durum, sonuç ve hata ayıklama bildirimleri alabilir:

  • Kayıt istekleri
  • İlke güncelleştirme istekleri
  • Kayıt kaldırma istekleri

Bildirimler, içinde IntuneMAMEnrollmentDelegate.htemsilci yöntemleri aracılığıyla sunulur:

/**
 *  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 (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
  • Bir NSError nesne. Bu nesne, döndürülebilecek belirli durum kodlarıyla birlikte içinde IntuneMAMEnrollmentStatus.htanımlanır.

Örnek kod

Temsilci yöntemlerinin örnek uygulamaları aşağıda 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);
}

Uygulamayı yeniden başlatma

Bir uygulama MAM ilkelerini ilk kez aldığında, gerekli kancaları uygulamak için yeniden başlatılması gerekir. Uygulamaya yeniden başlatma yapılması gerektiğini bildirmek için SDK içinde bir temsilci yöntemi IntuneMAMPolicyDelegate.hsağlar.

 - (BOOL) restartApplication

Bu yöntemin dönüş değeri SDK'ya uygulamanın gerekli yeniden başlatmayı işlemesi gerekip gerekmediğini bildirir:

  • True döndürülürse uygulamanın yeniden başlatmayı işlemesi gerekir.

  • False döndürülürse, SDK bu yöntem döndürdükten sonra uygulamayı yeniden başlatır. SDK hemen kullanıcıya uygulamayı yeniden başlatmasını söyleyen bir iletişim kutusu gösterir.

Çıkış Ölçütleri

Derleme 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:

  • Derlemenizin başarıyla derlendiğinden ve derlendiğinden emin olun.
  • Derlenmiş uygulamanızı başlatın, Uygulama Koruma İlkesi ile hedeflenmemiş bir Microsoft Entra kullanıcı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 Entra kullanıcıyla tekrarlayın ve uygulamanın artık Intune 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 kılabilir. Tümleştirmeyi doğrulamak için aşağıdaki testleri yürütür.

İlke Uygulaması Testi

İlke uygulamasının uygulamanızdaki tam son kullanıcı deneyimini öğrenmek için önce aşağıdaki testi yürütebilirsiniz:

  1. Microsoft Intune yönetim merkezinde bir iOS Uygulama Koruma İlkesi İçerik Oluşturucu. Bu test için ilkeyi yapılandırın:
    • Erişim Gereksinimleri'nin altında varsayılan ayarları değiştirmeyin. Özellikle, "Erişim için PIN" "Gerekli" olmalıdır.
  2. Uygulama Koruma İlkesi'nin uygulamanıza hedeflendiğinden emin olun. İlke oluşturma sihirbazında uygulamanın paket kimliğini el ile eklemeniz gerekebilir.
  3. Uygulama Koruma İlkesi'ni test hesabınızı içeren bir kullanıcı grubuna atayın.
  4. Uygulamanızı yükleyin.
  5. Uygulama Koruma İlkesi ile hedeflenen test hesabınızla uygulamanızda oturum açın.
  6. yönetilen Intune ekran istendiğini onaylayın ve istemin uygulamayı yeniden başlatdığını onaylayın. Bu ekran, SDK'nın bu hesap için ilkeyi başarıyla aldığını gösterir.
  7. Uygulama PIN'ini ayarlamanız istendiğinde BIR PIN İçerik Oluşturucu.
  8. Yönetilen hesabı uygulamanızın dışında günlüğe kaydetme.
  9. Uygulamanızda gezinin ve oturum açmadan uygulamanızın mümkünse beklendiği gibi çalıştığını onaylayın.

Bu adım listesi, uygulamanızın hesabı düzgün şekilde kaydettirdiğini, kimlik doğrulama geri aramasını kaydedip hesabın kaydını kaldırdığını onaylamak için bir *en düşük- testtir. Diğer Uygulama Koruma İlkesi ayarlarının uygulamanızın davranışını nasıl değiştirişini daha kapsamlı bir şekilde doğrulamak için aşağıdaki testleri yürütebilirsiniz.

Sonraki Adımlar

Tüm Çıkış Ölçütlerini tamamladıktan sonra 4. Aşama: Uygulama katılım özellikleri'ne geçin.