3. fáze: Integrace sady Intune SDK do aplikace pro iOS

Poznámka

Tento průvodce je rozdělen do několika odlišných fází. Začněte tím, že si projdete téma Plánování integrace.

Cíle fází

  • Stáhněte si sadu Intune App SDK.
  • Zjistěte, jaké soubory jsou součástí sady Intune App SDK.
  • Odkažte se ve své aplikaci na sadu Intune App SDK.
  • Ověřte, že je sada Intune App SDK správně zahrnutá do vašeho buildu.
  • Po ověření pomocí MSAL zaregistrujte nové účty pro správu MAM.
  • Pokud chcete odebrat firemní data, zrušte při odhlášení registraci účtů
  • (Doporučeno) Začleňte do aplikace protokolování MAM.

Požadavky

  • Potřebujete počítač s macOS a Xcode 16.0 nebo novější.

  • Aplikace musí cílit na iOS 16.0 nebo novější.

  • Projděte si licenční podmínky sady Intune App SDK pro iOS. Vytiskněte si a uschovejte kopii licenčních podmínek pro vaše záznamy. Stažením a používáním sady Intune App SDK pro iOS s těmito licenčními podmínkami souhlasíte. Pokud s podmínkami nesouhlasíte, software nepoužívejte.

  • Stáhněte si soubory pro sadu Intune App SDK pro iOS na GitHubu.

Co je v úložišti SDK

  • IntuneMAMSwift.xcframework: Dynamický rámec sady SDK pro aplikace Intune. Doporučuje se propojit tento rámec s vaší aplikací nebo rozšířeními, abyste povolili správu klientských aplikací Intune. Někteří vývojáři ale můžou upřednostňovat výkonnostní výhody statické architektury (IntuneMAMStatic.xcframework).

  • IntuneMAMStatic.xcframework: Statický rámec sady SDK pro aplikace Intune. Vývojáři se mohou rozhodnout odkazovat na statický rámec místo dynamického rozhraní. Vzhledem k tomu, že spustitelný kód ze statického rozhraní je vložen přímo do binárního souboru aplikace/rozšíření v době sestavení, existují určité výhody výkonu při spuštění použití statické knihovny. Pokud však vaše aplikace obsahuje nějaká rozšíření, propojení statického rámce s aplikací a rozšířeními způsobí větší velikost sady aplikací. Spustitelný kód se vloží do každého binárního souboru aplikace nebo rozšíření. Naproti tomu při použití dynamického rozhraní můžou aplikace a rozšíření sdílet stejný binární soubor sady Intune SDK, což vede k menší velikosti aplikace.

  • IntuneMAMSwiftStub.xcframework: Architektura rychlého zástupného kódu sady SDK pro aplikace Intune. Tento rámec je požadovanou závislostí IntuneMAMSwift.xcframework i IntuneMAMStatic.xcframework, které aplikace a rozšíření musí propojit.

  • IntuneMAMConfigurator: Nástroj, který slouží ke konfiguraci souboru Info.plist aplikace nebo rozšíření s minimálními požadovanými změnami pro správu Intune. V závislosti na funkcích vaší aplikace nebo rozšíření možná budete muset provést další ruční změny v souboru Info.plist.

  • libIntuneMAMSwift.xcframework: Statická knihovna sady SDK pro aplikace Intune. Tato varianta sady Intune MAM iOS SDK je zastaralá a odebraná v budoucí aktualizaci. Doporučujeme, abyste statickou knihovnu nepropojovali a místo toho propojili aplikaci nebo rozšíření buď s dynamickým rozhraním (IntuneMAMSwift.xcframework), nebo se statickým rozhraním (IntuneMAMStatic.xcframework), které bylo zmíněno výše.

  • IntuneMAMResources.bundle: Balíček prostředků obsahující prostředky, na které sada SDK spoléhá. Sada prostředků se vyžaduje jenom pro aplikace, které integrují zastaralou statickou knihovnu (libIntuneMAMSwift.xcframework), a odebere ji v budoucí aktualizaci.

Jak funguje sada Intune App SDK

Cílem sady Intune App SDK pro iOS je přidat možnosti správy do aplikací pro iOS s minimálními změnami kódu. Čím méně se kód mění, tím kratší je doba uvedení na trh, aniž by to ovlivnilo konzistenci a stabilitu vaší mobilní aplikace.

Tok procesu

Následující diagram poskytuje tok procesu sady Intune App SDK pro iOS:

Diagram architektury vysoké úrovně pro Microsoft Intune.

Integrace sady SDK do mobilní aplikace

Důležité

Intune pravidelně vydává aktualizace sady Intune App SDK. Pravidelně kontrolujte aktualizace sady Intune App SDK pro iOS a začleňte je do cyklu vydávání softwaru, abyste zajistili, že vaše aplikace podporují nejnovější nastavení zásad ochrany aplikací.

