Sdílet prostřednictvím


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

Poznámka

Tato příručka je rozdělená do několika různých fází. Začněte tím, že si projděte téma Plánování integrace.

Cíle fáze

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

Požadavky

  • Potřebujete počítač s macOS, na kterém je nainstalovaný Xcode 14.0 nebo novější.

  • Aplikace musí být určená pro iOS 14.0 nebo novější.

  • Přečtěte si licenční podmínky sady Intune App SDK pro iOS. Vytiskněte a uchovávejte kopii licenčních podmínek pro své záznamy. Stažením a používáním sady Intune App SDK pro iOS vyjadřujete souhlas s těmito licenčními podmínkami. Pokud je nepřijmete, nepoužívejte software.

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

Co je v úložišti SDK

  • IntuneMAMSwift.xcframework: Dynamická architektura sady Intune App SDK. Doporučujeme, abyste tuto architekturu propojili s vaší aplikací nebo rozšířeními a povolili tak správu klientských aplikací Intune. Někteří vývojáři ale můžou upřednostňovat výhody výkonu statické architektury (IntuneMAMStatic.xcframework). Viz níže.

  • IntuneMAMStatic.xcframework: Statická architektura sady Intune App SDK. Vývojáři můžou místo dynamické architektury propojit statickou architekturu. Vzhledem k tomu, že spustitelný kód ze statické architektury je v době sestavení vložen přímo do binárního souboru aplikace nebo rozšíření, má použití statické knihovny určité výhody výkonu při spuštění. Pokud ale vaše aplikace obsahuje nějaká rozšíření, propojení statické architektury s aplikací a rozšířeními způsobí větší velikost sady aplikací, protože spustitelný kód je vložený do každého binárního souboru aplikace nebo rozšíření. Naproti tomu při použití dynamické architektury můžou aplikace a rozšíření sdílet stejný binární soubor sady Intune SDK, což vede k menší velikosti aplikace.

  • IntuneMAMSwiftStub.xcframework: Architektura Swiftu sady Intune App SDK. Tato architektura je povinná závislost IntuneMAMSwift.xcframework a IntuneMAMStatic.xcframework, které aplikace nebo rozšíření musí propojit.

  • IntuneMAMConfigurator: Nástroj sloužící 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 v souboru Info.plist provést další ruční změny.

  • libIntuneMAMSwift.xcframework: Statická knihovna sady Intune App SDK. Tato varianta sady Intune MAM iOS SDK je zastaralá a v budoucí aktualizaci se odebere. Doporučujeme nepropojovat statickou knihovnu a místo toho propojit aplikaci nebo rozšíření s dříve uvedenou dynamickou architekturou (IntuneMAMSwift.xcframework) nebo statickou architekturou (IntuneMAMStatic.xcframework).

  • IntuneMAMResources.bundle: Sada prostředků, která obsahuje 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 v budoucí aktualizaci se odebere.

Jak intune App SDK funguje

Cílem sady Intune App SDK pro iOS je přidat funkce správy do aplikací pro iOS s minimálními změnami kódu. Čím méně kódu se změní, tím méně času na uvedení na trh, ale nemá to vliv na konzistenci a stabilitu mobilní aplikace.

Tok procesu

Následující diagram znázorňuje tok procesu sady Intune App SDK pro iOS:

Diagram architektury vysoké úrovně pro Microsoft Intune

Sestavení 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ňujte je do cyklu vydávání verzí softwaru, abyste měli jistotu, že vaše aplikace podporují nejnovější nastavení zásad ochrany aplikací.

