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
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č macOS s Xcode 16.0 nebo novějším.
Vaše aplikace musí být určená pro iOS 16.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, abyste povolili správu Intune klientských aplikací. Někteří vývojáři ale můžou upřednostňovat výhody výkonu statické architektury (IntuneMAMStatic.xcframework).
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í, výsledkem propojení statické architektury s aplikací a rozšíření bude 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é architektury můžou aplikace a rozšíření sdílet stejnou Intune binární soubor sady SDK, což vede k menší velikosti aplikace.
IntuneMAMSwiftStub.xcframework: Architektura swiftu se sadou Intune App SDK. Tato architektura je povinnou závislostí IntuneMAMSwift.xcframework i 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 ji odeberou.
Jak sada Intune App SDK funguje
Cílem sady Intune App SDK pro iOS je přidat do aplikací pro iOS funkce správy 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:
Sestavení sady SDK do mobilní aplikace
Důležité
Intune pravidelně vydává aktualizace sady Intune App SDK. Pravidelně kontrolujte aktualizace v sadě Intune App SDK pro iOS a začleňujte je do cyklu vydávání verzí softwaru, abyste zajistili, že vaše aplikace podporují nejnovější nastavení zásad ochrany aplikací.
Pokud chcete povolit sadu Intune App SDK, postupujte takto:
Propojit nebo
IntuneMAMSwift.xcframeworkIntuneMAMStatic.xcframeworks cílem: Přetáhněte sadu xcframework do seznamu Architektury, Knihovny a Vložený obsah cílového projektu. Opakujte tento postup proIntuneMAMSwiftStub.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.
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í ř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>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 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ů:
Pokud vaše mobilní aplikace nemá definované žádné přístupové skupiny řetězce klíčů, přidejte ID sady prostředků aplikace jako první skupinu.
Přidejte sdílenou skupinu
com.microsoft.intune.mamřetězce klíčů do stávajících přístupových skupin. Sada Intune App SDK používá tuto přístupovou skupinu k ukládání dat.Přidejte
com.microsoft.adalcachedo stávajících přístupových skupin.
Poznámka
Pokud jste nakonfigurovali knihovnu MSAL tak, aby místo výchozí
com.microsoft.adalcacheskupiny používala vlastní přístupovou skupinu řetězce klíčů, nemusíte tuto přístupovou skupinu řetězce klíčů zadávat. Místo toho zadejte vlastní skupinu řetězce klíčů. Měli byste také nakonfigurovat Intune tak, aby používaly 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 použití uživatelského rozhraní Xcode k vytvoření přístupových skupin řetězce klíčů použijte před tyto přístupové skupiny
$(AppIdentifierPrefix)ř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 pro vaši mobilní aplikaci jedinečný. Používá se 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í sdílení řetězce klíčů (krok 3) by mělo způsobit, že Xcode ho vygeneroval pro vaši aplikaci. Ujistěte se, že ID sady prostředků aplikace je první položkou v seznamu.
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 přidejte kopii protokolu připojeného-intunemamk poli. Do pole přidejte také tyto hodnoty:http-intunemam,https-intunemam,microsoft-edge-http-intunemam,microsoft-edge-https-intunemam,smart-ns,zips,lacoonsecurity,betteractiveshieldskycurelookoutwork-asewandera, ,mvisionmobilesmsec, ,scmxa .intunemam-mtdPokud vaše aplikace používá protokol mailto: , přidejtems-outlook-intunemamtaké do pole . Než budete pokračovat k dalšímu kroku, uložte změny.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 SADY MAM SDK. Když aplikace odebere "scheme-intunemam" ze seznamu LSApplicationQueriesSchemes,
canOpenURL()může pro tato schémata vrátit nesprávné odpovědi. Pokud chcete tento problém vyřešit, volejte[IntuneMAMPolicy isURLAllowed:url isKnownManagedAppScheme:YES]místo toho 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 volatcanOpenURL()s prázdnou identitou a zjistit, 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 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 použít FaceID jako metodu pro přístup k aplikacím, když ji nakonfiguruje správce IT.
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 -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 místně upraví. Nástroj je idempotentní a měl by se znovu spustit, kdykoli provedete změny v souboru Info.plist nebo nárocích aplikace. Při aktualizaci sady INTUNE SDK byste 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.
Poznámka
Pokud máte aplikaci SwiftUI, ujistěte se, že UISceneConfigurations slovník v UIApplicationSceneManifest souboru Info.pist nechybí nebo není prázdný. Selhání konfigurace tohoto nastavení může bránit sadě Intune SDK v ochraně vaší aplikace i přes úspěšné použití zásad ochrany aplikací.
Pokud pro objekt 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 sestavení Xcode
Aplikace by měla mít v nastavení sestavení Xcode nastavenou hodnotu "Strip Swift Symbols" (STRIP_SWIFT_SYMBOLS) i "Enable Bitcode" (ENABLE_BITCODE). Pokud vaše aplikace obsahuje možnost rozšířeného zabezpečení, která je k dispozici v Xcode 26 nebo novějším, musíte zakázat možnosti "Ověřovat ukazatele" a "Povolit paměť platformy jen pro čtení".
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, což je odstraněná verze sady SDK speciálně pro rozšíření poskytovatele souborů. Všimněte si, že tato knihovna je určena pro část, která není součástí uživatelského rozhraní přípony FileProvider. Potřebujete integrovat úplnou sadu SDK do přípony uživatelského rozhraní poskytovatele souborů.
Pokud chcete integrovat jednu z těchto knihoven s příponou zprostředkovatele souborů, postupujte podle pokynů pro integraci sady SDK jako statické knihovny. 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 nereplicitují.
In – 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ě.
V – importDocumentAtURL:toParentItemIdentifier:completionHandler: Zkontrolujte, jestli je soubor šifrovaný pomocí rozhraní API isFileEncrytped: v IntuneMAMFileProtectionManager. Pokud ano, dešifrujte ho pomocí rozhraní API decryptFile:toCopyPath: 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í rozhraní API isFileEncrypted: v IntuneMAMFileProtectionManager. Pokud ano, dešifrujte ho pomocí rozhraní API decryptFile:toCopyPath: 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
Slovník IntuneMAMSettings v souboru Info.plist aplikace můžete použít k nastavení a konfiguraci sady Intune App SDK. 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 se věnují některým z těchto nastavení 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 Microsoft Entra autorita 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 Microsoft Entra tenanta. Pokud tato hodnota chybí, použije se společná autorita Microsoft Entra (podporuje se jenom u víceklientských aplikací). |
| 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í Microsoft Entra ID 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 sada SDK směruje 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" Systém předponu automaticky vytvoří za běhu. |
Volitelný parametr |
| AppGroupIdentifiers | Pole řetězců | Pole skupin aplikací z oddílu oprávnění com.apple.security.application-groups aplikace |
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 má aplikace pokusit o automatickou registraci při spuštění, pokud se zjistí existující spravovaná identita, která to ještě neudělala. Výchozí hodnota je NE. Poznámka: Pokud se v mezipaměti MSAL nenajde žádná spravovaná identita nebo není k dispozici žádný platný token, registrace bezobslužně selže, pokud MAMPolicyRequired není ano. |
Volitelný parametr Výchozí hodnota je NE. |
| MAMPolicyRequired | Boolean | Určuje, jestli má aplikace blokované spuštění, pokud nemá zásady ochrany aplikací Intune. Výchozí hodnota je NE. Poznámka: Aplikace se nedají odesílat do App Store s tímto nastavením na HODNOTU ANO. Když ji nastavíte na ANO, AutoEnrollOnLaunch měla by 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é Intune zásady ochrany aplikací. Poznámka: Uživatelé můžou pokračovat i po zavření upozornění. |
Volitelný parametr Výchozí hodnota je NE. |
| MultiIdentity | Boolean | Určuje, jestli aplikace využívá více identit. Další informace najdete v dokumentaci k více identitě. | Volitelný parametr Výchozí hodnota je NE. |
| MultiIdentityCancelDisabled | Boolean | Zakáže tlačítko Zrušit na Intune obrazovkách podmíněného spuštění uživatelského rozhraní v aplikacích s více identitami. Pokud není nastavená hodnota ANO, musí aplikace zpracovat IntuneMAMSwitchIdentityResultCanceled kód selhání. Viz Přepnutí identit. |
Volitelný parametr Výchozí hodnota je NE. |
| SafariViewControllerBlockedOverride | Boolean | Zakáže háky SafariViewController Intune a povolí ověřování MSAL prostřednictvím SFSafariViewController, SFAuthSession nebo ASWebAuthSession. Poznámka: Tlačítko nakonfigurované aktivity se zobrazí jenom v případě, že je zobrazení nespravované a je nastavené 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. |
| SplashIconFile SplashIconFile~ipad |
String | Určuje soubor Intune úvodní (spouštěcí) ikony. | Volitelný parametr |
| SplashDuration | Číslo | Minimální doba v sekundách, po kterou se zobrazí Intune úvodní obrazovka. Výchozí hodnota je 1.5. | Volitelný parametr |
| Backgroundcolor | String | Určuje barvu pozadí pro součásti uživatelského rozhraní sady Intune SDK. Přijímá #XXXXXX nebo šestnáctkovou hodnotu bez znaku libry. |
Volitelný parametr Ve výchozím nastavení je nastavená barva pozadí systému. |
| Barva popředí | String | Určuje barvu popředí a textu pro součásti uživatelského rozhraní. Přijímá #XXXXXX nebo šestnáctky bez znaku libry. |
Volitelný parametr Výchozí hodnota je barva popisku systému. |
| Zvýraznění barvy | String | Určuje barvu motivu pro komponenty uživatelského rozhraní (tlačítka, zvýraznění pole PIN kódu). Přijímá #XXXXXX nebo šestnáctky 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 šestnáctky 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 šestnáctky bez znaku libry. |
Volitelný parametr Výchozí hodnota je šedá. |
| SupportsDarkMode | Boolean | Určuje, jestli se barvy uživatelského rozhraní řídí tmavým režimem systému, když nejsou nastavené explicitní barvy. | Volitelný parametr Výchozí hodnota je ANO. |
| MAMTelemetryDisabled | Boolean | Určuje, jestli se telemetrie odesílá do back-endu. | Volitelný parametr Výchozí hodnota je NE. |
| MAMTelemetryUsePPE | Boolean | Odesílá telemetrii do back-endu PPE. Užitečné pro testování aplikací, aby se data nemíchaly se zákaznickými daty. | Volitelný parametr Výchozí hodnota je NE. |
| MaxFileProtectionLevel | String | Určuje maximální podporu NSFileProtectionType aplikace. Přepíše zásady, pokud služba odesílá vyšší úroveň.Možné hodnoty: NSFileProtectionComplete, NSFileProtectionCompleteUnlessOpen, NSFileProtectionCompleteUntilFirstUserAuthentication, . NSFileProtectionNoneOznámení: Při NSFileProtectionCompletepoužití aplikace ztratí přístup k chráněným souborům přibližně 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 možnosti Otevřít v rozšířeních akcí nastavte ano. Viz Sdílení dat přes UIActivityViewController. | Volitelný parametr |
| TreatAllWebViewsAsUnmanaged | Boolean | Považuje všechna zobrazení WebView za nespravovaná pro vynucení 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á webovým zobrazením aplikace. | Vyžaduje se, pokud webview zpracovává odkazy nebo navigaci v JavaScriptu. |
| DocumentBrowserFileCachePath | String | Pokud používáte , UIDocumentBrowserViewControllernastavte cestu (relativní 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. |
| DokončitLaunchingAtStartup | Boolean | Povinné při použití metody [BGTaskScheduler registerForTaskWithIdentifier:]musí být ANO. |
Volitelný parametr Výchozí hodnota je NE. |
| ValuesToScrubFromLogging | Pole řetězců | Hodnoty konfigurace aplikace, které by měly být odebrány z protokolů. Lze také nastavit přes valuesToScrubFromLogging .IntuneMAMSettings |
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 pomocí Intune bez nutnosti registrace zařízení ve správě Intune mobilních zařízení (MDM). V obou případech se k získání zásad vyžaduje registrace ve službě Intune MAM.
Důležité
Sada Intune App SDK pro iOS používá 256bitové šifrovací klíče, když je šifrování povolené zásadami ochrany aplikací. Všechny aplikace musí mít aktuální verzi sady SDK, aby bylo možné chráněné sdílení dat.
Aplikace, které už používají 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 MSAL (Identity a ověřování Microsoftu) a 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 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 zpět výsledek v objektu MSALResult. Jako parametr accountId pro rozhraní API použijte parametr tenantProfile.identifier v 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 automaticky opakuje registraci 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 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í, které pomáhají 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 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 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 s existujícím spravovaným uživatelem na zařízení (pokud 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á, musí být hodnota ID objektu Microsoft Entra dotazována pomocí příkazu enrolledAccountId .IntuneMAMEnrollmentManager 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"];
Nechte 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 tím, než se aplikace spustí, a vaše aplikace vždy vyžaduje zásady ochrany aplikací, nemusíte používat loginAndEnrollAccount rozhraní API. 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 se zjistí 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 bez výzvy k zadání přihlašovacích údajů, pokud aplikace také nenastaví MAMPolicyRequired hodnotu ANO. |
| MAMPolicyRequired | Boolean | Určuje, jestli má aplikace zablokované spuštění, pokud aplikace nemá Intune zásady ochrany aplikací. Výchozí hodnota je NE. Poznámka: Aplikace se nedají odesílat do App Store s nastaveným MAMPolicyRequired na ANO. Pokud nastavíteMAMPolicyRequired ano, AutoEnrollOnLaunch mělo by být také 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. Tento proces zajišťuje:
Opakované pokusy o registraci u účtu uživatele už neprobívají.
Ochrana aplikací zásady se odeberou.
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 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 tokenů Microsoft Entra uživatelského účtu. Sada SDK potřebuje tokeny Microsoft Entra uživatelského účtu, aby jménem uživatele zasílala konkrétní požadavky na službu Intune MAM.
Pokud aplikace sama odstraní podniková data uživatele, 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 této akce 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 vIntuneMAMEnrollmentStatus.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 restartuje aplikaci po vrácení této metody. Sada SDK okamžitě zobrazí dialogové okno s pokynem uživateli, aby aplikaci restartoval.
Poznámka
Aplikace .NET MAUI nevyžadují restartování.
Kritéria ukončení
Po nakonfigurování modulu plug-in sestavení nebo integraci nástroje 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 kompilovanou aplikaci, přihlaste se pomocí Microsoft Entra uživatele, na kterého zásady ochrany aplikací cílí, a ověřte, že aplikace funguje podle očekávání.
- Odhlaste se a zopakujte tento test s Microsoft Entra uživatelem, na kterého cílí zásady ochrany aplikací, a ověřte, že je aplikace teď spravovaná 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:
- 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".
- 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.
- Přiřaďte zásady ochrany aplikací skupině uživatelů obsahující váš testovací účet.
- Nainstalujte aplikaci.
- Přihlaste se k aplikaci pomocí svého testovacího účtu, na který cílí zásady ochrany aplikací.
- Potvrďte, že se zobrazí výzva s Intune spravovanou obrazovkou a potvrzením výzvy aplikaci restartujte. Tato obrazovka označuje, že sada SDK úspěšně načte zásady pro tento účet.
- Po zobrazení výzvy k nastavení PIN kódu aplikace vytvořte PIN kód.
- Odhlaste spravovaný účet z aplikace.
- 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.