Pokud chcete povolit sadu Intune App SDK, postupujte takto:

  1. Propojte buď IntuneMAMSwift.xcframework nebo IntuneMAMStatic.xcframework s cílem: Přetáhněte balíček xcframework do seznamu Frameworky, Knihovny a Vložený obsah cíle projektu. Opakujte tyto kroky pro IntuneMAMSwiftStub.xcframework. U hlavní aplikace vyberte ve sloupci Vložit & podepsat Vložit pro oba přidané xcframeworky. U všech rozšíření vyberte možnost Nevkládat.

    Rozhraní iOS sady SDK pro aplikace Intune: Ukázka architektur, knihoven a vloženého obsahu Xcode

  2. Přidejte do projektu tyto architektury iOS:

    • 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. Povolte sdílení klíčenky (pokud ještě není povolené) volbou Schopnosti v každém cíli projektu a povolením přepínače Sdílení klíčenky . Abyste mohli pokračovat k dalšímu kroku, je potřeba sdílet svazek klíčů.

    Poznámka

    Váš zřizovací profil musí podporovat nové hodnoty sdílení svazku klíčů. Přístupové skupiny svazku klíčů by měly podporovat zástupný znak. Můžete to zkontrolovat tak, že otevřete soubor .mobileprovision v textovém editoru, vyhledáte keychain-access-groups a zkontrolujete, že máte zástupný znak. Příklady:

    <key>keychain-access-groups</key>
    <array>
    <string>YOURBUNDLESEEDID.*</string>
    </array>
    
  4. Po povolení sdílení řetězce klíčů vytvořte podle pokynů samostatnou přístupovou skupinu, do které sada Intune App SDK ukládá svá data. Přístupovou skupinu řetězce klíčů můžete vytvořit pomocí uživatelského rozhraní nebo pomocí souboru nároků. Pokud k vytvoření skupiny pro přístup ke klíčence používáte uživatelské rozhraní, postupujte takto:

    1. Pokud vaše mobilní aplikace nemá definované žádné přístupové skupiny řetězců klíčů, přidejte ID sady jako první skupinu aplikace.

    2. Přidejte skupinu com.microsoft.intune.mam sdíleného řetězce klíčů do existujících přístupových skupin. Sada Intune App SDK používá tuto přístupovou skupinu k ukládání dat.

    3. Přidat com.microsoft.adalcache do existujících přístupových skupin.

      Sada Intune App SDK pro iOS: klíčenka

      Poznámka

      Pokud jste službu MSAL nakonfigurovali tak, aby místo výchozího nastavení com.microsoft.adalcachepoužívala vlastní přístupovou skupinu řetězce klíčů, nemusíte tuto přístupovou skupinu řetězce klíčů zadávat. Místo toho určete vlastní skupinu klíčenky. Měli byste také nakonfigurovat Intune tak, aby používala stejnou vlastní přístupovou skupinu prostřednictvím nastavení ADALCacheKeychainGroupOverride ve slovníku IntuneMAMSettings Info.plist.

    4. Pokud upravujete soubor nároků přímo, místo abyste k vytvoření přístupových skupin svazku klíčů použili uživatelské rozhraní Xcode, předřaďte přístupovým skupinám svazku klíčů pomocí $(AppIdentifierPrefix) (Xcode to automaticky zpracuje). Příklady:

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

      Poznámka

      Soubor nároků je soubor XML, který je jedinečný pro vaši mobilní aplikaci. Používá se k určení zvláštních oprávnění a možností v aplikaci pro iOS. Pokud vaše aplikace dříve neměla soubor nároků, povolení sdílení klíčenky (krok 3) mělo způsobit, že Xcode pro vaši aplikaci soubor vygeneroval. Ujistěte se, že ID sady prostředků aplikace je první položkou v seznamu.

  5. Zahrňte každý protokol, kterému vaše aplikace předává UIApplication canOpenURL , do LSApplicationQueriesSchemes pole souboru Info.plist vaší aplikace. Pro každý protokol uvedený v tomto poli přidejte kopii protokolu připojeného k -intunemam poli. Do matice také přidejte tyto hodnoty: http-intunemam, https-intunemam, microsoft-edge-http-intunemam, smart-nswanderalacoonsecuritylookoutwork-aseskycurezipsmicrosoft-edge-https-intunemamsmsecmvisionmobilebetteractiveshieldscmxa .intunemam-mtd Pokud vaše aplikace používá protokol mailto: , přidejte ms-outlook-intunemam také do pole. Než budete pokračovat dalším krokem, uložte změny.

    Pokud aplikaci dojde místo v seznamu LSApplicationQueriesSchemes, může odebrat schémata "-intunemam" pro aplikace, o kterých je známo, že implementují také sadu Intune MAM SDK. Když aplikace odebere "scheme-intunemam" ze seznamu LSApplicationQueriesSchemes, canOpenURL() může vrátit nesprávné odpovědi pro tato schémata. Chcete-li tento problém vyřešit, zavolejte [IntuneMAMPolicy isURLAllowed:url isKnownManagedAppScheme:YES] místo toho toto schéma. Toto volání se vrátí NO , pokud zásada blokuje otevření adresy URL. Pokud vrátí hodnotu true, aplikace může volat canOpenURL() s prázdnou identitou, aby zjistila, jestli je možné adresu URL otevřít. Příklady:

    BOOL __block canOpen = NO;
    if([policy isURLAllowed:urlForKnownManagedApp isKnownManagedAppScheme:YES])
    {
        [[IntuneMAMPolicyManager instance] setCurrentThreadAccountId:"" forScope:^{
        canOpen = [[UIApplication sharedApplication] canOpenURL:urlForKnownManagedApp];
        }];
    }
    
  6. Pokud vaše aplikace ještě nepoužívá FaceID, ujistěte se, že je klíč NSFaceIDUsageDescription Info.plist nakonfigurovaný s výchozí zprávou. Tento krok je nutný, aby iOS mohl uživateli sdělit, jak aplikace zamýšlí používat FaceID. Nastavení zásad ochrany aplikací Intune umožňuje použít FaceID jako metodu pro přístup k aplikacím, pokud je nakonfigurovaný správcem IT.

  7. Pomocí nástroje IntuneMAMConfigurator, který je součástí úložiště SDK , dokončete konfiguraci souboru Info.plist vaší aplikace. Nástroj má tři parametry:

    Vlastnost Způsob použití
    - I <Path to the input plist>
    - e <Path to the entitlements file>
    - o (Volitelné) <Path to the output plist>

    Pokud parametr -o není zadaný, vstupní soubor se změní místně. Nástroj je idempotentní a měl by se znovu spustit pokaždé, když provedete změny v souboru Info.plist nebo oprávněních aplikace. Měli byste si také stáhnout a spustit nejnovější verzi nástroje při aktualizaci sady Intune SDK pro případ, že by se v nejnovější verzi změnily požadavky na konfiguraci souboru Info.plist.