Pokud chcete povolit sadu Intune App SDK, postupujte takto:

  1. Propojit nebo IntuneMAMSwift.xcframeworkIntuneMAMStatic.xcframework s cílem: Přetáhněte sadu xcframework do seznamu Architektury, Knihovny a Vložený obsah cílového projektu. Opakujte tento postup pro IntuneMAMSwiftStub.xcframework. U hlavní aplikace vyberte "Vložit & Sign" ve sloupci Vložit u obou přidaných xcframeworks. U všech rozšíření vyberte Možnost Nevkládat.

    Intune App SDK – iOS Framework: Xcode Frameworks, knihovny a ukázka vloženého obsahu

  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í řetězce klíčů (pokud ještě není povolené) tak, že v každém cíli projektu zvolíte Možnosti a povolíte přepínač Sdílení řetězce klíčů . Sdílení řetězce klíčů je potřeba, abyste mohli pokračovat k dalšímu kroku.

    Poznámka

    Váš zřizovací profil musí podporovat nové hodnoty sdílení řetězce klíčů. Skupiny přístupu řetězce klíčů by měly podporovat zástupný znak. Můžete to zkontrolovat otevřením souboru .mobileprovision v textovém editoru, vyhledáním řetězce keychain-access-groups a ověřením, ž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é bude sada Intune App SDK ukládat data. Přístupovou skupinu řetězce klíčů můžete vytvořit pomocí uživatelského rozhraní nebo souboru nároků. Pokud k vytvoření přístupové skupiny řetězce klíčů používáte uživatelské rozhraní, nezapomeňte postupovat podle těchto kroků:

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

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

    3. Přidejte com.microsoft.adalcache do stávajících přístupových skupin.

      Intune App SDK iOS: Sdílení řetězce klíčů

    4. Pokud upravujete soubor nároků přímo, místo použití uživatelského rozhraní Xcode uvedeného výše k vytvoření přístupových skupin řetězce klíčů použijte před tyto skupiny $(AppIdentifierPrefix) přístupu ke řetězce klíčů (Xcode to zpracovává automaticky). 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. Slouží k určení speciálních oprávnění a možností v aplikaci pro iOS. Pokud vaše aplikace dříve soubor nároků neměla, povolením sdílení řetězce klíčů (krok 3) by měl Xcode vygenerovat soubor pro vaši aplikaci. Ujistěte se, že ID sady prostředků aplikace je první položkou v seznamu.

  5. Do pole souboru Info.plist vaší aplikace zahrňte každý protokol, kterému aplikace předá UIApplication canOpenURLLSApplicationQueriesSchemes . Pro každý protokol uvedený v tomto poli musí být do pole přidána také kopie protokolu připojená -intunemam pomocí. Do pole by se navíc microsoft-edge-http-intunemammvisionmobilezipssmart-nslacoonsecuritymicrosoft-edge-https-intunemamwanderalookoutwork-asehttps-intunemamhttp-intunemambetteractiveshieldsmsecskycurescmxměly přidat , a .intunemam-mtd Pokud vaše aplikace používá protokol mailto: , ms-outlook-intunemam měl by se přidat také do pole. Než budete pokračovat k dalšímu kroku, nezapomeňte změny uložit.

    Pokud aplikaci dojde místo v seznamu LSApplicationQueriesSchemes, může odebrat schémata "-intunemam" pro aplikace, o kterých se ví, že také implementují 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. Pokud chcete tento problém vyřešit, měla by aplikace místo toho volat [IntuneMAMPolicy isURLAllowed:url isKnownManagedAppScheme:YES] toto schéma. Toto volání se vrátí NO , pokud zásady zablokují otevření adresy URL. Pokud vrátí hodnotu true, aplikace může volat canOpenURL() s prázdnou identitou a určit, 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 faceID ještě nepoužívá, ujistěte se, že klíč NSFaceIDUsageDescription Info.plist má nakonfigurovanou výchozí zprávu. Tento krok je nutný k tomu, aby iOS mohl dát uživateli vědět, jak má aplikace v úmyslu používat FaceID. Nastavení zásad ochrany aplikací Intune umožňuje, aby se FaceID použilo jako metoda pro přístup k aplikacím, když ho nakonfiguruje správce IT.

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

    Vlastnost Jak ho používat
    -já <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 místně upraví. Nástroj je idempotentní a při každé změně souboru Info.plist nebo nároků aplikace by se měl spustit znovu. Při aktualizaci sady Intune SDK byste si také měli stáhnout a spustit nejnovější verzi nástroje pro případ, že se v nejnovější verzi změnily požadavky na konfiguraci Info.plist.

