3. szakasz: SDK-integráció Intune az iOS-alkalmazásba
Megjegyzés:
Ez az útmutató több különböző szakaszra oszlik. Először tekintse át az Integráció megtervezése című témakört.
Szakasz Goals
- Töltse le a Intune App SDK-t.
- Megtudhatja, hogy milyen fájlokat tartalmaz a Intune App SDK.
- Hivatkozzon az alkalmazásban található Intune App SDK-ra.
- Ellenőrizze, hogy a Intune App SDK megfelelően szerepel-e a buildben.
- Regisztráljon új fiókokat a MAM-felügyelethez az MSAL-hitelesítés után.
- A vállalati adatok eltávolításához törölje a fiókok regisztrációját a kijelentkezéskor
- (Ajánlott) A MAM-naplózás beépítése az alkalmazásba.
Előfeltételek
Szüksége van egy macOS-számítógépre, amelyen telepítve van az Xcode 14.0-s vagy újabb verziója.
Az alkalmazásnak az iOS 14.0-s vagy újabb verziójára kell irányulnia.
Tekintse át az Intune App SDK for iOS licencfeltételeit. Nyomtassa ki és őrizze meg a rekordok licencfeltételeinek másolatát. Az iOS-hez készült Intune App SDK letöltésével és használatával elfogadja az ilyen licencfeltételeket. Ha nem fogadja el őket, ne használja a szoftvert.
Töltse le az iOS-hez készült Intune App SDK fájljait a GitHubon.
Az SDK-adattárban található elemek
IntuneMAMSwift.xcframework: A Intune App SDK dinamikus keretrendszere. Javasoljuk, hogy csatolja ezt a keretrendszert az alkalmazáshoz/bővítményekhez, hogy lehetővé tegye Intune ügyfélalkalmazás-kezelést. Egyes fejlesztők azonban előnyben részesíthetik a statikus keretrendszer (IntuneMAMStatic.xcframework) teljesítménybeli előnyeit. Lásd alább.
IntuneMAMStatic.xcframework: A Intune App SDK statikus keretrendszere. A fejlesztők dönthetnek úgy, hogy a dinamikus keretrendszer helyett a statikus keretrendszert kapcsolják össze. Mivel a statikus keretrendszerből származó végrehajtható kód közvetlenül az alkalmazás/bővítmény bináris fájljába van beágyazva a buildeléskor, a statikus kódtár használata néhány indítási idejű teljesítménybeli előnnyel jár. Ha azonban az alkalmazás bármilyen bővítményt tartalmaz, a statikus keretrendszer és a bővítmények összekapcsolása nagyobb alkalmazáscsomag-méretet eredményez, mivel a végrehajtható kód beágyazódik az egyes alkalmazás-/bővítmény bináris fájlokba. Ezzel szemben a dinamikus keretrendszer használatakor az alkalmazások és a bővítmények ugyanazt a Intune SDK bináris fájlt használhatják, ami kisebb alkalmazásméretet eredményez.
IntuneMAMSwiftStub.xcframework: A Intune App SDK Swift Stub keretrendszer. Ez a keretrendszer az IntuneMAMSwift.xcframework és az IntuneMAMStatic.xcframework kötelező függősége, amelyet az alkalmazásoknak/bővítményeknek össze kell kapcsolniuk.
IntuneMAMConfigurator: Az alkalmazás vagy bővítmény Info.plist fájljának konfigurálására szolgáló eszköz, amely a Intune felügyeletéhez minimálisan szükséges módosításokkal rendelkezik. Az alkalmazás vagy a bővítmény működésétől függően előfordulhat, hogy további manuális módosításokat kell végeznie az Info.plist webhelyen.
libIntuneMAMSwift.xcframework: A Intune App SDK statikus könyvtára. A Intune MAM iOS SDK ezen változata elavult, és egy későbbi frissítésben el lesz távolítva. Javasoljuk, hogy ne csatolja a statikus kódtárat, hanem csatolja az alkalmazást/bővítményeket a korábban említett dinamikus keretrendszerhez (IntuneMAMSwift.xcframework) vagy statikus keretrendszerhez (IntuneMAMStatic.xcframework).
IntuneMAMResources.bundle: Az SDK által használt erőforrásokat tartalmazó erőforráscsomag. Az erőforráscsomag csak az elavult statikus kódtárat (libIntuneMAMSwift.xcframework) integráló alkalmazásokhoz szükséges, és egy későbbi frissítésben el lesz távolítva.
A Intune App SDK működése
Az iOS-hez készült Intune App SDK célja, hogy minimális kódmódosítással adjon hozzá felügyeleti képességeket az iOS-alkalmazásokhoz. Minél kevesebb kódot módosít a kód, annál kevesebb idő áll rendelkezésre a piacra, de a mobilalkalmazás konzisztenciájának és stabilitásának befolyásolása nélkül.
Folyamat
Az alábbi ábrán az iOS-hez készült App SDK Intune folyamat látható:
Az SDK létrehozása a mobilalkalmazásba
Fontos
Intune rendszeresen ad ki frissítéseket a Intune App SDK-hoz. Rendszeresen ellenőrizze az iOS-hez készült Intune App SDK-t a frissítésekért, és foglalja bele a szoftverfejlesztési kiadási ciklusba, hogy az alkalmazások támogatják a legújabb alkalmazásvédelmi szabályzat beállításait.
A Intune App SDK engedélyezéséhez kövesse az alábbi lépéseket:
IntuneMAMSwift.xcframework
Csatolás vagyIntuneMAMStatic.xcframework
a célhoz: Húzza az xcframework csomagot a projektcél Keretrendszerek, Könyvtárak és Beágyazott tartalom listájára. Ismételje meg ezeket a lépéseket a következőhöz:IntuneMAMSwiftStub.xcframework
. A fő alkalmazás esetében válassza a "Beágyazás & Aláírás" lehetőséget a "Beágyazás" oszlopban mindkét hozzáadott xcframeworks esetében. A bővítmények esetében válassza a "Nincs beágyazás" lehetőséget.Adja hozzá ezeket az iOS-keretrendszereket a projekthez:
- MessageUI.framework
- Security.framework
- CoreServices.framework
- SystemConfiguration.framework
- libsqlite3.tbd
- libc++.tbd
- ImageIO.framework
- LocalAuthentication.framework
- AudioToolbox.framework
- QuartzCore.framework
- WebKit.framework
- MetricKit.framework
Engedélyezze a kulcsláncmegosztást (ha még nincs engedélyezve) az egyes projektcélokban a Képességek lehetőséget választva és a Kulcsláncmegosztás kapcsoló engedélyezésével. A kulcslánc megosztására azért van szükség, hogy továbblépjen a következő lépésre.
Megjegyzés:
A kiépítési profilnak támogatnia kell az új kulcsláncmegosztási értékeket. A kulcslánc-hozzáférési csoportoknak helyettesítő karaktert kell támogatniuk. Ennek ellenőrzéséhez nyissa meg a .mobileprovision fájlt egy szövegszerkesztőben, keresse meg a kulcslánc-hozzáférés-csoportokat, és győződjön meg arról, hogy helyettesítő karakterrel rendelkezik. Például:
<key>keychain-access-groups</key> <array> <string>YOURBUNDLESEEDID.*</string> </array>
A kulcsláncmegosztás engedélyezése után a lépéseket követve hozzon létre egy külön hozzáférési csoportot, amelyben a Intune App SDK tárolja az adatait. Kulcslánc-hozzáférési csoportot a felhasználói felületen vagy a jogosultságok fájl használatával hozhat létre. Ha a felhasználói felületet használja a kulcskarika-hozzáférési csoport létrehozásához, kövesse az alábbi lépéseket:
Ha a mobilalkalmazásban nincs definiálva kulcslánc-hozzáférési csoport, első csoportként adja hozzá az alkalmazás csomagazonosítóját.
Adja hozzá a megosztott kulcslánccsoportot
com.microsoft.intune.mam
a meglévő hozzáférési csoportokhoz. A Intune App SDK ezt a hozzáférési csoportot használja az adatok tárolására.Adja hozzá
com.microsoft.adalcache
a meglévő hozzáférési csoportokhoz.Ha közvetlenül szerkeszti a jogosultságok fájlját, ahelyett, hogy a fent látható Xcode felhasználói felület használatával hoz létre kulcskarika-hozzáférési csoportokat, a kulcskarika-hozzáférési csoportokat a következővel kell előtagolnia
$(AppIdentifierPrefix)
(ezt az Xcode automatikusan kezeli). Például:$(AppIdentifierPrefix)com.microsoft.intune.mam
$(AppIdentifierPrefix)com.microsoft.adalcache
Megjegyzés:
A jogosultságfájl a mobilalkalmazás egyedi XML-fájlja. Speciális engedélyek és képességek megadására szolgál az iOS-alkalmazásban. Ha az alkalmazás korábban nem rendelkezett jogosultságfájllal, a kulcsláncmegosztás engedélyezésének (3. lépés) az Xcode-nak kellett volna létrehoznia egyet az alkalmazáshoz. Győződjön meg arról, hogy az alkalmazás csomagazonosítója a lista első bejegyzése.
Az alkalmazás Info.plist fájljának tömbjében
LSApplicationQueriesSchemes
minden olyan protokollt belefoglalhat, amelyet az alkalmazás átadUIApplication canOpenURL
. A tömbben felsorolt protokollok esetében a hozzáfűzött protokoll másolatát-intunemam
is hozzá kell adni a tömbhöz. Emellett,http-intunemam
,https-intunemam
,microsoft-edge-http-intunemam
,microsoft-edge-https-intunemam
smart-ns
,zips
,lacoonsecurity
,wandera
,lookoutwork-ase
, ,skycure
,betteractiveshield
,mvisionmobile
smsec
scmx
ésintunemam-mtd
hozzá kell adni a tömbhöz. Ha az alkalmazás a mailto: protokollt használja,ms-outlook-intunemam
akkor a tömbhöz is hozzá kell adni. Mielőtt továbblép a következő lépésre, mentse a módosításokat.Ha az alkalmazásnak elfogy a szabad területe az LSApplicationQueriesSchemes listában, eltávolíthatja az "-intunemam" sémákat az olyan alkalmazások esetében, amelyekről ismert, hogy implementálják a Intune MAM SDK-t is. Ha az alkalmazás eltávolítja a "scheme-intunemam" elemet az LSApplicationQueriesSchemes listából, előfordulhat,
canOpenURL()
hogy helytelen válaszokat ad vissza ezekre a sémákra vonatkozóan. A probléma megoldásához az alkalmazásnak ehhez a sémához kell hívnia[IntuneMAMPolicy isURLAllowed:url isKnownManagedAppScheme:YES]
. Ez a hívás akkor adNO
vissza, ha a szabályzat letiltja az URL-cím megnyitását. Ha igaz értéket ad vissza, akkor az alkalmazás meghívhatcanOpenURL()
egy üres identitást, hogy megállapítsa, megnyitható-e az URL-cím. Például:BOOL __block canOpen = NO; if([policy isURLAllowed:urlForKnownManagedApp isKnownManagedAppScheme:YES]) { [[IntuneMAMPolicyManager instance] setCurrentThreadAccountId:"" forScope:^{ canOpen = [[UIApplication sharedApplication] canOpenURL:urlForKnownManagedApp]; }]; }
Ha az alkalmazás még nem használja a FaceID-t, győződjön meg arról, hogy az NSFaceIDUsageDescription Info.plist kulcs alapértelmezett üzenettel van konfigurálva. Erre a lépésre azért van szükség, hogy az iOS tudassa a felhasználóval, hogy az alkalmazás hogyan kívánja használni a FaceID-t. Az Intune alkalmazásvédelmi szabályzatbeállítás lehetővé teszi a FaceID használatát az alkalmazás-hozzáférés módszereként, ha a rendszergazda konfigurálja.
Az SDK-adattárban található IntuneMAMConfigurator eszközzel fejezze be az alkalmazás Info.plist fájljának konfigurálását. Az eszköznek három paramétere van:
Tulajdonság A használata -én <Path to the input plist>
- e <Path to the entitlements file>
- o (Nem kötelező) <Path to the output plist>
Ha a -o paraméter nincs megadva, a bemeneti fájl helyben módosul. Az eszköz idempotens, és az alkalmazás Info.plist vagy jogosultságainak módosításakor újra kell futtatni. A Intune SDK frissítésekor az eszköz legújabb verzióját is le kell töltenie és futtatnia arra az esetre, ha az Info.plist konfigurációs követelményei módosultak volna a legújabb kiadásban.
Az Xcode buildbeállításai
Az alkalmazásnak a "Strip Swift Symbols" (STRIP_SWIFT_SYMBOLS) és a "Bitcode engedélyezése" (ENABLE_BITCODE) beállításnak egyaránt NEM értékűnek kell lennie.
Fájlszolgáltatói bővítmény integrálása
A fájlszolgáltatói bővítmények bizonyos memóriakövetelményekkel rendelkeznek, amelyek megnehezíthetik a teljes SDK integrálását. Ennek megkönnyítése érdekében létezik egy statikus kódtár libIntuneMAMSwiftFileProvider.xcframework
, amely az SDK lecsupaszított verziója, kifejezetten fájlszolgáltatói bővítményekhez. Vegye figyelembe, hogy ez a FileProvider bővítmény nem felhasználói felületi részéhez tartozik. A teljes SDK-t integrálnia kell a fájlszolgáltató felhasználói felületi bővítményébe.
Ha a kódtárak egyikét a fájlszolgáltatói bővítménnyel szeretné integrálni, kövesse az SDK statikus kódtárként való integrálásának lépéseit a fent látható módon. Mindenképpen adja ContainingAppBundleId
meg a beállítást.
Nem replikált fájlszolgáltatói bővítmény integrálása
Az alkalmazás nem replikált fájlszolgáltatót használ, ha implementálja az NSFileProviderExtension protokollt. Az iOS 16.0 előtt létrehozott összes fájlszolgáltató nincs replikálva.
In - startProvidingItemAtURL:completionHandler: ellenőrizze, hogy titkosítsa-e a fájlokat az [[IntuneMAMPolicy instance]shouldFileProviderEncryptFiles]] paranccsal. A tényleges fájltitkosításhoz használja az encryptFile:forAccountId: API-t az IntuneMAMFileProtectionManagerben. Emellett ossza meg a fájl egy példányát, ha titkosításra van szükség, mivel nem szeretné a fájl titkosított másolatát a felhőtárhelyen tárolni.
In – importDocumentAtURL:toParentItemIdentifier:completionHandler: ellenőrizze, hogy a fájl titkosítva van-e az isFileEncrytped: API használatával az IntuneMAMFileProtectionManagerben. Ha ezután visszafejti azt a decryptFile:toCopyPath: Az IntuneMAMFileProtectionManager API-jának használatával. A több identitást futtató alkalmazásokban ellenőrizze a canReceiveSharedFile: API-t a céltulajdonos IntuneMAMPolicy mappájában, hogy a tulajdonos megkapja-e a fájlt.
Replikált fájlszolgáltatói bővítmény integrálása
Az alkalmazás replikált fájlszolgáltatót használ, ha implementálja az NSFileProviderReplicatedExtension protokollt (az iOS 16.0-s verzióban van hozzáadva).
In - fetchContentsForItemWithIdentifier:version:request:completionHandler: ellenőrizze, hogy titkosítsa-e a fájlokat az [[IntuneMAMPolicy instance]shouldFileProviderEncryptFiles]] paranccsal. A tényleges fájltitkosításhoz használja az encryptFile:forAccountId: API-t az IntuneMAMFileProtectionManagerben. Emellett ossza meg a fájl egy példányát, ha titkosításra van szükség, mivel nem szeretné a fájl titkosított másolatát a felhőtárhelyen tárolni.
In - createItemBasedOnTemplate:fields:contents:options:request:completionHandler: ellenőrizze, hogy a fájl titkosítva van-e az isFileEncrypted: API használatával az IntuneMAMFileProtectionManagerben. Ha ezután visszafejti azt a decryptFile:toCopyPath: Az IntuneMAMFileProtectionManager API-jának használatával. A több identitást futtató alkalmazásokban ellenőrizze a canReceiveSharedFile: API-t a céltulajdonos IntuneMAMPolicy mappájában, hogy a tulajdonos megkapja-e a fájlt.
Bárhol, ahol a replikált fájlszolgáltató létrehoz és átad egy NSFileProviderItem objektumot a rendszernek, hívja meg az IntuneMAMFileProtectionManager protectFileProviderItem:forAccountId: API-t az elem tulajdonosi identitásával. Attól függően, hogy az NSFileProviderItem objektum hol jön létre és van megőrzve a bővítményben, előfordulhat, hogy ezt az NSFileProviderReplicatedExtension protokoll metódusaiban kell elvégeznie.
A Intune App SDK beállításainak konfigurálása
Az alkalmazás Info.plist fájljában található IntuneMAMSettings szótár segítségével beállíthatja és konfigurálhatja a Intune App SDK-t. Ha az IntuneMAMSettings szótár nem látható az Info.plist fájlban, akkor létre kell hoznia.
Az IntuneMAMSettings szótárban a következő támogatott beállításokat adhatja meg a Intune App SDK konfigurálásához.
Előfordulhat, hogy a fenti beállítások némelyike már szerepel a korábbi szakaszokban, és egyes beállítások nem minden alkalmazásra vonatkoznak.
Beállítás | Típus | Definíció | Szükséges? |
---|---|---|---|
ADALClientId | Karakterlánc | Az alkalmazás Microsoft Entra ügyfélazonosítója. | Minden alkalmazáshoz szükséges. |
ADALAuthority | Karakterlánc | Az alkalmazás Microsoft Entra hatósága van használatban. A saját környezetét kell használnia, amelyben Microsoft Entra-fiókok konfigurálva vannak. További információ: Alkalmazáskonfigurációs beállítások. | Akkor szükséges, ha az alkalmazás egy egyéni üzletági alkalmazás, amely egyetlen szervezeten/Microsoft Entra bérlőn belül használható. Ha ez az érték hiányzik, a rendszer a közös Microsoft Entra szolgáltatót használja (amely csak több-bérlős alkalmazások esetében támogatott). |
ADALRedirectUri | Karakterlánc | Az alkalmazás Microsoft Entra átirányítási URI-t. | Az ADALRedirectUri vagy az ADALRedirectScheme minden alkalmazáshoz szükséges. |
ADALRedirectScheme | Karakterlánc | Az alkalmazás Microsoft Entra ID átirányítási sémája. Ez az ADALRedirectUri helyett használható, ha az alkalmazás átirányítási URI-ja formátuma scheme://bundle_id . |
Az ADALRedirectUri vagy az ADALRedirectScheme minden alkalmazáshoz szükséges. |
ADALLogOverrideDisabled | Logikai | Meghatározza, hogy az SDK az összes MSAL-naplót (beleértve az alkalmazás MSAL-hívásait is, ha vannak ilyenek) a saját naplófájljába irányítja-e. Az alapértelmezett érték a NEM. Állítsa IGEN értékre, ha az alkalmazás saját MSAL-naplóvisszahívást állít be. | Szabadon választható. |
ADALCacheKeychainGroupOverride | Karakterlánc | Az MSAL-gyorsítótárhoz használandó kulcslánccsoportot adja meg a "com.microsoft.adalcache" helyett. Vegye figyelembe, hogy ez nem rendelkezik az app-id előtaggal. Ez a megadott sztring előtagja lesz futásidőben. | Szabadon választható. |
AppGroupIdentifiers | Sztringek tömbje | Alkalmazáscsoportok tömbje az alkalmazás jogosultságok com.apple.security.application-groups szakaszából. | Akkor szükséges, ha az alkalmazás alkalmazáscsoportokat használ. |
Tartalmazza azAppBundleId azonosítót | Karakterlánc | Megadja a bővítményt tartalmazó alkalmazás csomagazonosítóját. | Az iOS-bővítményekhez szükséges. |
AutoEnrollOnLaunch | Logikai | Meghatározza, hogy az alkalmazás megkísérelje-e az automatikus regisztrációt indításkor, ha egy meglévő felügyelt identitást észlel, és még nem tette meg. Az alapértelmezett érték a NEM. Megjegyzések: Ha nem található felügyelt identitás, vagy az identitáshoz nem érhető el érvényes jogkivonat az MSAL-gyorsítótárban, a regisztrációs kísérlet csendesen meghiúsul hitelesítő adatok kérése nélkül, kivéve, ha az alkalmazás a MAMPolicyRequired beállítást is IGEN értékre állította. |
Szabadon választható. Alapértelmezés szerint nem. |
MAMPolicyRequired | Logikai | Meghatározza, hogy az alkalmazás nem indul-e el, ha az alkalmazás nem rendelkezik Intune alkalmazásvédelmi szabályzattal. Az alapértelmezett érték a NEM. Megjegyzések: Az alkalmazások nem küldhetők el a App Store, ha a MAMPolicyRequired értéke IGEN. Ha a MAMPolicyRequired beállítást IGEN értékre állítja, az AutoEnrollOnLaunch beállítást is IGEN értékre kell állítani. |
Szabadon választható. Alapértelmezés szerint nem. |
MAMPolicyWarnAbsent | Logikai | Meghatározza, hogy az alkalmazás figyelmezteti-e a felhasználót az indítás során, ha az alkalmazás nem rendelkezik Intune alkalmazásvédelmi szabályzattal. Megjegyzés: A figyelmeztetés elvetése után a felhasználók továbbra is használhatják az alkalmazást szabályzat nélkül. |
Szabadon választható. Alapértelmezés szerint nem. |
Többdentitás | Logikai | Meghatározza, hogy az alkalmazás felismerje-e a több identitást. | Szabadon választható. Alapértelmezés szerint nem. |
SafariViewControllerBlockedOverride | Logikai | Letiltja Intune SafariViewController-horgait az MSAL-hitelesítés SFSafariViewController, SFAuthSession vagy ASWebAuthSession használatával történő engedélyezéséhez. Megjegyzés: Az SFSafariViewControllerConfiguration tevékenységgomb tulajdonságát Intune felügyelt Safari nézetvezérlője nem támogatja. Egy konfigurált tevékenységgomb csak akkor jelenik meg a SafariViewControllerben, ha a nézet nem felügyelt, és a SafariViewControllerBlockedOverride értéke igen. |
Szabadon választható. Alapértelmezés szerint nem. FIGYELMEZTETÉS: nem megfelelő használat esetén adatszivárgást okozhat. Csak akkor engedélyezze, ha feltétlenül szükséges. További információ: Speciális szempontok az MSAL alkalmazás által kezdeményezett hitelesítéshez való használatakor. |
SplashIconFile SplashIconFile~ipad |
Karakterlánc | A Intune kezdőkép (indítás) ikonfájlját adja meg. | Szabadon választható. |
SplashDuration | Szám | Az Intune indítóképernyőjének minimális időtartama másodpercben az alkalmazás indításakor. Az alapértelmezett érték 1,5. | Szabadon választható. |
BackgroundColor | Karakterlánc | A Intune SDK felhasználói felületi összetevőinek háttérszínét adja meg. Hexadecimális RGB-sztringet fogad el #XXXXXX formájában, ahol az X 0–9 vagy A-F közötti tartományba eshet. Előfordulhat, hogy a kettőskereszt jele hiányzik. | Szabadon választható. A rendszer háttérszínének alapértelmezett értéke, amely az iOS különböző verzióiban és az iOS Sötét mód beállításától függően változhat. |
Előtérszín | Karakterlánc | A Intune SDK felhasználói felületi összetevőinek előtérszínét adja meg, például a szöveg színét. Hexadecimális RGB-sztringet fogad el #XXXXXX formájában, ahol az X 0–9 vagy A-F közötti tartományba eshet. Előfordulhat, hogy a kettőskereszt jele hiányzik. | Szabadon választható. A rendszercímke színének alapértelmezett értéke, amely az iOS különböző verzióiban és az iOS Sötét mód beállításától függően változhat. |
AccentColor | Karakterlánc | A Intune SDK felhasználói felületi összetevőinek témaszínét adja meg, például a gomb szövegszínét és a PIN-kód mezőkiemelési színét. Hexadecimális RGB-sztringet fogad el #XXXXXX formájában, ahol az X 0–9 vagy A-F közötti tartományba eshet. Előfordulhat, hogy a kettőskereszt jele hiányzik. | Szabadon választható. Az alapértelmezett érték a rendszerkék. |
SecondaryBackgroundColor | Karakterlánc | Az MTD-képernyők másodlagos háttérszínét adja meg. Hexadecimális RGB-sztringet fogad el #XXXXXX formájában, ahol az X 0–9 vagy A-F közötti tartományba eshet. Előfordulhat, hogy a kettőskereszt jele hiányzik. | Szabadon választható. Alapértelmezés szerint fehér. |
SecondaryForegroundColor | Karakterlánc | Megadja az MTD-képernyők másodlagos előtérszínét, például a lábjegyzet színét. Hexadecimális RGB-sztringet fogad el #XXXXXX formájában, ahol az X 0–9 vagy A-F közötti tartományba eshet. Előfordulhat, hogy a kettőskereszt jele hiányzik. | Szabadon választható. Alapértelmezés szerint szürke. |
SupportsDarkMode | Logikai | Meghatározza, hogy a Intune SDK felhasználói felületének színsémája figyelembe vegye-e a rendszer sötét módbeállítását, ha nincs beállítva explicit érték a BackgroundColor/ForegroundColor/AccentColor beállításhoz | Szabadon választható. Alapértelmezés szerint igen. |
MAMTelemetryDisabled | Logikai | Megadja, hogy az SDK nem küld-e telemetriai adatokat a háttérrendszerbe. | Szabadon választható. Alapértelmezés szerint nem. |
MAMTelemetryUsePPE | Logikai | Azt adja meg, hogy a MAM SDK küld-e adatokat a PPE-telemetria háttérrendszerének. Ezt akkor használja, ha az alkalmazásokat Intune szabályzattal teszteli, hogy a telemetriai adatok ne keveredhessenek össze az ügyféladatokkal. | Szabadon választható. Alapértelmezés szerint nem. |
MaxFileProtectionLevel | Karakterlánc | Lehetővé teszi az alkalmazás számára, hogy meghatározza a maximálisan támogatott értéket NSFileProtectionType . Ez az érték felülbírálja a szolgáltatás által küldött szabályzatot, ha a szint magasabb, mint amit az alkalmazás támogat. Lehetséges értékek: NSFileProtectionComplete , NSFileProtectionCompleteUnlessOpen , NSFileProtectionCompleteUntilFirstUserAuthentication , NSFileProtectionNone . Megjegyzés: A legmagasabb fájlvédelmi szinttel (NSFileProtectionComplete ) a védett fájlok csak az eszköz zárolásának feloldása közben érhetők el. Az eszköz zárolása után 10 másodperccel az alkalmazás elveszíti a hozzáférést a védett fájlokhoz. Bizonyos esetekben ez a belső összetevőkhöz (például MySQL-adatbázisokhoz) való hozzáférés elvesztését okozhatja, ami váratlan viselkedéshez vezethet. Javasoljuk, hogy a zárolási képernyő felhasználói felületének elemeit megjelenítő alkalmazások ezt az értéket értékre NSFileProtectionCompleteUntilFirstUserAuthentication állítsa. |
Szabadon választható. Az alapértelmezett érték: NSFileProtectionComplete . |
OpenInActionExtension | Logikai | Állítsa IGEN értékre a Megnyitás művelettel bővítmények esetében. További információ: Adatok megosztása az UIActivityViewController használatával . | |
WebViewHandledURLSchemes | Sztringek tömbje | Az alkalmazás WebView által kezelt URL-sémákat határozza meg. | Akkor szükséges, ha az alkalmazás olyan WebView-t használ, amely hivatkozásokon és/vagy JavaScripten keresztül kezeli az URL-címeket. |
DocumentBrowserFileCachePath | Karakterlánc | Ha az alkalmazás a UIDocumentBrowserViewController használatával böngészi a különböző fájlszolgáltatók fájljait, beállíthatja ezt az elérési utat az alkalmazás-tesztkörnyezet kezdőkönyvtárához képest, hogy a Intune SDK a visszafejtett felügyelt fájlokat ebbe a mappába helyezze. |
Szabadon választható. A könyvtár alapértelmezett értéke /Documents/ . |
VerboseLoggingEnabled | Logikai | Ha igen értékre van állítva, Intune részletes módban jelentkezik be. | Szabadon választható. Alapértelmezett érték: NEM |
FinishLaunchingAtStartup | Logikai | Ha az alkalmazás használja [BGTaskScheduler registerForTaskWithIdentifier:] , akkor ezt a beállítást IGEN értékre kell állítani. |
Szabadon választható. Alapértelmezett érték: NEM |
ValuesToScrubFromLogging | Sztringek tömbje | A naplókból törölendő alkalmazáskonfigurációs értékeket adja meg. Másik lehetőségként az IntuneMAMSettings osztályban található valuesToScrubFromLogging tulajdonság is megadható ugyanahhoz a viselkedéshez sztringtömbként. | Szabadon választható. |
Alkalmazásvédelmi szabályzat fogadása
Áttekintés
Intune alkalmazásvédelmi szabályzat fogadásához az alkalmazásoknak regisztrációs kérelmet kell kezdeményezniük a Intune MAM szolgáltatással. Az alkalmazások az Intune Felügyeleti központban konfigurálhatók úgy, hogy eszközregisztrációval vagy anélkül fogadják az alkalmazásvédelmi szabályzatot. A mobilalkalmazás-kezelés (MAM) lehetővé teszi, hogy az alkalmazásokat Intune felügyelje anélkül, hogy regisztrálnia kellene az eszközt Intune mobileszköz-felügyeletben (MDM). A szabályzat fogadásához mindkét esetben regisztrálni kell a Intune MAM szolgáltatásra.
Fontos
Az iOS-hez készült Intune App SDK 256 bites titkosítási kulcsokat használ, ha az alkalmazásvédelmi szabályzatok engedélyezik a titkosítást. A védett adatmegosztás engedélyezéséhez minden alkalmazásnak rendelkeznie kell egy aktuális SDK-verzióval.
Az ADAL-t vagy MSAL-t már használó alkalmazások
Megjegyzés:
Azure AD Authentication Library (ADAL) és a Azure AD Graph API elavultak lesznek. További információ: Alkalmazások frissítése a Microsoft Authentication Library (MSAL) és a Microsoft Graph API használatára.
Az MSAL-t már használó alkalmazásoknak meg kell hívniuk a registerAndEnrollAccountId
metódust a IntuneMAMEnrollmentManager
példányon a felhasználó sikeres hitelesítése után:
/*
* 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;
A sikeres bejelentkezéskor az MSAL visszaküldi az eredményt az MSALResult objektumban. A fenti API accountId paramétereként használja a tenantProfile.identifier paramétert az MSALResult-on belül.
A metódus meghívásával az registerAndEnrollAccountId
SDK regisztrálja a felhasználói fiókot, és megpróbálja regisztrálni az alkalmazást a fiók nevében. Ha a regisztráció bármilyen okból meghiúsul, az SDK 24 órával később automatikusan újrapróbálkozott a regisztrációval. Hibakeresési célokból az alkalmazás egy meghatalmazotton keresztül fogadhat értesítéseket a regisztrációs kérelmek eredményeiről.
Az API meghívása után az alkalmazás továbbra is a megszokott módon működhet. Ha a regisztráció sikeres, az SDK értesíti a felhasználót az alkalmazás újraindításáról. Ekkor a felhasználó azonnal újraindíthatja az alkalmazást.
[[IntuneMAMEnrollmentManager instance] registerAndEnrollAccountId:@"3ec2c00f-b125-4519-acf0-302ac3761822"];
Az ADAL-t vagy MSAL-t nem használó alkalmazások
Azok az alkalmazások, amelyek nem ADAL vagy MSAL használatával jelentkeznek be a felhasználóba, továbbra is megkaphatják az alkalmazásvédelmi szabályzatot a Intune MAM-szolgáltatástól az API meghívásával, hogy az SDK kezelje a hitelesítést. Az alkalmazásoknak ezt a technikát kell használniuk, ha nem hitelesítettek egy felhasználót Microsoft Entra ID, de az adatok védelme érdekében le kell kérniük az alkalmazásvédelmi szabályzatot. Ilyen például, ha egy másik hitelesítési szolgáltatást használnak az alkalmazásba való bejelentkezéshez, vagy ha az alkalmazás egyáltalán nem támogatja a bejelentkezést. Ehhez az alkalmazás meghívhatja a metódust loginAndEnrollAccount
a IntuneMAMEnrollmentManager
példányon:
/**
* 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;
A metódus meghívásával az SDK hitelesítő adatokat kér a felhasználótól, ha nem található meglévő token. Az SDK ezután megpróbálja regisztrálni az alkalmazást a Intune MAM szolgáltatásban a megadott felhasználói fiók nevében. A metódus a "nil" azonosítóval hívható meg. Ebben az esetben az SDK regisztrálja a meglévő felügyelt felhasználót az eszközön (MDM esetén), vagy kérni fogja a felhasználót egy felhasználónév megadására, ha nem található meglévő felhasználó.
Ha a regisztráció sikertelen, az alkalmazásnak a hiba részleteitől függően érdemes lehet később újra meghívnia ezt az API-t. Az alkalmazás delegálton keresztül fogadhat értesítéseket a regisztrációs kérelmek eredményeiről.
Az API meghívása után az alkalmazás a szokásos módon működhet tovább. Ha a regisztráció sikeres, az SDK értesíti a felhasználót az alkalmazás újraindításáról.
Az alkalmazás kezelése után az Entra objektumazonosító értékét le kellkérdezni a használatával enrolledAccountId
a használatával.IntuneMAMEnrollmentManager
Használja ezt az alkalmazás által a regisztrált fiókhoz használt összes MAM SDK API-hoz.
Példa:
[[IntuneMAMEnrollmentManager instance] loginAndEnrollAccount:@"user@foo.com"];
A hitelesítés és a regisztráció Intune kezelése indításkor
Ha azt szeretné, hogy a Intune SDK kezelje az ADAL-/MSAL-hitelesítést és -regisztrációt, mielőtt az alkalmazás elindulna, és az alkalmazás mindig alkalmazásszabályzatot igényel, nem kell API-t használnialoginAndEnrollAccount
. Az alábbi két beállítást egyszerűen IGEN értékre állíthatja az alkalmazás Info.plist fájljának IntuneMAMSettings szótárában.
Beállítás | Típus | Definíció |
---|---|---|
AutoEnrollOnLaunch | Logikai | Meghatározza, hogy az alkalmazás megkísérelje-e az automatikus regisztrációt indításkor, ha egy meglévő felügyelt identitást észlel, és még nem tette meg. Az alapértelmezett érték a NEM. Megjegyzés: Ha nem található felügyelt identitás, vagy az identitáshoz nem érhető el érvényes jogkivonat az ADAL/MSAL gyorsítótárban, a regisztrációs kísérlet csendesen meghiúsul hitelesítő adatok kérése nélkül, kivéve, ha az alkalmazás a MAMPolicyRequired beállítást IS IGEN értékre állította. |
MAMPolicyRequired | Logikai | Meghatározza, hogy az alkalmazás nem indul-e el, ha az alkalmazás nem rendelkezik Intune alkalmazásvédelmi szabályzattal. Az alapértelmezett érték a NEM. Megjegyzés: Az alkalmazások nem küldhetők el a App Store, ha a MAMPolicyRequired értéke IGEN. Ha a MAMPolicyRequired beállítást IGEN értékre állítja, az AutoEnrollOnLaunch beállítást is IGEN értékre kell állítani. |
Ha ezt a lehetőséget választja az alkalmazáshoz, a regisztráció után nem kell kezelnie az alkalmazás újraindítását.
Felhasználói fiókok regisztrációja törlése
Mielőtt egy felhasználó kijelentkezik egy alkalmazásból, az alkalmazásnak törölnie kell a felhasználó regisztrációját az SDK-ból. Ez biztosítja a következőt:
A regisztráció újrapróbálkozásai a továbbiakban nem történnek meg a felhasználó fiókjában.
Alkalmazásvédelem házirend el lesz távolítva.
A vállalati adatok törlődnek, ha az alkalmazás szelektív törlést kezdeményez (nem kötelező).
A felhasználó kijelentkeztetése előtt az alkalmazásnak a következő metódust kell meghívnia a IntuneMAMEnrollmentManager
példányon:
/*
* 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;
Ezt a metódust a felhasználói fiók Microsoft Entra jogkivonatainak törlése előtt kell meghívni. Az SDK-nak szüksége van a felhasználói fiók Microsoft Entra token(ek)ére, hogy adott kéréseket küldjön a Intune MAM szolgáltatásnak a felhasználó nevében.
Ha az alkalmazás önállóan törli a felhasználó vállalati adatait, a doWipe
jelző false (hamis) értékre állítható. Ellenkező esetben az alkalmazás szelektív törlést kezdeményezhet az SDK-val. Ez az alkalmazás szelektív törlési delegáltjának hívását eredményezi.
Példa:
[[IntuneMAMEnrollmentManager instance] deRegisterAndUnenrollAccountId:@"3ec2c00f-b125-4519-acf0-302ac3761822" withWipe:YES];
Állapot-, eredmény- és hibakeresési értesítések
Az alkalmazás állapot-, eredmény- és hibakeresési értesítéseket kaphat a Intune MAM-szolgáltatásnak küldött alábbi kérésekről:
- Regisztrációs kérelmek
- Szabályzatfrissítési kérések
- Regisztráció törlésére irányuló kérelmek
Az értesítések a delegált metódusok segítségével jelennek meg a következőben 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;
Ezek a delegált metódusok a IntuneMAMEnrollmentStatus
következő információkkal rendelkező objektumot ad vissza:
- A kéréshez társított fiók accountId (objektumazonosítója)
- A kéréshez társított fiók identitása (UPN)
- A kérés eredményét jelző állapotkód
- Hibasztring az állapotkód leírásával
- Egy
NSError
objektum. Ez az objektum a -benIntuneMAMEnrollmentStatus.h
van definiálva, valamint a visszaadható állapotkódokkal együtt.
Mintakód
A delegált metódusok példái a következők:
- (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);
}
Alkalmazás újraindítása
Amikor egy alkalmazás első alkalommal kap MAM-szabályzatokat, újra kell indulnia a szükséges horgok alkalmazásához. Az SDK delegált metódust IntuneMAMPolicyDelegate.h
biztosít az alkalmazásban, hogy értesítse az alkalmazást az újraindításról.
- (BOOL) restartApplication
A metódus visszatérési értéke közli az SDK-val, hogy az alkalmazásnak kell-e kezelnie a szükséges újraindítást:
Ha a visszaadott érték igaz, az alkalmazásnak kell kezelnie az újraindítást.
Ha hamis értéket ad vissza, az SDK újraindítja az alkalmazást a metódus visszatérése után. Az SDK azonnal egy párbeszédpanelt jelenít meg, amely arra utasítja a felhasználót, hogy indítsa újra az alkalmazást.
Megjegyzés:
A .NET MAUI-alkalmazások nem igényelnek újraindítást.
Kilépési feltételek
Miután konfigurálta a build beépülő modult, vagy integrálta a parancssori eszközt a buildelési folyamatba, ellenőrizze, hogy sikeresen fut-e:
- Győződjön meg arról, hogy a build fordítása és buildelése sikeres volt.
- Indítsa el a lefordított alkalmazást, jelentkezzen be egy olyan Microsoft Entra felhasználóval, aki nem rendelkezik alkalmazásvédelmi szabályzattal, és ellenőrizze, hogy az alkalmazás a várt módon működik-e.
- Jelentkezzen ki, majd ismételje meg ezt a tesztet egy alkalmazásvédelmi szabályzattal megcélzott Microsoft Entra felhasználóval, és győződjön meg arról, hogy az alkalmazást Intune kezeli, majd újraindítja.
Az integráció ezen pontján az alkalmazás mostantól fogadhat és érvényesíthet alkalmazásvédelmi szabályzatot. Az integráció ellenőrzéséhez hajtsa végre az alábbi teszteket.
Első szabályzatalkalmazás tesztelése
Először hajtsa végre a következő tesztet, hogy megismerje a szabályzatalkalmazás teljes végfelhasználói élményét az alkalmazásban:
- Hozzon létre egy iOS-alkalmazásvédelmi szabályzatot a Microsoft Intune Felügyeleti központban. Ehhez a teszthez konfigurálja a szabályzatot:
- A Hozzáférési követelmények területen hagyja meg az alapértelmezett beállításokat. A "PIN-kód a hozzáféréshez" kifejezésnek különösen a "Require" (Kötelező) értéknek kell lennie.
- Győződjön meg arról, hogy az alkalmazásvédelmi szabályzat az alkalmazásra irányul. Előfordulhat, hogy manuálisan kell hozzáadnia az alkalmazás csomagazonosítóját a házirend-létrehozási varázslóban.
- Rendelje hozzá az alkalmazásvédelmi szabályzatot a tesztfiókot tartalmazó felhasználói csoporthoz.
- Telepítse az alkalmazást.
- Jelentkezzen be az alkalmazásba az Alkalmazásvédelmi szabályzattal megcélzott tesztfiókjával.
- Győződjön meg arról, hogy a rendszer egy Intune felügyelt képernyővel kéri, és megerősíti, hogy a rendszer újraindítja az alkalmazást. Ez a képernyő azt jelzi, hogy az SDK sikeresen lekéri a fiók szabályzatát.
- Hozzon létre egy PIN-kódot, amikor a rendszer kéri, hogy állítsa be az alkalmazás PIN-kódját.
- Naplózza a felügyelt fiókot az alkalmazásból.
- Navigáljon az alkalmazás körül, és ellenőrizze, hogy az alkalmazás a várt módon működik-e, ha lehetséges, bejelentkezés nélkül.
Ez a lépések listája egy *minimális teszt, amely ellenőrzi, hogy az alkalmazás megfelelően regisztrálja-e a fiókot, regisztrálja-e a hitelesítési visszahívást, és megszünteti-e a fiók regisztrációját. Hajtsa végre az alábbi teszteket, hogy alaposabban ellenőrizze, hogyan módosítják az alkalmazás viselkedését más alkalmazásvédelmi házirend-beállítások.
Következő lépések
Miután elvégezte az összes kilépési feltételt, folytassa a 4. fázis: Alkalmazás részvételi funkcióival.