Poznámka

Pokud máte aplikaci SwiftUI, ujistěte se, že UISceneConfigurations slovník v UIApplicationSceneManifest souboru in the Info.pist nechybí nebo není prázdný. Pokud toto nastavení nenakonfigurujete, sada Intune SDK nebude chránit vaši aplikaci, přestože se zásady ochrany aplikace úspěšně použily. Pokud nemáte nastavenou UISceneConfigurations konkrétní hodnotu, můžete použít tuto výchozí konfiguraci:

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

Nastavení a možnosti buildu Xcode

Aplikace by měla mít v nastavení buildu Xcode nastavené symboly Strip Swift (STRIP_SWIFT_SYMBOLS) i Povolit bitcode (ENABLE_BITCODE) na NE. Pokud vaše aplikace obsahuje funkci "Rozšířené zabezpečení", která je k dispozici v Xcode 26+, MUSÍTE zakázat možnosti Ověřit ukazatele a Povolit paměť platformy jen pro čtení.

Integrace přípony poskytovatele souborů

Rozšíření poskytovatele souborů mají určité požadavky na paměť, které můžou ztížit integraci úplné sady SDK. Pro usnadnění je k dispozici statická knihovna libIntuneMAMSwiftFileProvider.xcframework, což je ořezaná verze sady SDK speciálně pro přípony poskytovatele souborů. Poznámka: Tato knihovna je pro část rozšíření FileProvider bez uživatelského rozhraní. Úplnou sadu SDK musíte integrovat do rozšíření uživatelského rozhraní poskytovatele souborů.

Pokud chcete jednu z těchto knihoven integrovat s příponou poskytovatele souborů, postupujte podle kroků pro integraci sady SDK jako statické knihovny. Nezapomeňte zahrnout ContainingAppBundleId nastavení.

Integrace rozšíření poskytovatele nereplikovaných souborů

Vaše aplikace používá poskytovatele nereplikovaných souborů, pokud implementuje NSFileProviderExtension protokol. Všichni poskytovatelé souborů vytvoření před iOS 16.0 se nereplikují.

In - startProvidingItemAtURL:completionHandler: check if you should encrypt files using [[IntuneMAMPolicy instance]shouldFileProviderEncryptFiles]. K samotnému šifrování souborů použijte encryptFile:forAccountId: rozhraní API v IntuneMAMFileProtectionManager. Pokud je vyžadováno šifrování, nasdílejte kopii souboru také v případě, že nechcete ukládat šifrovanou kopii souboru do cloudového úložiště.