Nastavení sestavení Xcode

Aplikace by měla mít možnost "Strip Swift Symbols" (STRIP_SWIFT_SYMBOLS) i "Enable Bitcode" (ENABLE_BITCODE) nastavená na NE.

Integrace přípony zprostředkovatele 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 , která je odstraněnou verzí sady SDK speciálně pro rozšíření poskytovatele souborů. Všimněte si, že se jedná o část, která není součástí uživatelského rozhraní přípony FileProvider. Budete muset integrovat úplnou sadu SDK do rozšíření uživatelského rozhraní poskytovatele souborů.

Pokud chcete integrovat jednu z těchto knihoven s příponou zprostředkovatele souborů, postupujte podle kroků pro integraci sady SDK jako statické knihovny, jak je znázorněno výše. Nezapomeňte zahrnout ContainingAppBundleId nastavení.

Integrace nereplikované přípony zprostředkovatele souborů

Vaše aplikace používá nereplikovaného zprostředkovatele souborů, pokud implementuje protokol NSFileProviderExtension. Všichni poskytovatelé souborů, kteří se vytvořili před iOSem 16.0, se nereplikují.

V – startProvidingItemAtURL:completionHandler: Zkontrolujte, jestli byste měli šifrovat soubory pomocí [[instance IntuneMAMPolicy]shouldFileProviderEncryptFiles]]. Pro skutečné šifrování souborů použijte rozhraní API encryptFile:forAccountId: v IntuneMAMFileProtectionManager. Pokud je vyžadováno šifrování, nasdílejte kopii souboru, protože nechcete ukládat šifrovanou kopii souboru do cloudového úložiště.

In – importDocumentAtURL:toParentItemIdentifier:completionHandler: Zkontrolujte, jestli je soubor šifrovaný pomocí isFileEncrytped: ROZHRANÍ API v IntuneMAMFileProtectionManager. Pokud je to pak dešifrování pomocí decryptFile:toCopyPath: ROZHRANÍ API IntuneMAMFileProtectionManager. V aplikacích s více identitou 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í replikovaného poskytovatele souborů

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

V – fetchContentsForItemWithIdentifier:version:request:completionHandler: Zkontrolujte, jestli byste měli šifrovat soubory pomocí [[Instance IntuneMAMPolicy]shouldFileProviderEncryptFiles]]. Pro skutečné šifrování souborů použijte rozhraní API encryptFile:forAccountId: v IntuneMAMFileProtectionManager. Pokud je vyžadováno šifrování, nasdílejte kopii souboru, protože nechcete ukládat šifrovanou kopii souboru do cloudového úložiště.

V – createItemBasedOnTemplate:fields:contents:options:request:completionHandler: Zkontrolujte, jestli je soubor šifrovaný pomocí isFileEncrypted: ROZHRANÍ API v IntuneMAMFileProtectionManager. Pokud je to pak dešifrování pomocí decryptFile:toCopyPath: ROZHRANÍ API IntuneMAMFileProtectionManager. V aplikacích s více identitou také zkontrolujte rozhraní API canReceiveSharedFile: v IntuneMAMPolicy cílového vlastníka a zjistěte, jestli vlastník může soubor přijmout.

Kdekoli, kde poskytovatel replikovaných souborů vytvoří a předá NSFileProviderItem do systému, zavolejte rozhraní API protectFileProviderItem:forAccountId: intuneMAMFileProtectionManager s identitou vlastníka položky. V závislosti na tom, kde je objekt NSFileProviderItem vytvořen a uložen v rámci vašeho rozšíření, možná budete muset provést v každé metody protokolu NSFileProviderReplicatedExtension.

Konfigurace nastavení sady 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.

