Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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:
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:
Propojte buď
IntuneMAMSwift.xcframeworkneboIntuneMAMStatic.xcframeworks cílem: Přetáhněte balíček xcframework do seznamu Frameworky, Knihovny a Vložený obsah cíle projektu. Opakujte tyto kroky proIntuneMAMSwiftStub.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.
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
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>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:
Pokud vaše mobilní aplikace nemá definované žádné přístupové skupiny řetězců klíčů, přidejte ID sady jako první skupinu aplikace.
Přidejte skupinu
com.microsoft.intune.mamsdí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.Přidat
com.microsoft.adalcachedo existujících přístupových skupin.
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.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.
Zahrňte každý protokol, kterému vaše aplikace předává
UIApplication canOpenURL, doLSApplicationQueriesSchemespole souboru Info.plist vaší aplikace. Pro každý protokol uvedený v tomto poli přidejte kopii protokolu připojeného k-intunemampoli. Do matice také přidejte tyto hodnoty:http-intunemam,https-intunemam,microsoft-edge-http-intunemam,smart-nswanderalacoonsecuritylookoutwork-aseskycurezipsmicrosoft-edge-https-intunemamsmsecmvisionmobilebetteractiveshieldscmxa .intunemam-mtdPokud vaše aplikace používá protokol mailto: , přidejtems-outlook-intunemamtaké 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 volatcanOpenURL()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]; }]; }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.
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:
U účtu uživatele už nedochází k opakování registrace.
Zásady Ochrana aplikací se odeberou.
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 vIntuneMAMEnrollmentStatus.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:
- 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".
- 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.
- Přiřaďte zásady ochrany aplikací skupině uživatelů, která obsahuje váš testovací účet.
- Nainstalujte aplikaci.
- Přihlaste se ke své aplikaci pomocí testovacího účtu, na který cílí zásady ochrany aplikací.
- 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.
- Když se zobrazí výzva k nastavení PIN kódu aplikace, vytvořte PIN kód.
- Odhlaste spravovaný účet z aplikace.
- 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.