In - importDocumentAtURL:toParentItemIdentifier:completionHandler: zkontrolujte, jestli je soubor zašifrovaný pomocí rozhraní API isFileEncrytped: v IntuneMAMFileProtectionManager. Pokud ano, dešifrujte ho pomocí rozhraní API decryptFile:toCopyPath: IntuneMAMFileProtectionManager. V aplikacích s více identitami také zkontrolujte rozhraní API canReceiveSharedFile: v IntuneMAMPolicy cílového vlastníka a zjistěte, jestli vlastník může soubor přijmout.

Integrace rozšíření Replicated File Provider

Vaše aplikace používá zprostředkovatele replikovaných souborů, pokud implementuje NSFileProviderReplicatedExtension protokol (přidaný v iOSu 16.0).

In - fetchContentsForItemWithIdentifier:version:request:completionHandler: check if you should encrypt files using [[IntuneMAMPolicy instance]shouldFileProviderEncryptFiles]. K samotnému šifrování souborů použijte rozhraní API encryptFile:forAccountId: v IntuneMAMFileProtectionManager. Pokud je vyžadováno šifrování, zkopírujte kopii souboru, protože nechcete uložit zašifrovanou kopii souboru do cloudového úložiště.

In - createItemBasedOnTemplate:fields:contents:options:request:completionHandler: zkontrolujte, jestli je soubor zašifrovaný pomocí rozhraní API isFileEncrypted: v IntuneMAMFileProtectionManager. Pokud ano, dešifrujte ho pomocí rozhraní API decryptFile:toCopyPath: IntuneMAMFileProtectionManager. V aplikacích s více identitami také zkontrolujte rozhraní API canReceiveSharedFile: v IntuneMAMPolicy cílového vlastníka a zjistěte, jestli vlastník může soubor přijmout.

Kdekoli replikovaný poskytovatel souborů vytvoří a předá NSFileProviderItem do systému, zavolejte rozhraní API protectFileProviderItem:forAccountId nástroje IntuneMAMFileProtectionManager s identitou vlastníka položky. V závislosti na tom, kde NSFileProviderItem je objekt vytvořen a trvalý ve vašem rozšíření, to možná budete muset provést v každé z NSFileProviderReplicatedExtension metod protokolu.

Konfigurace nastavení pro sadu Intune App SDK

K nastavení a konfiguraci sady Intune App SDK můžete použít slovník IntuneMAMSettings v souboru Info.plist aplikace. Pokud se slovník IntuneMAMSettings v souboru Info.plist nezobrazuje, měli byste ho vytvořit.

Ve slovníku IntuneMAMSettings můžete definovat následující podporovaná nastavení pro konfiguraci sady Intune App SDK.

Předchozí části popisují některá z těchto nastavení a některá neplatí pro všechny aplikace.

Nastavení Typ Vysvětlení Požadované?
ADALClientId String Identifikátor klienta aplikace Microsoft Entra. Povinné pro všechny aplikace.
ADALAuthority String Autorita aplikace Microsoft Entra se používá. Měli byste používat vlastní prostředí, ve kterém se konfigurují účty aplikace Microsoft Entra. Další informace naleznete v tématu Možnosti konfigurace aplikace. Vyžaduje se, pokud se jedná o vlastní obchodní aplikaci vytvořenou pro použití v rámci jedné organizace nebo tenanta služby Microsoft Entra. Pokud tato hodnota chybí, použije se společná autorita Microsoft Entra (podporováno pouze pro víceklientské aplikace).
ADALRedirectUri String Identifikátor URI aplikace pro přesměrování aplikace Microsoft Entra. ADALRedirectUri nebo ADALRedirectScheme se vyžaduje pro všechny aplikace.
ADALRedirectScheme String Schéma přesměrování aplikace Microsoft Entra ID. Tuto možnost lze použít místo ADALRedirectUri, pokud je identifikátor URI přesměrování aplikace ve formátu scheme://bundle_id. ADALRedirectUri nebo ADALRedirectScheme se vyžaduje pro všechny aplikace.
ADALLogOverrideDisabled Boolean Určuje, jestli sada SDK směruje všechny protokoly MSAL (včetně volání MSAL z aplikace, pokud existují) do vlastního souboru protokolu. Výchozí hodnota je NE. Nastavte na ANO, pokud aplikace nastavuje vlastní zpětné volání protokolu MSAL. Volitelný parametr
ADALCacheKeychainGroupOverride String Určuje skupinu řetězce klíčů, která se má použít pro mezipaměť MSAL namísto "com.microsoft.adalcache". Systém tuto předponu automaticky předponá za běhu. Volitelný parametr
AppGroupIdentifiers Pole řetězců Matice skupin aplikací z oddílu nároků com.apple.security.application-groups aplikace. Povinné, pokud aplikace používá skupiny aplikací.
ContainingAppBundleId String Určuje ID sady prostředků aplikace obsahující rozšíření. Vyžadováno pro rozšíření iOS.
AutoEnrollOnLaunch Boolean Určuje, jestli se má aplikace pokusit o automatickou registraci při spuštění, pokud je zjištěna existující spravovaná identita a ještě to neudělala. Výchozí hodnota je NE.