Některá z těchto nastavení se možná probírala v předchozích částech a některá se nevztahují na všechny aplikace.

Nastavení Typ Vysvětlení Požadované?
ADALClientId String Identifikátor klienta Microsoft Entra aplikace. Povinné pro všechny aplikace.
ADALAuthority String Používá se autorita Microsoft Entra aplikace. Měli byste použít vlastní prostředí, ve kterém jsou nakonfigurované účty Microsoft Entra. Další informace najdete 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 Microsoft Entra. Pokud tato hodnota chybí, použije se společná autorita Microsoft Entra (která se podporuje jenom pro aplikace s více tenanty).
ADALRedirectUri String Identifikátor URI přesměrování Microsoft Entra aplikace Pro všechny aplikace se vyžaduje ADALRedirectUri nebo ADALRedirectScheme.
ADALRedirectScheme String Schéma přesměrování ID Microsoft Entra aplikace. 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. Pro všechny aplikace se vyžaduje ADALRedirectUri nebo ADALRedirectScheme.
ADALLogOverrideDisabled Boolean Určuje, jestli bude sada SDK směrovat všechny protokoly MSAL (včetně případných volání MSAL z aplikace) do vlastního souboru protokolu. Výchozí hodnota je NE. Nastavte na ANO, pokud aplikace nastaví 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 místo "com.microsoft.adalcache". Všimněte si, že nemá předponu app-id. To bude mít předponu zadaného řetězce za běhu. Volitelný parametr
AppGroupIdentifiers Pole řetězců Pole skupin aplikací z oddílu oprávnění aplikace com.apple.security.application-groups Vyžaduje se, pokud aplikace používá skupiny aplikací.
ContainingAppBundleId String Určuje ID sady prostředků aplikace obsahující rozšíření. Vyžaduje se pro rozšíření pro iOS.
AutoEnrollOnLaunch Boolean Určuje, jestli se aplikace má pokusit o automatickou registraci při spuštění, pokud je zjištěna existující spravovaná identita, která to ještě neudělala. Výchozí hodnota je NE.

Poznámky: Pokud se v mezipaměti MSAL nenajde žádná spravovaná identita nebo není k dispozici žádný platný token pro tuto identitu, pokus o registraci bezobslužně selže bez výzvy k zadání přihlašovacích údajů, pokud aplikace nenastavila mamPolicyRequired na ANO.
Volitelný parametr Výchozí hodnota je Ne.
MAMPolicyRequired Boolean Určuje, jestli se aplikaci zablokuje spuštění, pokud aplikace nemá zásady ochrany aplikací Intune. Výchozí hodnota je NE.

Poznámky: Aplikace se nedají odesílat do App Storu s MAMPolicyRequired nastavenou na ANO. Pokud nastavíte MAMPolicyRequired na ANO, autoEnrollOnLaunch by také mělo být nastaveno na ANO.
Volitelný parametr Výchozí hodnota je Ne.
MAMPolicyWarnAbsent Boolean Určuje, jestli aplikace při spuštění uživatele upozorní, pokud aplikace nemá zásady ochrany aplikací Intune.

Poznámka: I po zavření upozornění budou uživatelé moct používat aplikaci bez zásad.
Volitelný parametr Výchozí hodnota je Ne.
MultiIdentity Boolean Určuje, jestli aplikace využívá více identit. Volitelný parametr Výchozí hodnota je Ne.
SafariViewControllerBlockedOverride Boolean Zakáže připojení SafariViewController v Intune a povolí ověřování MSAL prostřednictvím SFSafariViewController, SFAuthSession nebo ASWebAuthSession.

Poznámka: Vlastnost tlačítka aktivity SFSafariViewControllerConfiguration není podporována spravovaným kontrolerem zobrazení Safari v Intune. Nakonfigurované tlačítko aktivity se zobrazí pouze v SafariViewController, pokud je zobrazení nespravované a SafariViewControllerBlockedOverride je nastavena na ano.
Volitelný parametr Výchozí hodnota je Ne. UPOZORNĚNÍ: Při nesprávném použití může dojít k úniku dat. Povolte pouze v případě, že je to nezbytně nutné. Další informace najdete v tématu Zvláštní aspekty při použití knihovny MSAL pro ověřování iniciované aplikací.
SplashIconFile
SplashIconFile~ipad
String Určuje soubor úvodní ikony (spuštění) Intune. Volitelný parametr
SplashDuration Číslo Minimální doba v sekundách, po kterou se při spuštění aplikace zobrazí úvodní obrazovka Intune. Výchozí hodnota je 1.5. Volitelný parametr
Barva pozadí String Určuje barvu pozadí součástí uživatelského rozhraní sady Intune SDK. Přijímá šestnáctkový řetězec RGB ve formě #XXXXXX, kde X může být v rozsahu 0-9 nebo A-F. Znak libry může být vynechán. Volitelný parametr Jako výchozí se použije barva pozadí systému, která se může lišit v různých verzích iOSu a v závislosti na nastavení tmavého režimu iOS.
Barva popředí String Určuje barvu popředí pro komponenty uživatelského rozhraní sady Intune SDK, například barvu textu. Přijímá šestnáctkový řetězec RGB ve formě #XXXXXX, kde X může být v rozsahu 0-9 nebo A-F. Znak libry může být vynechán. Volitelný parametr Výchozí hodnota je barva popisku systému, která se může lišit v různých verzích iOS a v závislosti na nastavení tmavého režimu iOS.
Zvýraznění barvy String Určuje barvu motivu pro komponenty uživatelského rozhraní sady Intune SDK, jako je barva textu tlačítka a barva zvýraznění pole PIN. Přijímá šestnáctkový řetězec RGB ve formě #XXXXXX, kde X může být v rozsahu 0-9 nebo A-F. Znak libry může být vynechán. Volitelný parametr Výchozí hodnota je systémová modrá.
SecondaryBackgroundColor String Určuje sekundární barvu pozadí obrazovek MTD. Přijímá šestnáctkový řetězec RGB ve formě #XXXXXX, kde X může být v rozsahu 0-9 nebo A-F. Znak libry může být vynechán. Volitelný parametr Výchozí hodnota je bílá.
SecondaryForegroundColor String Určuje sekundární barvu popředí pro obrazovky MTD, například barvu poznámky pod čarou. Přijímá šestnáctkový řetězec RGB ve formě #XXXXXX, kde X může být v rozsahu 0-9 nebo A-F. Znak libry může být vynechán. Volitelný parametr Výchozí hodnota je šedá.
SupportsDarkMode Boolean Určuje, jestli má barevné schéma uživatelského rozhraní sady Intune SDK sledovat nastavení tmavého režimu systému, pokud není nastavená žádná explicitní hodnota pro BackgroundColor/ForegroundColor/AccentColor. Volitelný parametr Výchozí hodnota je ano.
MAMTelemetryDisabled Boolean Určuje, jestli sada SDK neodesílá do back-endu žádná telemetrická data. Volitelný parametr Výchozí hodnota je Ne.
MAMTelemetryUsePPE Boolean Určuje, jestli sada MAM SDK bude odesílat data do back-endu telemetrie PPE. Tuto možnost použijte při testování aplikací pomocí zásad Intune, aby se testovací telemetrická data nemíchaly se zákaznickými daty. Volitelný parametr Výchozí hodnota je Ne.
MaxFileProtectionLevel String Umožňuje aplikaci určit maximum NSFileProtectionType , které může podporovat. Tato hodnota přepíše zásadu odeslanou službou, pokud je úroveň vyšší, než kterou může aplikace podporovat. Možné hodnoty: NSFileProtectionComplete, NSFileProtectionCompleteUnlessOpen, NSFileProtectionCompleteUntilFirstUserAuthentication, . NSFileProtectionNone Poznámka: S nejvyšší úrovní ochrany souborů (NSFileProtectionComplete) je přístup k chráněným souborům přístupný jenom v době, kdy je zařízení odemknuté. 10 sekund po uzamčení zařízení aplikace ztratí přístup k chráněným souborům. V některých případech to může způsobit ztrátu přístupu k interním komponentám (jako jsou databáze MySQL), což vede k neočekávanému chování. Doporučujeme, aby aplikace, které prezentují prvky uživatelského rozhraní zamykací obrazovky, nastavily tuto hodnotu na NSFileProtectionCompleteUntilFirstUserAuthentication. Volitelný parametr Výchozí hodnota je NSFileProtectionComplete.
OpenInActionExtension Boolean U možnosti Otevřít v rozšířeních akcí nastavte ano. Další informace najdete v části Sdílení dat prostřednictvím UIActivityViewController .
WebViewHandledURLSchemes Pole řetězců Určuje schémata adres URL, která zpracovává webview vaší aplikace. Vyžaduje se, pokud vaše aplikace používá WebView, které zpracovává adresy URL prostřednictvím odkazů nebo JavaScriptu.
DocumentBrowserFileCachePath String Pokud vaše aplikace používá UIDocumentBrowserViewController k procházení souborů u různých poskytovatelů souborů, můžete tuto cestu nastavit vzhledem k domovskému adresáři v sandboxu aplikace, aby sada Intune SDK do této složky vyřadila dešifrované spravované soubory. Volitelný parametr Výchozí hodnota je adresář /Documents/ .
VerboseLoggingEnabled Boolean Pokud je nastavená hodnota ANO, Intune se přihlásí v podrobném režimu. Volitelný parametr Výchozí hodnota je NE.
DokončitLaunchingAtStartup Boolean Pokud aplikace používá [BGTaskScheduler registerForTaskWithIdentifier:] , mělo by být toto nastavení nastaveno na ANO. Volitelný parametr Výchozí hodnota je NE.
ValuesToScrubFromLogging Pole řetězců Určuje hodnoty konfigurace aplikace, které se mají z protokolů vymýt. Alternativně valuesToScrubFromLogging vlastnost IntuneMAMSettings třída může mít pole řetězců pro stejné chování. Volitelný parametr