Poznámka: Pokud se nenajde žádná spravovaná identita nebo není v mezipaměti MSAL k dispozici žádný platný token, registrace se bezobslužně nezdaří, pokud MAMPolicyRequired není YES.
Volitelný parametr Výchozí hodnota je NE.
MAMPolicyRequired Boolean Určuje, jestli je spuštění aplikace blokované, pokud nemá zásady ochrany aplikací Intune. Výchozí hodnota je NE.

Poznámka: S tímto nastaveným příznakem ANO nejde odesílat aplikace do obchodu App Store. Když ho nastavíte na ANO, AutoEnrollOnLaunch mělo by to být také ANO.
Volitelný parametr Výchozí hodnota je NE.
MAMPolicyWarnAbsent Boolean Určuje, jestli aplikace upozorní uživatele při spuštění, pokud nejsou k dispozici žádné zásady ochrany aplikace Intune.

Poznámka: Uživatelé můžou pokračovat i po zavření upozornění.
Volitelný parametr Výchozí hodnota je NE.
Funkce MultiIdentity Boolean Určuje, jestli aplikace podporuje více identit. Další informace najdete v dokumentaci k více identitám. Volitelný parametr Výchozí hodnota je NE.
MultiIdentityCancelDisabled Boolean Zakáže tlačítko Zrušit na obrazovkách uživatelského rozhraní podmíněného spuštění aplikace Intune v aplikacích s více identitami. Pokud tato možnost není nastavená na ANO, musí aplikace zpracovat IntuneMAMSwitchIdentityResultCanceled kód chyby. Viz Přepínání identit. Volitelný parametr Výchozí hodnota je NE.
SafariViewControllerBlockedOverride Boolean Zakáže háčky SafariViewController Intune, aby se povolilo ověřování MSAL prostřednictvím SFSafariViewController, SFAuthSession nebo ASWebAuthSession.

Poznámka: Tlačítko nakonfigurované aktivity se zobrazí pouze v případě, že zobrazení není spravované a je nastaveno na ANO.
Volitelný parametr Výchozí hodnota je NE.

Varování: Při nesprávném použití může způsobit únik dat.
SplashIconFile
SplashIconFile~ipad
String Určuje soubor ikony hlavního spouštění (spouštěcí) aplikace Intune. Volitelný parametr
Hodnota SplashDuration Číslo Minimální doba v sekundách, po kterou se zobrazí úvodní obrazovka aplikace Intune. Výchozí hodnota je 1,5. Volitelný parametr
BackgroundColor (Barva pozadí) String Určuje barvu pozadí komponent uživatelského rozhraní sady Intune SDK. Přijme #XXXXXX šestnáctkovou hodnotu bez znaku libry. Volitelný parametr Výchozí nastavení je systémová barva pozadí.
ForegroundColor (Barva popředí) String Určuje barvu popředí nebo textu pro komponenty uživatelského rozhraní. Přijímá #XXXXXX nebo hexadecimální bez znaku libry. Volitelný parametr Výchozí hodnota je systémová barva popisku.
Barva zvýraznění String Určuje barvu motivu pro součásti uživatelského rozhraní (tlačítka, zvýraznění políčka PIN kódu). Přijímá #XXXXXX nebo hexadecimální bez znaku libry. Volitelný parametr Výchozí hodnota je systémová modrá.
SecondaryBackgroundColor String Určuje sekundární barvu pozadí obrazovek MTD. Přijímá #XXXXXX nebo hexadecimální bez znaku libry. Volitelný parametr Výchozí hodnota je bílá.
SecondaryForegroundColor String Určuje sekundární barvu popředí pro obrazovky MTD. Přijímá #XXXXXX nebo hexadecimální bez znaku libry. Volitelný parametr Výchozí hodnota je šedá.
Podporuje DarkMode Boolean Určuje, jestli se barvy uživatelského rozhraní budou řídit tmavým režimem systému, když nejsou nastavené explicitní barvy. Volitelný parametr Výchozí hodnota je ANO.
MAMTelemetryDisabled Boolean Určuje, jestli se do back-endu posílá telemetrie. Volitelný parametr Výchozí hodnota je NE.
MAMTelemetryUsePPE Boolean Odesílá telemetrii do back-endu OOP. Užitečné pro testování aplikací, aby se data nemíchala s daty zákazníků. Volitelný parametr Výchozí hodnota je NE.
MaxFileProtectionLevel String Určuje maximální NSFileProtectionType podporu, kterou aplikace podporuje. Přepíše zásady, pokud služba odešle vyšší úroveň.