Příjem zásad ochrany aplikací

Přehled

Aby aplikace obdržely zásady ochrany aplikací Intune, musí iniciovat žádost o registraci ve službě Intune MAM. Aplikace je možné nakonfigurovat v Centru pro správu Intune tak, aby přijímaly zásady ochrany aplikací s registrací zařízení nebo bez ní. Správa mobilních aplikací (MAM) umožňuje spravovat aplikace přes Intune, aniž by bylo nutné zařízení zaregistrovat ve správě mobilních zařízení (MDM) Intune. V obou případech se k získání zásad vyžaduje registrace ve službě Intune MAM.

Důležité

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

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

Poznámka

Knihovna ADAL (Azure AD Authentication Library) a rozhraní Azure AD Graph API budou zastaralé. Další informace najdete v tématu Aktualizace aplikací tak, aby používaly knihovnu Microsoft Authentication Library (MSAL) a rozhraní Microsoft Graph API.

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

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

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

Voláním registerAndEnrollAccountId metody zaregistruje sada SDK uživatelský účet a pokusí se zaregistrovat aplikaci jménem tohoto účtu. Pokud se registrace z nějakého důvodu nezdaří, sdk se o 24 hodin později automaticky pokusí registraci zopakovat. 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 normálně fungovat. Pokud je registrace úspěšná, sada SDK uživatele upozorní, že se vyžaduje restartování aplikace. V té době může uživatel aplikaci okamžitě restartovat.

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

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

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

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

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

Pokud registrace selže, měla by aplikace v závislosti na podrobnostech o selhání zvážit další volání tohoto rozhraní API. 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 normálně fungovat. Pokud je registrace úspěšná, sada SDK uživatele upozorní, že se vyžaduje restartování aplikace. Jakmile je aplikace spravovaná, je potřeba zadat dotaz na hodnotu ID objektu IntuneMAMEnrollmentManagerEntra pomocí enrolledAccountId příkazu . Tuto možnost použijte pro všechna rozhraní API sady MAM SDK, která aplikace používá pro tento zaregistrovaný účet.

Příklad:

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

Nechat Intune zpracovávat 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 spuštěním aplikace a vaše aplikace vždy vyžaduje zásady aplikace, nemusíte používat loginAndEnrollAccount rozhraní API. Dvě níže uvedená nastavení můžete jednoduše nastavit na ANO ve slovníku IntuneMAMSettings v souboru Info.plist aplikace.

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

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

Poznámka: Aplikace se nedají odesílat do App Storu s MAMPolicyRequired nastavenou na ANO. Pokud nastavíte MAMPolicyRequired na ANO, autoEnrollOnLaunch by také mělo být nastaveno na ANO.

Pokud pro svoji aplikaci zvolíte tuto možnost, nemusíte po registraci restartovat aplikaci.

Zrušit registraci uživatelských účtů

Než se uživatel odhlásí z aplikace, měla by aplikace zrušit registraci uživatele v sadě SDK. Tím zajistíte:

  1. Pro účet uživatele už nebudou probíhat opakované pokusy o registraci.

  2. Zásady ochrany aplikací se odeberou.

  3. Veškerá podniková data se odstraní, pokud aplikace zahájí selektivní vymazání (volitelné).

Než se uživatel odhlásí, měla by aplikace v instanci volat následující metodu IntuneMAMEnrollmentManager :

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

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

Pokud aplikace odstraní podniková data uživatele sama o sobě, 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 registraci
  • Žádosti o aktualizaci zásad
  • Žádosti o zrušení registrace

Oznámení se zobrazují prostřednictvím metod delegáta v nástroji 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 IntuneMAMEnrollmentStatus vrátí objekt, který obsahuje následující informace:

  • AccountId (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 požadavku
  • Řetězec chyby s popisem stavového kódu
  • Objekt NSError . Tento objekt je definován v IntuneMAMEnrollmentStatus.hsouboru spolu s konkrétními stavovými kódy, které lze vrátit.

Ukázkový kód

Následuje příklad implementace metod delegáta:

- (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 poprvé obdrží zásady MAM, musí se restartovat, aby se použily požadované háčky. Aby byla aplikace upozorněna na to, že je potřeba provést restartování, poskytuje sada SDK metodu delegáta v IntuneMAMPolicyDelegate.hnástroji .

 - (BOOL) restartApplication

Vrácená hodnota této metody říká sadě SDK, jestli musí aplikace zpracovat požadované restartování:

  • Pokud je vrácena hodnota true, musí aplikace provést restartování.

  • Pokud je vrácena hodnota false, sada SDK po vrácení této metody restartuje aplikaci. Sada SDK okamžitě zobrazí dialogové okno s pokynem uživateli, aby aplikaci restartoval.

Kritéria ukončení

Jakmile nakonfigurujete modul plug-in sestavení nebo integrujete nástroj příkazového řádku do procesu sestavení, ověřte, že je úspěšně spuštěný:

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

V tomto okamžiku integrace teď vaše aplikace může přijímat a vynucovat zásady ochrany aplikací. Provedením následujících testů ověřte integraci.

První test aplikace zásad

Nejprve spusťte následující test, abyste se seznámili s úplným prostředím koncového uživatele aplikace zásad v rámci vaší aplikace:

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

Tento seznam kroků je *holým minimem- testem, který ověří, že vaše aplikace správně zaregistruje účet, zaregistruje zpětné volání ověřování a zruší registraci účtu. Provedením následujících testů důkladněji ověřte, jak ostatní nastavení zásad ochrany aplikací mění chování vaší aplikace.

Další kroky

Po dokončení všech kritérií ukončení pokračujte do fáze 4: Funkce účasti v aplikacích.