Možné hodnoty: NSFileProtectionComplete, NSFileProtectionCompleteUnlessOpen, NSFileProtectionCompleteUntilFirstUserAuthentication, NSFileProtectionNone.

Upozornění: S NSFileProtectionComplete, aplikace ztratí přístup k chráněným souborům ~10 sekund po uzamčení zařízení, což může narušit komponenty, jako jsou místní databáze. Aplikace s uživatelským rozhraním zamykací obrazovky by měly používat NSFileProtectionCompleteUntilFirstUserAuthentication.
Volitelný parametr Výchozí hodnota je NSFileProtectionComplete.
OpenInActionExtension Boolean U rozšíření Otevřít v akci nastavte možnost ANO. Viz Sdílení dat přes UIActivityViewController. Volitelný parametr
TreatAllWebViewsAsUnmanaged Boolean Zachází se všemi webovými zobrazeními jako s nespravovanými pro vynucování vyjmutí/kopírování/vložení. Viz Zobrazení webového obsahu. Volitelný parametr Výchozí hodnota je NE.
WebViewHandledURLSchemes Pole řetězců Schémata adres URL zpracovávaná webView aplikace. Vyžaduje se, pokud vaše WebView zpracovává odkazy nebo navigaci v JavaScriptu.
DocumentBrowserFileCachePath String Pokud používáte UIDocumentBrowserViewController, nastavte cestu (vzhledem k domovskému adresáři aplikace) pro dešifrované spravované soubory. Volitelný parametr Výchozí hodnota je /Documents/.
VerboseLoggingEnabled Boolean Povolí podrobné protokolování. Volitelný parametr Výchozí hodnota je NE.
FinishLaunchingAtStartup Boolean Vyžadováno při použití [BGTaskScheduler registerForTaskWithIdentifier:]; musí být ANO. Volitelný parametr Výchozí hodnota je NE.
ValuesToScrubFromLogging Pole řetězců Hodnoty Konfigurace aplikace, které by se měly odebrat z protokolů. Lze také nastavit pomocí valuesToScrubFromLogging zapnutého IntuneMAMSettings. Volitelný parametr

Získání zásad ochrany aplikací

Přehled

Aby aplikace dostávaly zásady ochrany aplikací Intune, musí iniciovat žádost o registraci se službou Intune MAM. Aplikace se dají nakonfigurovat v Centru pro správu Intune tak, aby dostávaly zásady ochrany aplikací s registrací zařízení nebo bez ní. Správa mobilních aplikací (MAM) umožňuje, aby aplikace byly spravované přes Intune, aniž by bylo nutné zařízení zaregistrované ve správě mobilních zařízení (MDM) služby Intune. V obou případech je pro přijetí zásad nutná registrace do služby Intune MAM.

Důležité

Sada Intune App SDK pro iOS používá 256bitové šifrovací klíče, pokud je šifrování povolené zásadami ochrany aplikací. Všechny aplikace musí mít aktuální verzi sady SDK, aby bylo možné sdílet chráněná data.

Aplikace, které už používají knihovnu ADAL nebo MSAL

Poznámka

Azure AD Authentication Library (ADAL) a Azure AD Graph API jsou zastaralé. Další informace najdete v tématu Aktualizace aplikací tak, aby používaly knihovnu Identity a ověřování Microsoftu (MSAL) a Microsoft Graph API.

Aplikace, které už používají MSAL, by měly po úspěšném ověření uživatele volat registerAndEnrollAccountId metodu v instanci IntuneMAMEnrollmentManager :

/*
 *  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;

Při úspěšném přihlášení MSAL odešle výsledek v objektu MSALResult. Jako parametr accountId pro rozhraní API použijte tenantProfile.identifier v rámci MSALResult.

Voláním registerAndEnrollAccountId metody sada SDK zaregistruje uživatelský účet a pokusí se zaregistrovat aplikaci jménem tohoto účtu. Pokud se registrace z nějakého důvodu nezdaří, sada SDK se automaticky pokusí registraci zopakovat o 24 hodin později. Pro účely ladění může aplikace prostřednictvím delegáta přijímat oznámení o výsledcích všech žádostí o registraci.

Po vyvolání tohoto rozhraní API může aplikace dál fungovat jako obvykle. Pokud je registrace úspěšná, sada SDK oznámí uživateli, že je vyžadováno restartování aplikace. V takovém okamžiku může uživatel aplikaci okamžitě restartovat.

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

Aplikace, které nepoužívají knihovnu ADAL nebo MSAL

Aplikace, které se nepřihlašují pomocí ADAL nebo MSAL, můžou stále dostávat zásady ochrany aplikací ze služby Intune MAM voláním rozhraní API, aby sada SDK toto ověřování zpracovala. Aplikace by měly tuto techniku používat, pokud neprokázaly ověření uživatele pomocí Microsoft Entra ID, ale přesto potřebují načíst zásady ochrany aplikací, které pomáhají chránit data. Příkladem je, pokud se pro přihlášení do aplikace používá jiná ověřovací služba nebo pokud aplikace nepodporuje přihlášení vůbec. K tomu může aplikace volat loginAndEnrollAccount metodu na IntuneMAMEnrollmentManager instanci:

/**
 *  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;

Voláním této metody sada SDK vyzve uživatele k zadání přihlašovacích údajů, pokud není možné najít žádný existující token. Sada SDK se pak pokusí zaregistrovat aplikaci pomocí služby Intune MAM jménem zadaného uživatelského účtu. Metodu lze volat s identitou "nil". V takovém případě se sada SDK zaregistruje u existujícího spravovaného uživatele na zařízení (pokud je MDM) nebo vyzve uživatele k zadání uživatelského jména, pokud se nenajde žádný existující uživatel.

Pokud se registrace nezdaří, měla by aplikace zvážit volání tohoto rozhraní API znovu v budoucnu v závislosti na podrobnostech selhání. Aplikace může prostřednictvím delegáta přijímat oznámení o výsledcích všech žádostí o registraci.

Po vyvolání tohoto rozhraní API může aplikace dál fungovat jako obvykle. Pokud je registrace úspěšná, sada SDK oznámí uživateli, že je vyžadováno restartování aplikace. Po správě aplikace je potřeba se na hodnotu ID objektu služby Microsoft Entra dotazovat pomocí enrolledAccountId rozhraní IntuneMAMEnrollmentManager. Tuto možnost použijte pro všechna rozhraní MAM SDK API, která aplikace používá pro tento zaregistrovaný účet.

Příklad:

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

Nechat Intune zpracovat ověřování a registraci při spuštění

Pokud chcete, aby sada Intune SDK zpracovávala veškeré ověřování pomocí ADAL/MSAL a registrace před dokončením spuštění aplikace a vaše aplikace vždy vyžaduje zásady ochrany aplikací, nemusíte rozhraní API používatloginAndEnrollAccount. Následující nastavení můžete nastavit na ANO ve slovníku IntuneMAMSettings v souboru Info.plist aplikace.

Nastavení Typ Vysvětlení
AutoEnrollOnLaunch Boolean Určuje, jestli se má aplikace pokusit o automatickou registraci při spuštění, pokud je zjištěna existující spravovaná identita a ještě to neudělala. Výchozí hodnota je NE.

Poznámka: Pokud se nenajde žádná spravovaná identita nebo v mezipaměti ADAL/MSAL není k dispozici žádný platný token pro identitu, pokus o registraci se bezobslužně nezdaří bez výzvy k zadání přihlašovacích údajů, pokud se aplikace také nenastaví MAMPolicyRequired na ANO.
MAMPolicyRequired Boolean Určuje, jestli je spuštění aplikace blokované, pokud aplikace nemá zásady ochrany aplikací Intune. Výchozí hodnota je NE.

Poznámka: Aplikace nelze do obchodu App Store odesílat s MAMPolicyRequired nastavenou hodnotou ANO. Při nastavení MAMPolicyRequired na ANOAutoEnrollOnLaunch by mělo být také nastaveno na ANO.

Pokud zvolíte tuto možnost pro svou aplikaci, nemusíte se po registraci zabývat restartováním aplikace.

Zrušení registrace uživatelských účtů

Před odhlášením uživatele z aplikace by aplikace měla zrušit registraci uživatele ze sady SDK. Tento proces zajišťuje:

  1. U účtu uživatele už nedochází k opakování registrace.

  2. Zásady Ochrana aplikací se odeberou.

  3. Podniková data se odstraní, pokud aplikace zahájí selektivní vymazání (volitelné).

Před odhlášením uživatele by aplikace měla v instanci volat následující metodu IntuneMAMEnrollmentManager :

/*
 *  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;

Tato metoda musí být volána před odstraněním Microsoft Entra tokenů uživatelského účtu. Sada SDK potřebuje tokeny Microsoft Entra uživatelského účtu, aby mohla jménem uživatele provádět konkrétní požadavky na službu Intune MAM.

Pokud aplikace odstraní podniková data uživatele sama, doWipe může být příznak nastaven na false. V opačném případě může aplikace nechat sadu SDK iniciovat selektivní vymazání. Výsledkem je volání delegáta selektivního vymazání aplikace.

Příklad:

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

Oznámení o stavu, výsledcích a ladění

Aplikace může přijímat oznámení o stavu, výsledcích a ladění o následujících požadavcích na službu Intune MAM:

  • Žádosti o zápis
  • Žádosti o aktualizaci zásad
  • Žádosti o zrušení registrace

Oznámení se prezentují prostřednictvím metod delegáta v IntuneMAMEnrollmentDelegate.h:

/**
 *  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;

Tyto metody delegáta vracejí IntuneMAMEnrollmentStatus objekt, který má následující informace:

  • ID účtu (ID objektu) účtu přidruženého k žádosti
  • Identita (UPN) účtu přidruženého k žádosti
  • Stavový kód, který označuje výsledek žádosti
  • Řetězec chyby s popisem stavového kódu
  • Objekt NSError . Tento objekt je definován v IntuneMAMEnrollmentStatus.h, spolu se specifickými stavovými kódy, které mohou být vráceny.

Ukázkový kód

Následují příklady implementací metod delegování:

- (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);
}

Restartování aplikace

Když aplikace obdrží zásady MAM poprvé, musí se restartovat, aby mohla použít požadované zásuvné moduly. Pokud chcete aplikaci upozornit, že je třeba provést restartování, sada SDK poskytne metodu delegáta v IntuneMAMPolicyDelegate.h.

 - (BOOL) restartApplication

Návratová hodnota této metody sděluje sadě SDK, zda aplikace musí zpracovat požadované restartování:

  • Pokud je vrácena hodnota true, musí aplikace restartování zpracovat.

  • Pokud se vrátí hodnota false, sada SDK po vrácení této metody restartuje aplikaci. Sada SDK okamžitě zobrazí dialogové okno s výzvou, aby uživatel restartoval aplikaci.

Poznámka

Aplikace .NET MAUI nevyžadují restartování.

Kritéria pro ukončení

Po konfiguraci modulu plug-in sestavení nebo integraci nástroje příkazového řádku do procesu sestavení ověřte, že úspěšně běží:

  • Ujistěte se, že vaše sestavení se úspěšně zkompiluje a sestaví.
  • Spusťte zkompilovanou aplikaci, přihlaste se jako uživatel služby Microsoft Entra, na kterého necílí zásady ochrany aplikací, a ověřte, že aplikace funguje podle očekávání.
  • Odhlaste se a opakujte tento test s uživatelem služby Microsoft Entra, na kterého cílí zásady ochrany aplikací, a ověřte, že aplikace je teď spravovaná službou Intune a restartovaná.

V tomto bodě integrace může vaše aplikace přijímat a vynucovat zásady ochrany aplikací. Proveďte následující testy, abyste ověřili integraci.

První test aplikace zásad

Nejprve proveďte následující test, abyste se seznámili s kompletním prostředím aplikace zásad pro koncové uživatele ve vaší aplikaci:

  1. V Centru pro správu služby Microsoft Intune vytvořte zásady ochrany aplikací pro iOS. Pro tento test nakonfigurujte zásady:
    • V části Požadavky na přístup ponechte výchozí nastavení. Konkrétně by PIN kód pro přístup měl být "Vyžadovat".
  2. Ujistěte se, že zásady ochrany aplikací jsou cílené na vaši aplikaci. Možná budete muset ručně přidat ID sady prostředků aplikace v průvodci vytvořením zásad.
  3. Přiřaďte zásady ochrany aplikací skupině uživatelů, která obsahuje váš testovací účet.
  4. Nainstalujte aplikaci.
  5. Přihlaste se ke své aplikaci pomocí testovacího účtu, na který cílí zásady ochrany aplikací.
  6. Potvrďte, že se zobrazí výzva s obrazovkou spravovanou službou Intune, a potvrzením výzvy se aplikace restartuje. Tato obrazovka ukazuje, že sada SDK úspěšně načte zásady pro tento účet.
  7. Když se zobrazí výzva k nastavení PIN kódu aplikace, vytvořte PIN kód.
  8. Odhlaste spravovaný účet z aplikace.
  9. Procházejte aplikaci a ověřte, jestli vaše aplikace funguje podle očekávání, pokud je to možné, i bez přihlášení.

Tento seznam kroků je *naprostým minimem- testem, který potvrdí, že vaše aplikace správně zaregistruje účet, zaregistruje zpětné volání ověřování a zruší registraci účtu. Proveďte následující testy, abyste důkladněji ověřili, jak další nastavení zásad ochrany aplikací upravují chování vaší aplikace.

Další kroky

Po splnění všech výstupních kritérií pokračujte do 4. fáze: Funkce účasti v aplikacích.