A Microsoft Intune App SDK iOS rendszeren – fejlesztői útmutatóMicrosoft Intune App SDK for iOS developer guide

Megjegyzés

Először célszerű elolvasnia az Intune App SDK használatának első lépései című cikket, amely útmutatást ad az integráció előkészítéséhez a támogatott platformokon.You might want to first read the Get Started with Intune App SDK Guide article, which explains how to prepare for integration on each supported platform.

Az iOS-hez készült Microsoft Intune App SDK lehetővé teszi, hogy Intune alkalmazásvédelmi szabályzatokat (vagy más néven alkalmazás- vagy MAM-szabályzatokat) építsen be natív iOS-alkalmazásába.The Microsoft Intune App SDK for iOS lets you incorporate Intune app protection policies (also known as APP or MAM policies) into your native iOS app. A MAM-kompatibilis alkalmazás az, amelyik integrálva van az Intune App SDK-val.A MAM-enabled application is one that is integrated with the Intune App SDK. Mindez lehetővé teszi a rendszergazdáknak, hogy alkalmazásvédelmi szabályzatokat telepítsenek a mobilalkalmazásra vonatkozóan, ha az Intune aktívan felügyeli az alkalmazást.IT administrators can deploy app protection policies to your mobile app when Intune actively manages the app.

ElőfeltételekPrerequisites

  • Szüksége lesz egy OS X 10.8.5 vagy újabb verziót futtató Mac OS-számítógépre, amelyen telepítve van az Xcode 8-as vagy újabb verziója.You will need a Mac OS computer that runs OS X 10.8.5 or later and has the Xcode 8 or later installed.

  • Az alkalmazásnak iOS 9 vagy újabb verziókkal kell működnie.Your app must be targeted for iOS 9 or above.

  • Olvassa el az iOS-hez készült Intune App SDK licencfeltételeit.Review the Intune App SDK for iOS License Terms. Nyomtassa ki és őrizze meg a licencfeltételeket.Print and retain a copy of the license terms for your records. Az iOS-hez készült Intune App SDK letöltésével és használatával elfogadja licencfeltételeket.By downloading and using the Intune App SDK for iOS, you agree to such license terms. Amennyiben a feltételeket nem fogadja el, ne használja a szoftvert.If you do not accept them, do not use the software.

  • Töltse le az iOS-re készült Intune App SDK fájljait a GitHubról.Download the files for the Intune App SDK for iOS on GitHub.

Az SDK tartalmaWhat’s in the SDK

Az iOS-hoz készült Intune App SDK magában foglalja a statikus könyvtárat, az erőforrásfájlokat, az API-fejléceket, a hibakeresési beállításokat tartalmazó plist-fájlt és a konfiguráló eszközt.The Intune App SDK for iOS includes a static library, resource files, API headers, a debug settings .plist file, and a configurator tool. A mobilalkalmazások tartalmazhatják az erőforrásfájlokat, és általában statikus módon csatolhatók a könyvtárakhoz a szabályzatok érvénybe léptetéséhez.Mobile apps might simply include the resource files and statically link to the libraries for most policy enforcement. A speciális Intune MAM-funkciók használata API-k segítségével kényszeríthető ki.Advanced Intune MAM features are enforced through APIs.

Ez az útmutató az iOS-hez készült Intune App SDK következő összetevőit ismerteti:This guide covers the use of the following components of the Intune App SDK for iOS:

  • libIntuneMAM.a: az Intune App SDK statikus erőforrástára.libIntuneMAM.a: The Intune App SDK static library. Ha az alkalmazás nem használ bővítményeket, Önnek ezt az erőforrástárat kell csatolnia a projekthez, hogy az alkalmazás felügyelhető legyen az Intune mobilalkalmazás-kezeléssel.If your app does not use extensions, link this library to your project to enable your app for Intune mobile application management.

  • IntuneMAM.framework: Az Intune App SDK keretrendszere.IntuneMAM.framework: The Intune App SDK framework. Ezt a keretrendszert kell csatolnia a projekthez, hogy az alkalmazás felügyelhető legyen az Intune mobilalkalmazás-kezelés segítségével.Link this framework to your project to enable your app for Intune mobile application management. Akkor használja ezt a keretrendszert a statikus erőforrástár helyett, ha az alkalmazás bővítményeket használ. Ez esetben a projekt nem hoz létre több példányt a statikus erőforrástárból.Use the framework instead of the static library if your app uses extensions, so that your project does not create multiple copies of the static library.

  • IntuneMAMResources.bundle: az SDK erőforrásait tartalmazó csomag.IntuneMAMResources.bundle: A resource bundle that has resources that the SDK relies on.

  • Headers: az Intune App SDK API-jainak elérhetővé tétele.Headers: Exposes the Intune App SDK APIs. Ha API-t használ, meg kell adnia az API-t tartalmazó fejlécfájlt.If you use an API, you will need to include the header file that contains the API. Az alábbi fejlécfájlok tartalmazzák azokat az API-kat, adattípusokat és protokollokat, melyek az Intune APP SDK-val elérhetővé válnak a fejlesztők számára:The following header files include the APIs, data types, and protocols which the Intune App SDK makes available to developers:

    • IntuneMAMAppConfig.hIntuneMAMAppConfig.h
    • IntuneMAMAppConfigManager.hIntuneMAMAppConfigManager.h
    • IntuneMAMDataProtectionInfo.hIntuneMAMDataProtectionInfo.h
    • IntuneMAMDataProtectionManager.hIntuneMAMDataProtectionManager.h
    • IntuneMAMDefs.hIntuneMAMDefs.h
    • IntuneMAMEnrollmentDelegate.hIntuneMAMEnrollmentDelegate.h
    • IntuneMAMEnrollmentManager.hIntuneMAMEnrollmentManager.h
    • IntuneMAMEnrollmentStatus.hIntuneMAMEnrollmentStatus.h
    • IntuneMAMFileProtectionInfo.hIntuneMAMFileProtectionInfo.h
    • IntuneMAMFileProtectionManager.hIntuneMAMFileProtectionManager.h
    • IntuneMAMLogger.hIntuneMAMLogger.h
    • IntuneMAMPolicy.hIntuneMAMPolicy.h
    • IntuneMAMPolicyDelegate.hIntuneMAMPolicyDelegate.h
    • IntuneMAMPolicyManager.hIntuneMAMPolicyManager.h
    • IntuneMAMVersionInfo.hIntuneMAMVersionInfo.h

Az IntuneMAM.h importálásával a fenti fejlécek mindegyikének tartalma elérhetővé válik a fejlesztők számára.Developers can make the contents of all the above headers available by just importing IntuneMAM.h

Az Intune App SDK működéseHow the Intune App SDK works

Az iOS-hoz készült Intune App SDK révén minimális kódmódosítással adhat hozzá felügyeleti funkciókat az iOS-alkalmazásokhoz.The objective of the Intune App SDK for iOS is to add management capabilities to iOS applications with minimal code changes. Minél kevesebb kódmódosítás szükséges, annál gyorsabban dobhatja piacra a mobilalkalmazást – az egységesség és a stabilitás terén kötött kompromisszumok nélkül.The fewer the code changes, the less time to market--without affecting the consistency and stability of your mobile application.

Az SDK beépítése a mobilalkalmazásbaBuild the SDK into your mobile app

Az Intune App SKD engedélyezéséhez kövesse az alábbi lépéseket:To enable the Intune App SDK, follow these steps:

  1. 1. lehetőség (ajánlott): Az IntuneMAM.framework csatolása a projekthez.Option 1 (recommended): Link IntuneMAM.framework to your project. Húzza az IntuneMAM.framework keretrendszert a projekthez használni kívánt elemek Embedded Binaries (Beágyazott bináris fájlok) listájába.Drag IntuneMAM.framework to the Embedded Binaries list of the project target.

    Megjegyzés

    Ha a keretrendszert használja, manuálisan kell eltávolítania a szimulátorarchitektúrákat az univerzális keretrendszerből, mielőtt beküldi az alkalmazást az App Store-ba.If you use the framework, you must manually strip out the simulator architectures from the universal framework before you submit your app to the App Store. További információért lásd Az alkalmazás beküldése az App Store-ba című témakört.See Submit your app to the App Store for more details.

  2. 2. lehetőség: Csatolás a libIntuneMAM.a erőforrástárhoz.Option 2: Link to the libIntuneMAM.a library. Húzza a libIntuneMAM.a könyvtárat a projekthez használni kívánt elemek Linked Frameworks and Libraries (Csatolt keretrendszerek és könyvtárak) listájába.Drag the libIntuneMAM.a library to the Linked Frameworks and Libraries list of the project target.

    Intune App SDK (iOS) – csatolt keretrendszerek és könyvtárak

    Megjegyzés

    Megjegyzés: ha azt tervezi, hogy közzéteszi az alkalmazást az App Store-ban, a libIntuneMAM.a végleges verzióját használja, ne a hibakeresési verziót.If you plan to release your app to the App Store, please use the version of libIntuneMAM.a that is built for release and not the debug version. A végleges verziót a release (kiadás) mappában találja.The release version will be in the release folder. A hibakeresési verzió részletes kimenetet ad, ami megkönnyíti az Intune App SDK problémáinak elhárítását.The debug version has verbose output that helps troubleshoot problems with the Intune App SDK.

    Írja be a -force_load {PATH_TO_LIB}/libIntuneMAM.a utasítást a következő helyek egyikére, kicserélve a {PATH_TO_LIB} sort az Intune App SDK elérési útjával:Add -force_load {PATH_TO_LIB}/libIntuneMAM.a to either of the following, replacing {PATH_TO_LIB} with the Intune App SDK location:

    • a projekt OTHER_LDFLAGS buildkonfigurációs beállításaThe project’s OTHER_LDFLAGS build configuration setting
    • a kezelőfelület Other Linker Flags (Más csatoló jelzők) területeThe UI’s Other Linker Flags

      Megjegyzés

      A PATH_TO_LIB megkereséséhez jelölje ki a libIntuneMAM.a fájlt és, és válassza a File (Fájl) menü Get Info (Információ megjelenítése) parancsát.To find PATH_TO_LIB, select the file libIntuneMAM.a and choose Get Info from the File menu. Másolja és illessze be a Where (Hely) feliratnál látható információt (az elérési utat) az Info (Információ) ablak General (Általános) szakaszából.Copy and paste the Where information (the path) from the General section of the Info window.

  3. Vegye fel a következő iOS-keretrendszereket a projektbe:Add these iOS frameworks to the project:

    • MessageUI.frameworkMessageUI.framework
    • Security.frameworkSecurity.framework
    • MobileCoreServices.frameworkMobileCoreServices.framework
    • SystemConfiguration.frameworkSystemConfiguration.framework
    • libsqlite3.tbdlibsqlite3.tbd
    • libc++.tbdlibc++.tbd
    • ImageIO.frameworkImageIO.framework
    • LocalAuthentication.frameworkLocalAuthentication.framework
    • AudioToolbox.frameworkAudioToolbox.framework
  4. Húzza az IntuneMAMResources.bundle erőforrás-csomagot a Copy Bundle Resources (Erőforrás-csomagok másolása) alatti Build Phases (Összeállítási fázisok) elemre a projektbe való felvételhez.Add the IntuneMAMResources.bundle resource bundle to the project by dragging the resource bundle under Copy Bundle Resources within Build Phases.

    Intune App SDK (iOS) – erőforráscsomagok másolása

  5. Ha a mobilalkalmazás fő Nib vagy a Storyboard fájlt definiál az info.plist fájlban, kivágás művelettel távolítsa el a Main Storyboard vagy a Main Nib fájlmezőket.If your mobile app defines a main nib or storyboard file in its Info.plist file, cut the Main Storyboard or Main Nib field(s). Az Info.plist fájlban illessze be a kivágott mezőket és a hozzájuk tartozó értékeket egy IntuneMAMSettings nevű új szótárban, a következő kulcsnevekkel:In Info.plist, paste these fields and their corresponding values under a new dictionary named IntuneMAMSettings with the following key names, as applicable:

    • MainStoryboardFileMainStoryboardFile
    • MainStoryboardFile~ipadMainStoryboardFile~ipad
    • MainNibFileMainNibFile
    • MainNibFile~ipadMainNibFile~ipad

      Megjegyzés

      Ha a mobilalkalmazás nem definiálja a fő Nib vagy Storyboard fájlt az Info.plist fájlban, ezek a beállítások nem szükségesek.If your mobile app doesn’t define a main nib or storyboard file in its Info.plist file, these settings are not required.

      Az info.plist fájlt nyers formátumban megtekintve láthatja a kulcsneveket. Kattintson jobb gombbal a dokumentum törzsében bárhol, és válassza a Show Raw Keys/Values (Nyers kulcsok/értékek megjelenítése) nézetet.You can view Info.plist in raw format (to see the key names) by right-clicking anywhere in the document body and changing the view type to Show Raw Keys/Values.

  6. Engedélyezze a kulcsláncmegosztást (ha még nincs engedélyezve) a projekthez használni kívánt elemeken a Capabilities (Képességek) lehetőségre kattintva, majd kapcsolja be a Keychain Sharing (Kulcsláncmegosztás) kapcsolót.Enable keychain sharing (if it isn't already enabled) by choosing Capabilities in each project target and enabling the Keychain Sharing switch. A következő lépéshez szükséges a kulcsláncmegosztás.Keychain sharing is required for you to proceed to the next step.

    Megjegyzés

    A telepítési profil esetében elengedhetetlen az új kulcsláncmegosztási értékek támogatása.Your provisioning profile needs to support new keychain sharing values. A kulcslánc-hozzáférési csoportoknak támogatniuk kell a helyettesítő karaktert.The keychain access groups should support a wildcard character. Ezt a .mobileprovision fájl szövegszerkesztőben való megnyitásával ellenőrizheti, rákeresve a keychain-access-groups kifejezésre. Itt meggyőződhet arról, hogy használ-e helyettesítő karaktert.You can check this by opening the .mobileprovision file in a text editor, searching for keychain-access-groups, and ensuring that you have a wildcard. Példa:For example:

    <key>keychain-access-groups</key>
    <array>
    <string>YOURBUNDLESEEDID.*</string>
    </array>
    
  7. Miután engedélyezte a kulcsláncmegosztást, az alábbi lépésekkel hozhat létre egy különálló hozzáférési csoportot, amelyben az Intune App SDK adatait tárolhatja.After you enable keychain sharing, follow these steps to create a separate access group in which the Intune App SDK will store its data. A kulcslánc-hozzáférési csoportokat a kezelőfelületet vagy a jogosultságokat tartalmazó fájl használatával hozhatja létre.You can create a keychain access group by using the UI or by using the entitlements file. Ha a kezelőfelületet használja a kulcslánc-hozzáférési csoport létrehozására, kövesse az alábbi lépéseket:If you are using the UI to create the keychain access group, make sure to follow the steps below:

    1. Ha a mobilalkalmazás nem határozott meg kulcslánc-hozzáférési csoportokat, vegye fel az alkalmazás csomagazonosítóját az első csoport létrehozásához.If your mobile app does not have any keychain access groups defined, add the app’s bundle ID as the first group.

    2. Húzza a com.microsoft.intune.mam megosztott kulcslánccsoportot a meglévő hozzáférési csoportokhoz.Add the shared keychain group com.microsoft.intune.mam to your existing access groups. Ez a hozzáférési csoport az Intune App SDK-adatok tárolására szolgál.The Intune App SDK uses this access group to store data.

    3. Vegye fel a com.microsoft.adalcache csoportot a meglévő hozzáférési csoportokba.Add com.microsoft.adalcache to your existing access groups.

      1. Vegye fel a com.microsoft.workplacejoin csoportot a meglévő hozzáférési csoportokba.Add com.microsoft.workplacejoin to your existing access groups. Intune App SDK (iOS) – kulcsláncok megosztásaIntune App SDK iOS: keychain sharing
    4. Ha a jogosultságokat tartalmazó fájlt használja a kulcslánc-hozzáférési csoport létrehozására, az $(AppIdentifierPrefix) előtaggal együtt illessze be a kulcslánc-hozzáférési csoportot a jogosultságokat tartalmazó fájlba.If you are using the entitlement file to create the keychain access group, prepend the keychain access group with $(AppIdentifierPrefix) in the entitlement file. Példa:For example:

       * `$(AppIdentifierPrefix)com.microsoft.intune.mam`
       * `$(AppIdentifierPrefix)com.microsoft.adalcache`
      
      Megjegyzés

      A jogosultságokat tartalmazó fájl egy XML-fájl, amely minden mobilalkalmazásnál egyedi,An entitlements file is an XML file that's unique to your mobile application. és speciális engedélyek és képességek meghatározására szolgál az iOS-alkalmazásban.It is used to specify special permissions and capabilities in your iOS app.

  8. Ha az alkalmazás az Info.plist fájlban határozza meg az URL-sémákat, mindegyikhez vegyen fel új sémát az -intunemam utótaggal együtt.If the app defines URL schemes in its Info.plist file, add another scheme, with a -intunemam suffix, for each URL scheme.

  9. Ha az alkalmazás az Info.plist fájlban határozza meg a dokumentumtípusokat, mindegyik elem „Document Content Type UTIs” tömbjénél kettőzze meg azokat a bejegyzéseket, amelyek sztringje tartalmazza a „com.microsoft.intune.mam” előtagot.If the app defines Document types in its Info.plist file, for each item's "Document Content Type UTIs" array, add a duplicate entry for each string with a "com.microsoft.intune.mam." előtagot.prefix.

  10. Az iOS 9 és újabb rendszerre fejlesztett mobilalkalmazások esetében az alkalmazáshoz tartozó Info.plist fájl LSApplicationQueriesSchemes tömbjében tüntessen fel minden protokollt, amelyet az alkalmazás átad az UIApplication canOpenURL számára.For mobile apps developed on iOS 9+, include each protocol that your app passes to UIApplication canOpenURL in the LSApplicationQueriesSchemes array of your app's Info.plist file. Emellett minden egyes felsorolt protokollhoz vegyen fel egy új protokollt, és fűzze hozzá a -intunemam paramétert.Additionally, for each protocol listed, add a new protocol and append it with -intunemam. A http-intunemam, https-intunemam és ms-outlook-intunemam elemet is fel kell venni a tömbbe.You must also include http-intunemam, https-intunemam, and ms-outlook-intunemam in the array.

  11. Ha az alkalmazás jogosultságaiban meghatározott alkalmazáscsoportok találhatók, karakterlánctömbként vegye fel ezeket a csoportokat az IntuneMAMSettings szótárba a AppGroupIdentifiers kulcs alatt.If the app has app groups defined in its entitlements, add these groups to the IntuneMAMSettings dictionary under the AppGroupIdentifiers key as an array of strings.

Az Azure Active Directory Authentication Library (ADAL) konfigurálása (nem kötelező)Configure Azure Active Directory Authentication Library (ADAL)

Az Intune App SDK az Azure Active Directory Authentication Libraryt hitelesítésre és a feltételes indítási forgatókönyvek készítésére használja.The Intune App SDK uses Azure Active Directory Authentication Library for its authentication and conditional launch scenarios. Az ADAL-t használja ezenkívül arra, hogy regisztrálja a felhasználó identitását a MAM-szolgáltatásnál az eszközök regisztrációja nélkül történő felügyelet esetére.It also relies on ADAL to register the user identity with the MAM service for management without device enrollment scenarios.

Az ADAL használata során az alkalmazáshoz tartozó jogkivonatok biztonsága érdekében az alkalmazások használata legtöbbször az Azure Active Directoryban (AAD) való regisztrációhoz, valamint egyedi azonosító (ClientID) és egyéb azonosítók lekéréséhez kötött.Typically, ADAL requires apps to register with Azure Active Directory (AAD) and get a unique ID (Client ID) and other identifiers, to guarantee the security of the tokens granted to the app. Ha másként nincs megadva, az Intune App SDK az alapértelmezett regisztrációs értékeket használja, amikor kapcsolatba lép az Azure AD-val.Unless otherwise specified, the Intune App SDK uses default registration values when it contacts Azure AD.

Ha az alkalmazás már ADAL-t használ felhasználók hitelesítésére, akkor a meglévő regisztrációs értékeket kell használnia, és felül kell bírálnia az Intune App SDK alapértékeit.If your app already uses ADAL to authenticate users, the app must use its existing registration values and override the Intune App SDK default values. Ez biztosítja azt, hogy a felhasználóknak ne kelljen kétszer hitelesíteniük magukat (egyszer az Intune App SDK felé, egyszer pedig az alkalmazás felé).This ensures that users are not prompted for authentication twice (once by the Intune App SDK and once by the app).

JavaslatokRecommendations

Javasolt az alkalmazást a főágban az ADAL legújabb verziójához kapcsolni.It is recommended that your app links to the latest version of ADAL on its master branch. Az Intune App SDK jelenleg az ADAL broker ágát használja a feltételes hozzáférést igénylő alkalmazások támogatásához.The Intune App SDK currently uses the broker branch of ADAL to support apps that require conditional access. (Tehát olyan alkalmazásokhoz, amelyek ebből következően függenek a Microsoft Authenticator alkalmazástól.) Az SDK ugyanakkor továbbra is kompatibilis az ADAL fő (master) ágával is.(These apps therefore depend on the Microsoft Authenticator app.) But the SDK is still compatible with the master branch of ADAL. Az alkalmazásának megfelelő ágat használja.Use the branch that is appropriate for your app.

Az ADAL bináris fájljaira való hivatkozáshoz kövesse az alábbi lépéseket:Follow the steps below to link your app to the ADAL binaries:

  1. Töltse le az Azure Active Directory Authentication Library (ADAL) for Objective-C erőforrástárat a GitHubról, majd kövesse az utasításokat az ADAL Git-almodulok vagy CocoaPods használatával történő letöltéséhez.Download the Azure Active Directory Authentication Library (ADAL) for Objective-C from GitHub, then follow the instructions on how to download ADAL using Git submodules or CocoaPods.

  2. Húzza az ADALiOSBundle.bundle erőforráscsomagot a Copy Bundle Resources (Erőforráscsomagok másolása) terület Build Phases (Összeállítási fázisok) elemére a projektbe való felvételhez.Include the ADALiOSBundle.bundle resource bundle in the project by dragging the resource bundle under Copy Bundle Resources within Build Phases.

  3. Írja be a -force_load {PATH_TO_LIB}/libADALiOS.a utasítást a projekt OTHER_LDFLAGS buildkonfigurációs beállításába vagy az Other Linker Flags (Más csatoló jelzők) helyre a kezelőfelületen.Add -force_load {PATH_TO_LIB}/libADALiOS.a to the project’s OTHER_LDFLAGS build configuration setting or Other Linker Flags in the UI. A PATH_TO_LIB helyett adja meg az ADAL bináris fájljainak helyét.PATH_TO_LIB should be replaced with the location of the ADAL binaries.

ADAL-jogkivonatok gyorsítótárának megosztása más, ugyanazzal a kiépítési profillal aláírt alkalmazásokkal.Share the ADAL token cache with other apps signed with the same provisioning profile?

Ha ADAL-jogkivonatokat szeretne megosztani ugyanazzal a kiépítési profillal aláírt alkalmazások között, kövesse az alábbi utasításokat:Follow the instructions below if you want to share ADAL tokens between apps signed with the same provisioning profile:

  1. Ha az alkalmazás nem határozott meg kulcslánc-hozzáférési csoportokat, hozza létre az első csoportot az alkalmazás csomagazonosítójának felvételével.If your app does not have any keychain access groups defined, add the app’s bundle ID as the first group.

  2. Engedélyezze az ADAL egyszeri bejelentkezési funkcióját (SSO): ehhez vegye fel a com.microsoft.adalcache és a com.microsoft.workplacejoin hozzáférési csoportot a kulcslánc jogosultságai közé.Enable ADAL single sign-on (SSO) by adding com.microsoft.adalcache and com.microsoft.workplacejoin access groups in the keychain entitlements.

  3. Ha explicit módon beállítja az ADAL megosztott gyorsítótárának kulcslánccsoportját, akkor feltétlenül a következő értékre állítsa: <app_id_prefix>.com.microsoft.adalcache.If you are explicitly setting the ADAL shared cache keychain group, make sure it is set to <app_id_prefix>.com.microsoft.adalcache. Az ADAL ezt állítja be, hacsak Ön felül nem bírálja.ADAL will set this for you unless you override it. Ha egyéni kulcslánccsoportot szeretne megadni a com.microsoft.adalcache helyett az Info.plist fájl „IntuneMAMSettings” szakaszában, azt az ADALCacheKeychainGroupOverride kulccsal kell megadnia.If you want to specify a custom keychain group to replace com.microsoft.adalcache, specify that in the Info.plist file under IntuneMAMSettings, by using the key ADALCacheKeychainGroupOverride.

Az Intune App SDK ADAL-beállításainak konfigurálásaConfigure ADAL settings for the Intune App SDK

Ha az alkalmazás már ADAL-t használ hitelesítéshez, és saját ADAL-beállításokkal rendelkezik, akkor kényszerítheti az Intune App SDK-t, hogy az Azure Active Directory helyett ezeket a beállításokat használja.If your app already uses ADAL for authentication and has its own ADAL settings, you can force the Intune App SDK to use the same settings during authentication against Azure Active Directory. Ezzel biztosítható, hogy az alkalmazás ne kérje a hitelesítést kétszer is a felhasználótól.This ensures that the app will not double-prompt the user for authentication. Az Intune App SDK-beállítások konfigurálása című témakörben tájékoztatást talál a következő beállítások értékének kitöltéséről:See Configure settings for the Intune App SDK for information on populating the following settings:

  • ADALClientIdADALClientId
  • ADALAuthorityADALAuthority
  • ADALRedirectUriADALRedirectUri
  • ADALRedirectSchemeADALRedirectScheme
  • ADALCacheKeychainGroupOverrideADALCacheKeychainGroupOverride

Ha az alkalmazás már ADAL-t használ, az alábbi konfigurációs beállítások kötelezőek:If your app already uses ADAL, the following configurations are required:

  1. Adja meg az ADAL-hívásokhoz használandó ClientID-t a projekt Info.plist fájljában, az IntuneMAMSettings szótár alatt található ADALClientId nevű kulcsban.In the project’s Info.plist file, under the IntuneMAMSettings dictionary with the key name ADALClientId, specify the client ID to be used for ADAL calls.

  2. A szintén az IntuneMAMSettings szótár alatt található ADALAuthority nevű kulcsban adja meg az Azure AD-szolgáltatót.Also under the IntuneMAMSettings dictionary with the key name ADALAuthority, specify the Azure AD authority.

  3. A szintén az IntuneMAMSettings szótár alatt található ADALRedirectUri nevű kulcsban adja meg az ADAL-hívásokhoz használandó átirányítási URI-t.Also under the IntuneMAMSettings dictionary with the key name ADALRedirectUri, specify the redirect URI to be used for ADAL calls. Az alkalmazás átirányítási URI-formátumától függően előfordulhat, hogy az ADALRedirectScheme beállításait is meg kell adnia.You might also need to specify ADALRedirectScheme, depending on the format of your app’s redirect URI.

Ezen kívül felülbírálhatja az Azure AD-szolgáltató URL-címét egy bérlőspecifikus, futtatás közben megadott URL-címmel.Additionally, you can override the Azure AD Authority URL with a tenant-specific URL at runtime. Ehhez egyszerűen állítsa be a aadAuthorityUriOverride tulajdonságot az IntuneMAMPolicyManager példányon.To do this, simply set the aadAuthorityUriOverride property on the IntuneMAMPolicyManager instance.

Megjegyzés

Az AAD-szolgáltató URL-címének beállítása akkor szükséges, ha az eszközök regisztrálása nélkül használja az alkalmazást. Így az SDK újra felhasználhatja az alkalmazás által beolvasott ADAL frissítési jogkivonatot.Setting the AAD Authority URL is required for APP without device enrollment to let the SDK reuse the ADAL refresh token fetched by the app.

Az SDK továbbra is ezt a szolgáltatói URL-címet használja a szabályzatok frissítésére és a későbbi regisztrációs kérelmekhez, hacsak nem törlik vagy módosítják az értéket.The SDK will continue to use this authority URL for policy refresh and any subsequent enrollment requests, unless the value is cleared or changed. Ezért fontos törölni az értéket, ha egy felügyelt felhasználó kijelentkezik az alkalmazásból, és visszaállítani az értéket, ha egy új felügyelt felhasználó bejelentkezik.Therefore, it is important to clear the value when a managed user signs out of the app and to reset the value when a new managed user signs in.

Ha az alkalmazás nem használ ADAL-tIf your app does not use ADAL

Ha az alkalmazás nem ADAL-t használ, az Intune App SDK alapértelmezett értékeket fog megadni az ADAL-paraméterekhez, és az Azure AD-vel fogja kezelni a hitelesítést.If your app does not use ADAL, the Intune App SDK will provide default values for ADAL parameters and handle authentication against Azure AD. A fent ismertetett ADAL-beállítások egyikéhez sem szükséges értéket megadnia.You do not have to specify any values for the ADAL settings listed above.

Eszközregisztráció nélküli alkalmazásvédelmi szabályzatApp protection policy without device enrollment

ÁttekintésOverview

Az Intune APP-WE vagy MAM-WE néven is ismert eszközregisztráció nélküli alkalmazásvédelmi szabályzata lehetővé teszi, hogy az Intune anélkül is felügyelhesse az alkalmazásokat, hogy az eszközök az Intune mobileszköz-felügyeletre (MDM) regisztrálva lennének.Intune app protection policy without device enrollment, also known as APP-WE or MAM-WE, allows apps to be managed by Intune without the need for the device to be enrolled Intune mobile device management (MDM). Az új funkció használatához az alkalmazásnak lehetővé kell tennie a felhasználói fiók felügyeleti regisztrációját.To support this new functionality, the app must participate to register user accounts for management. Az új API-k használatához kövesse az alábbi lépéseket:To use the new APIs, follow these steps:

  1. Használja az Intune App SDK legújabb kiadását, amely az eszközregisztrációval és nélküle is lehetőséget nyújt az alkalmazások felügyeletére.Use the latest release of the Intune App SDK, which supports management of apps with or without device enrollment.

  2. Vegye fel a IntuneMAMEnrollment.h-t minden olyan fájlba, amely hívni fogja az API-kat.Add IntuneMAMEnrollment.h to any files that will call the APIs.

Felhasználói fiókok regisztrálásaRegister user accounts

Egy alkalmazás akkor fogadhat alkalmazásvédelmi szabályzatot az Intune szolgáltatástól, ha az alkalmazás regisztrálva van az APP-WE szolgáltatásban egy megadott felhasználói fiók nevében.An app can receive app protection policy from the Intune service if the app enrolls with the APP-WE service on behalf of a specified user account. Az alkalmazás felelős azért, hogy regisztráljon minden újonnan bejelentkezett felhasználót az SDK-val.The app is responsible for registering any newly signed-in user with the SDK. Az új felhasználói fiók hitelesítését követően az alkalmazásnak meg kell hívnia a registerAndEnrollAccount metódust, amelyet a „Headers/IntuneMAMEnrollment.h” fájl tartalmaz:After the new user account has been authenticated, the app should call the registerAndEnrollAccount method in Headers/IntuneMAMEnrollment.h:

/**


 *  This method will add the account to the list of registered accounts.
 *  An enrollment request will immediately be started.
 *  @param identity The UPN of the account to be registered with the SDK
 */

(void)registerAndEnrollAccount:(NSString *)identity;

Az SDK a registerAndEnrollAccount metódus meghívásával regisztrálja a felhasználói fiókot, és megpróbálja regisztrálni az alkalmazást ennek a fióknak a nevében.By calling the registerAndEnrollAccount method, the SDK will register the user account and attempt to enroll the app on behalf of this account. Ha a regisztráció bármilyen okból nem sikerül, az SDK 24 óra múlva újra próbálkozik.If the enrollment fails for any reason, the SDK will automatically retry the enrollment 24 hours later. Hibakeresési célokra az alkalmazás egy delegálton keresztül fogadhat értesítéseket a regisztrációs kérések eredményéről.For debugging purposes, the app can receive notifications, via a delegate, about the results of any enrollment requests.

Az API meghívása után az alkalmazás a szokásos módon működhet tovább.After this API has been invoked, the app can continue to function as normal. Ha a regisztráció sikeres, az SDK értesíti a felhasználót, hogy újra kell indítani az alkalmazást.If the enrollment succeeds, the SDK will notify the user that an app restart is required. Ekkor a felhasználó azonnal újraindíthatja az alkalmazást.At that time, the user can immediately restart the app.

Felhasználói fiókok regisztrációjának megszüntetéseDeregister user accounts

Mielőtt egy felhasználó kijelentkezik az alkalmazásból, az alkalmazásnak meg kell szüntetnie a felhasználó regisztrációját az SDK-ban.Before a user is signed out of an app, the app should deregister the user from the SDK. Ez a következőket garantálja:This will ensure:

  1. Nem lesznek további próbálkozások a felhasználói fiók regisztrálására.Enrollment retries will no longer happen for the user’s account.

  2. Az alkalmazásvédelmi szabályzat el lesz távolítva.App protection policy will be removed.

  3. Ha az alkalmazás szelektív törlést kezdeményez (igény szerint), akkor az összes céges adat törlődik.If the app initiates a selective wipe (optional), any corporate data is deleted.

A felhasználó kijelentkeztetése előtt az alkalmazásnak meg kell hívnia a következő API-t, amely itt található Headers/IntuneMAMEnrollment.h:Before the user is signed out, the app should call the following API in Headers/IntuneMAMEnrollment.h:

/*
 *  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 MAM 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 identity The UPN of the account to be removed.
 *  @param doWipe   If YES, a selective wipe if the account is un-enrolled
 */

(void)deRegisterAndUnenrollAccount:(NSString *)identity withWipe:(BOOL)doWipe;

Ezt a metódust még a felhasználó Azure AD-jogkivonatainak törlése előtt kell meghívni.This method must be called before the user account’s Azure AD tokens are deleted. Az SDK-nak azért van szüksége a felhasználói fiók AAD-jogkivonatára, hogy a felhasználó nevében küldhessen el bizonyos kéréseket az APP-WE-szolgáltatásnak.The SDK needs the user account’s AAD token(s) to make specific requests to the APP-WE service on behalf of the user.

Ha az alkalmazás saját maga gondoskodik a felhasználó céges adatainak törléséről, akkor a doWipe jelző false értékre állítható.If the app will delete the user’s corporate data on its own, the doWipe flag can be set to false. Ellenkező esetben az alkalmazás az SDK-t utasíthatja a szelektív törlés indítására.Otherwise, the app can have the SDK initiate a selective wipe. Ennek eredményeképpen létrejön egy hívás az alkalmazás szelektív törlési delegáltja felé.This will result in a call to the app's selective wipe delegate.

[[IntuneMAMEnrollmentManager instance] deRegisterAndUnenrollAccount:@”user@foo.com” withWipe:YES];

Az ADAL-t nem használó alkalmazásokApps that do not use ADAL

Olyan alkalmazás is fogadhat alkalmazásvédelmi szabályzatot az Intune szolgáltatástól, amely nem jelentkezteti be a felhasználót az ADAL használatával. Ez esetben az API meghívásával kell utasítani az SDK-t ennek a hitelesítésnek a kezelésére.Apps that do not sign in the user using ADAL can still receive app protection policy from the Intune service by calling the API to have the SDK handle that authentication. Az alkalmazásoknak ezt a módszert kell használniuk abban az esetben, ha nem hitelesítették a felhasználót az Azure AD-vel, ugyanakkor szükség van az alkalmazásvédelmi szabályzat lekérésére az adatok védelméhez.Apps should use this technique when they have not authenticated a user with Azure AD but still need to retrieve app protection policy to help protect data. Ilyen például, ha másik hitelesítési szolgáltatást használ az alkalmazásba való bejelentkezésre, vagy ha az alkalmazás egyáltalán nem támogatja a bejelentkezést.An example is if another authentication service is being used for app sign-in, or if the app does not support signing in at all. Ehhez az alkalmazásnak meg kell hívnia a loginAndEnrollAccount metódust, amelyet a „Headers/IntuneMAMEnrollment.h” fájl tartalmaz:To do this, the application should call the loginAndEnrollAccount method in Headers/IntuneMAMEnrollment.h:

/**
 *  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ása esetén az SDK hitelesítő adatok megadását kéri a felhasználótól, ha nem található meglévő token///jogkivonat.By calling this method, the SDK will prompt the user for credentials if no existing token can be found. Az SDK ezután megpróbálja regisztrálni az alkalmazást az APP-WE szolgáltatásban a megadott felhasználói fiók nevében.The SDK will then try to enroll the app with the APP-WE service on behalf of the supplied user account. A metódus nil (nulla) identitással is meghívható.The method can be called with "nil" as the identity. Ez esetben az SDK regisztrálja az eszköz meglévő felügyelt felhasználóját, vagy ha nem talál meglévő felhasználót, kéri a felhasználótól a felhasználónevet.In that case, the SDK will enroll with the existing managed user on the device, or prompt the user for a user name if no existing user is found.

Ha a regisztráció sikertelen, az alkalmazásnak valamikor a jövőben újra meg kell vizsgálnia az API meghívásának lehetőségét, függően a sikertelenség részleteitől.If the enrollment fails, the app should consider calling this API again at a future time, depending on the details of the failure. Az alkalmazás egy delegálton keresztül fogadhat értesítéseket a regisztrációs kérések eredményéről.The app can receive notifications, via a delegate, about the results of any enrollment requests.

Az API meghívása után az alkalmazás a szokásos módon működhet tovább.After this API has been invoked, the app can continue functioning as normal. Ha a regisztráció sikeres, az SDK értesíti a felhasználót, hogy újra kell indítani az alkalmazást.If the enrollment succeeds, the SDK will notify the user that an app restart is required.

Állapot-, eredmény- és hibakeresési értesítésekStatus, result, and debug notifications

Az alkalmazás az Intune MAM-szolgáltatásokhoz intézett kérések közül a következők esetében tudja fogadni az állapot-, eredmény- és hibakeresési értesítéseket:The app can receive status, result, and debug notifications about the following requests to the Intune MAM service:

  • Regisztrációs kérésekEnrollment requests
  • Szabályzatfrissítési kérésekPolicy update requests
  • Regisztrációtörlési kérésekUnenrollment requests

Az értesítéseket delegáltmetódusok adják át. Ezeket a Headers/IntuneMAMEnrollmentDelegate.h fájl tartalmazza:The notifications are presented via delegate methods in Headers/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áltmetódusok egy IntuneMAMEnrollmentStatus objektumot adnak vissza, amely a következő információkat tartalmazza:These delegate methods return an IntuneMAMEnrollmentStatus object that has the following information:

  • A kéréshez társított fiók identitásátThe identity of the account associated with the request
  • A kérés eredményét jelölő állapotkódotA status code that indicates the result of the request
  • Az állapotkód leírását tartalmazó hibaüzenet-karakterláncotAn error string with a description of the status code
  • Egy NSError objektumotAn NSError object

Ezt az objektumot az IntuneMAMEnrollmentStatus.h nevű fájl definiálja a visszaadható konkrét állapotkódokkal együtt.This object is defined in IntuneMAMEnrollmentStatus.h, along with the specific status codes that can be returned.

MintakódSample code

A következők a delegáltmetódusok megvalósítására szolgálnak példákkal:These are example implementations of the delegate methods:

- (void)enrollmentRequestWithStatus:(IntuneMAMEnrollmentStatus *)status
{
    NSLog(@"enrollment result for identity %@ with status code %ld", status.identity, (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.identity, (unsigned long)status.statusCode);
    NSLog(@"Debug Message: %@", status.errorString);
}

- (void)unenrollRequestWithStatus:(IntuneMAMEnrollmentStatus *)status
{
    NSLog(@"un-enroll result for identity %@ with status code %ld", status.identity, (unsigned long)status.statusCode);
    NSLog(@"Debug Message: %@", status.errorString);
}

Az alkalmazás újraindításaApp restart

Amikor egy alkalmazás először kap alkalmazásvédelmi szabályzatokat, újra kell indulnia a szükséges beavatkozási pontok alkalmazásához.When an app receives app protection policies for the first time, it must restart to apply the required hooks. Az SDK biztosít egy delegáltmetódust a „Headers/IntuneMAMPolicyDelegate.h” fájlban, amellyel értesíteni lehet az alkalmazást az újraindítás szükségességéről.To notify the app that a restart needs to happen, the SDK provides a delegate method in Headers/IntuneMAMPolicyDelegate.h.

 - (BOOL) restartApplication

A metódus visszatérési értéke közli az SDK-val, hogy az alkalmazásnak kell-e kezelni a szükséges újraindítást:The return value of this method tells the SDK if the application must handle the required restart:

  • Ha a visszatérési érték true (igaz), akkor az alkalmazásnak kell kezelnie az újraindítást.If true is returned, the application must handle the restart.

  • Ha a visszatérési érték false, akkor az SDK fogja újraindítani az alkalmazást a metódus visszatérése után.If false is returned, the SDK will restart the application after this method returns. Az SDK azonnal megjelenít egy párbeszédpanelt, amely arra kéri a felhasználót, hogy indítsa újra az alkalmazást.The SDK will immediately show a dialog box that tells the user to restart the application.

Az alkalmazás viselkedésének testreszabásaCustomize your app's behavior

Az Intune App SDK több olyan API-val rendelkezik, amelyeket meg lehet hívni az alkalmazáshoz telepített Intune-beli alkalmazásvédelmi szabályzat információinak beolvasásához.The Intune App SDK has several APIs you can call to get information about the Intune app protection policy deployed to the app. Ezekkel az adatokkal testre lehet szabni az alkalmazás viselkedését.You can use this data to customize your app's behavior. A legtöbb alkalmazásvédelmi szabályzatbeállítás automatikus kényszerítését az alkalmazás helyett az SDK végzi.Most app protection policy settings are automatically enforced by the SDK and not the application. Az alkalmazás által implementálandó egyetlen beállítás a Mentés másként vezérlő.The only setting that the app should implement is the Save-as control.

Alkalmazásvédelmi szabályzat lekéréseGet app protection policy

IntuneMAMPolicyManager.hIntuneMAMPolicyManager.h

Az IntuneMAMPolicyManager osztály tartalmazza az alkalmazáshoz telepített Intune alkalmazásvédelmi szabályzatot.The IntuneMAMPolicyManager class exposes the Intune app protection policy deployed to the application. Olyan API-kat tesz közzé, amelyek hasznosak lehetnek több identitás engedélyezésekor.Notably, it exposes APIs that are useful for Enabling multi-identity.

IntuneMAMPolicy.hIntuneMAMPolicy.h

Az IntuneMAMPolicy osztály tartalmazza az alkalmazáshoz telepített Intune alkalmazásvédelmi szabályzatot.The IntuneMAMPolicy class exposes the Intune app protection policy deployed to the application. Az osztályban található legtöbb szabályzatbeállítás kényszerítését az SDK végzi, de bármikor testre szabhatja az alkalmazás viselkedését a szabályzatbeállítások kényszerítése alapján.Most the policy settings exposed in this class are enforced by the SDK, but you can always customize your app's behavior based on how policy settings are enforced.

Ez az osztály tartalmazza azokat az API-kat, amelyek a Mentés másként vezérlők implementálásához szükségesek. Ennek részleteit a következő szakaszban találja.This class exposes some APIs needed to implement save-as controls, detailed in the next section.

A Mentés másként vezérlőinek implementálásaImplement save-as controls

Az Intune lehetővé teszi a rendszergazdák számára a felügyelt alkalmazások adatmentéshez használható tárolási helyeinek meghatározását.Intune lets IT admins select which storage locations a managed app can save data to. Az alkalmazások lekérhetik az engedélyezett tárolási helyek listáját az Intune App SDK-tól az isSaveToAllowedForLocation API használatával, ahogyan az az IntuneMAMPolicy.h nevű fájlban szerepel.Apps can query the Intune App SDK for allowed storage locations by using the isSaveToAllowedForLocation API, defined in IntuneMAMPolicy.h.

Mielőtt az alkalmazás felügyelt adatokat menthetne felhőbeli tárhelyre vagy helyi adattárolókba, az isSaveToAllowedForLocation API használatával ellenőriznie kell, hogy a rendszergazda engedélyezte-e az adatmentést az adott helyre.Before apps can save managed data to a cloud-storage or local location, they must check with the isSaveToAllowedForLocation API to know if the IT admin has allowed data to be saved there.

Az alkalmazásoknak az isSaveToAllowedForLocation használatakor át kell adniuk a tárolási hely UPN-jét, amennyiben az elérhető.When apps use the isSaveToAllowedForLocation API, they must pass in the UPN for the storage location, if it is available.

Támogatott mentési helyekSupported save locations

Az isSaveToAllowedForLocation API által biztosított állandókkal lehet ellenőrizni, hogy a rendszergazda engedélyezi-e az adatok mentését az IntuneMAMPolicy.h nevű fájlban meghatározott alábbi helyekre:The isSaveToAllowedForLocation API provides constants to check whether the IT admin permits data to be saved to the following locations defined in IntuneMAMPolicy.h:

  • IntuneMAMSaveLocationOtherIntuneMAMSaveLocationOther
  • IntuneMAMSaveLocationOneDriveForBusinessIntuneMAMSaveLocationOneDriveForBusiness
  • IntuneMAMSaveLocationSharePointIntuneMAMSaveLocationSharePoint
  • IntuneMAMSaveLocationLocalDriveIntuneMAMSaveLocationLocalDrive

Az alkalmazásoknak az isSaveToAllowedForLocation API állandóival kell ellenőrizniük, hogy az adatok menthetők-e a „felügyeltnek” tekintett, például a OneDrive Vállalati verziójába, vagy „személyes” helyekre.Apps should use the constants in the isSaveToAllowedForLocation API to check if data can be saved to locations considered "managed," like OneDrive for Business, or "personal." Emellett akkor is szükséges az API használata, ha az alkalmazás nem képes megállapítani egy adott helyről, hogy az „felügyelt” vagy „személyes”.Additionally, the API should be used when the app can't check whether a location is "managed" or "personal."

A „személyes” helyeket az IntuneMAMSaveLocationOther állandó képviseli.Locations known to be "personal" are represented by the IntuneMAMSaveLocationOther constant.

Az IntuneMAMSaveLocationLocalDrive állandót akkor érdemes használni, amikor az alkalmazás a helyi eszközre ment adatot.The IntuneMAMSaveLocationLocalDrive constant should be used when the app is saving data to any location on the local device.

Az Intune App SDK-beállítások konfigurálásaConfigure settings for the Intune App SDK

Az Intune App SDK beállítását és konfigurálását az alkalmazás Info.plist fájljában található IntuneMAMSettings szótárral végezheti el.You can use the IntuneMAMSettings dictionary in the application’s Info.plist file to set up and configure the Intune App SDK. Ha az IntuneMAMSettings szótár nem látható az Info.plist fájlban, akkor „IntuneMAMSettings” mezőnévvel létre kell hozni egy szótárt az alkalmazás Info.plist fájljában.If the IntuneMAMSettings dictionary is not seen in your Info.plist file, you should create a dictionary in your app's Info.plist with the field name "IntuneMAMSettings."

Az IntuneMAMSettings szótárban kulcs-érték sorokkal konfigurációs beállításokat vehet fel az SDK konfigurálásához.Under the IntuneMAMSettings dictionary, you can add key/value rows of configuration settings to configure the SDK. Az alábbi táblázatban az összes támogatott beállítás megtalálható.The table below lists all supported settings.

Egy részükről már volt szó korábbi szakaszokban, más részük pedig nem vonatkozik minden alkalmazásra.Some of these settings might have been covered in previous sections, and some do not apply to all apps.

BeállításSetting TípusType MeghatározásDefinition Kötelező?Required?
ADALClientIdADALClientId KarakterláncString Az alkalmazás Azure AD ügyfél-azonosítója.The app’s Azure AD client identifier. Kötelező, ha az alkalmazás használja az ADAL-t.Required if the app uses ADAL.
ADALAuthorityADALAuthority KarakterláncString Az alkalmazás használatban lévő Azure AD-szolgáltatója.The app's Azure AD authority in use. Használja azt a saját környezetet, ahol az AAD-fiókok konfigurálása megtörtént.You should use your own environment where AAD accounts have been configured. Kötelező, ha az alkalmazás használja az ADAL-t.Required if the app uses ADAL. Ha ez az érték hiányzik, a rendszer egy Intune-beli alapértelmezett értéket használ.If this value is absent, an Intune default is used.
ADALRedirectUriADALRedirectUri KarakterláncString Az alkalmazás Azure AD átirányítási URI-ja.The app’s Azure AD redirect URI. Az ADALRedirectUri vagy az ADALRedirectScheme kötelező, ha az alkalmazás használja az ADAL-t.ADALRedirectUri or ADALRedirectScheme is required if the app uses ADAL.
ADALRedirectSchemeADALRedirectScheme KarakterláncString Az alkalmazás Azure AD átirányítási sémája.The app's Azure AD redirect scheme. Használható az ADALRedirectUri helyett, ha az alkalmazás átirányítási URI-ja scheme://bundle_id formátumú.This can be used in place of ADALRedirectUri if the application's redirect URI is in the format scheme://bundle_id. Az ADALRedirectUri vagy az ADALRedirectScheme kötelező, ha az alkalmazás használja az ADAL-t.ADALRedirectUri or ADALRedirectScheme is required if the app uses ADAL.
ADALLogOverrideDisabledADALLogOverrideDisabled LogikaiBoolean Megadásával az SDK átirányítja az összes ADAL-naplófájlt (beleértve az esetleges ADAL-hívásokat az alkalmazásból) a saját naplófájljába.Specifies whether the SDK will route all ADAL logs (including ADAL calls from the app, if any) to its own log file. Az alapértelmezett érték a Nem.Defaults to NO. Állítsa be a YES értéket, ha az alkalmazás visszahívja a saját ADAL-naplóját.Set to YES if the app will set its own ADAL log callback. Nem kötelező.Optional.
ADALCacheKeychainGroupOverrideADALCacheKeychainGroupOverride KarakterláncString Az ADAL-gyorsítótárhoz a „com.microsoft.adalcache” helyett használandó kulcslánccsoportot adja meg.Specifies the keychain group to use for the ADAL cache, instead of “com.microsoft.adalcache." Vegye figyelembe, hogy ez nem tartalmazza az app-id előtagot.Note that this doesn’t have the app-id prefix. Ezt az előtagot futás közben fogja megkapni a karakterlánc.That will be prefixed to the provided string at runtime. Nem kötelező.Optional.
AppGroupIdentifiersAppGroupIdentifiers A karakterlánc tömbjeArray of string Az alkalmazáscsoportok tömbje az alkalmazás jogosultságainak com.apple.security.application-groups szakaszában.Array of app groups from the app’s entitlements com.apple.security.application-groups section. Szükséges, ha az alkalmazás alkalmazáscsoportokat használ.Required if the app uses application groups.
ContainingAppBundleIdContainingAppBundleId KarakterláncString Megadja a bővítményt tartalmazó alkalmazás csomagazonosítóját.Specifies the bundle ID of the extension’s containing application. IOS-bővítményekhez szükséges.Required for iOS extensions.
DebugSettingsEnabledDebugSettingsEnabled LogikaiBoolean Ha YES értékű, használhatók a Settings csomagban található tesztszabályzatok.If set to YES, test policies within the Settings bundle can be applied. Az alkalmazásokat tilos úgy szállítani, hogy engedélyezve van bennük ez a beállítás.Applications should not be shipped with this setting enabled. Nem kötelező.Optional.
MainNibFileMainNibFile
MainNibFile~ipadMainNibFile~ipad
KarakterláncString Ennek a beállításnak tartalmaznia kell az alkalmazás fő Nib-fájljának nevét.This setting should have the application’s main nib file name. Kötelező, ha az alkalmazás a MainNibFile-t az Info.plist fájlban definiálja.Required if the application defines MainNibFile in Info.plist.
MainStoryboardFileMainStoryboardFile
MainStoryboardFile~ipadMainStoryboardFile~ipad
KarakterláncString Ennek a beállításnak tartalmaznia kell az alkalmazás fő storyboard-fájljának nevét.This setting should have the application’s main storyboard file name. Kötelező, ha az alkalmazás a UIMainStoryboardFile-t az Info.plist fájlban definiálja.Required if the application defines UIMainStoryboardFile in Info.plist.
AutoEnrollOnLaunchAutoEnrollOnLaunch LogikaiBoolean Megadja, hogy az alkalmazás megpróbáljon-e automatikusan regisztrálni indításkor, ha meglévő felügyelt identitást érzékel, és ha korábban még nem történt regisztráció.Specifies whether the app should attempt to automatically enroll on launch if an existing managed identity is detected and it has not yet done so. Az alapértelmezett érték a Nem.Defaults to NO.

Megjegyzés: Ha az alkalmazás nem talál felügyelt identitást, vagy nem érhető el érvényes token az identitáshoz az ADAL-gyorsítótárban, a regisztrációs kísérlet meg fog hiúsulni anélkül, hogy az alkalmazás a hitelesítő adatokat kérné, hacsak nincs a MAMPolicyRequired-opció is IGEN-re állítva.Notes: If no managed identity is found or no valid token for the identity is available in the ADAL cache, the enrollment attempt will silently fail without prompting for credentials, unless the app has also set MAMPolicyRequired to YES.
Nem kötelező.Optional.
MAMPolicyRequiredMAMPolicyRequired LogikaiBoolean Azt adja meg, hogy megakadályozza-e a rendszer az alkalmazás elindítását, ha az alkalmazásnak nincs Intune alkalmazásvédelmi szabályzata.Specifies whether the app will be blocked from starting if the app does not have an Intune app protection policy. Az alapértelmezett érték a Nem.Defaults to NO.

Megjegyzés: nem lehet olyan alkalmazásokat beküldeni az App Store-ba, amelyeknél a MAMPolicyRequired beállítás értéke IGEN.Notes: Apps cannot be submitted to the App Store with MAMPolicyRequired set to YES. HA a MAMPolicyRequired értéke IGEN, az AutoEnrollOnLaunch beállítását is IGEN értékre kell állítani.When setting MAMPolicyRequired to YES, AutoEnrollOnLaunch should also be set to YES.
Nem kötelező.Optional.
MAMPolicyWarnAbsentMAMPolicyWarnAbsent LogikaiBoolean Azt adja meg, hogy figyelmeztesse-e az alkalmazás a felhasználót az indítás közben, ha az alkalmazásnak nincs Intune alkalmazásvédelmi szabályzata.Specifies whether the app will warn the user during launch if the app does not have an Intune app protection policy.

Megjegyzés: A felhasználók a figyelmeztetés bezárása után szabályzat nélkül is használhatják az alkalmazást.Note: Users will still be allowed to use the app without policy after dismissing the warning.
Nem kötelező.Optional.
MultiIdentityMultiIdentity LogikaiBoolean Azt adja meg, hogy az alkalmazás képes-e kezelni a többszörös identitást.Specifies whether the app is multi-identity aware. Nem kötelező.Optional.
SplashIconFileSplashIconFile
SplashIconFile ~ ipadSplashIconFile~ipad
KarakterláncString Az Intune-kezdőképet (indítóképernyőt) tartalmazó ikonfájlt határozza meg.Specifies the Intune splash (startup) icon file. Nem kötelező.Optional.
SplashDurationSplashDuration SzámNumber Az Intune-kezdőképernyő megjelenésének minimális időtartama (másodpercben) az alkalmazás indításakor.Minimum amount of time, in seconds, that the Intune startup screen will be shown at application launch. Az alapértelmezett érték 1.5.Defaults to 1.5. Nem kötelező.Optional.
BackgroundColorBackgroundColor KarakterláncString A kezdő- és a PIN-kód bevitelére szolgáló képernyő háttérszínét adja meg.Specifies the background color for the startup and PIN screens. Hexadecimális RGB-karakterláncot fogad el „#XXXXXX” alakban, amelyben az X-ek helyén számjegy (0–9), illetve és A és F közötti nagybetű állhat.Accepts a hexadecimal RGB string in the form of #XXXXXX, where X can range from 0-9 or A-F. A kettőskereszt jel kihagyható.The pound sign might be omitted. Nem kötelező.Optional. Alapértelmezése a világosszürke szín.Defaults to light grey.
ForegroundColorForegroundColor KarakterláncString A kezdőképernyő és a PIN-kód bevitelére szolgáló képernyő előtérszínét, például a szöveg színét határozza meg.Specifies the foreground color for the startup and PIN screens, like text color. Hexadecimális RGB-karakterláncot fogad el „#XXXXXX” alakban, amelyben az X-ek helyén számjegy (0–9), illetve és A és F közötti nagybetű állhat.Accepts a hexadecimal RGB string in the form of #XXXXXX, where X can range from 0-9 or A-F. A kettőskereszt jel kihagyható.The pound sign might be omitted. Nem kötelező.Optional. Alapértelmezett értéke a fekete.Defaults to black.
AccentColorAccentColor KarakterláncString A PIN-kód megadására szolgáló képernyő kiemelőszínét (például a gombszöveg színét és a mezők kijelölésének színét) határozza meg.Specifies the accent color for the PIN screen, like button text color and box highlight color. Hexadecimális RGB-karakterláncot fogad el „#XXXXXX” alakban, amelyben az X-ek helyén számjegy (0–9), illetve és A és F közötti nagybetű állhat.Accepts a hexadecimal RGB string in the form of #XXXXXX, where X can range from 0-9 or A-F. A kettőskereszt jel kihagyható.The pound sign might be omitted. Nem kötelező.Optional. Alapértéke a rendszer kék színe.Defaults to system blue.
MAMTelemetryDisabledMAMTelemetryDisabled LogikaiBoolean Az határozható meg vele, hogy az SDK ne küldjön telemetriai adatokat a háttérrendszerének.Specifies if the SDK will not send any telemetry data to its back end. Nem kötelező.Optional.
Megjegyzés

Ha az alkalmazás elérhető lesz az App Store-ban, a MAMPolicyRequired értékét NEM értékre kell beállítani az App Store irányelvei alapján.If your app will be released to the App Store, MAMPolicyRequired must be set to "NO," per App Store standards.

Célzott MAM-konfiguráció engedélyezése iOS-alkalmazásokhozEnabling MAM targeted configuration for your iOS applications

A célzott MAM-konfiguráció lehetővé teszi, hogy az alkalmazások konfigurációs adatokat fogadjanak az Intune App SDK-ból.MAM targeted configuration allows an app to receive configuration data through the Intune App SDK. Ezeknek az adatoknak a formátumát és változatait az alkalmazás tulajdonosának/fejlesztőjének kell meghatároznia és kommunikálnia az Intune-ügyfelek felé.The format and variants of this data must be defined and communicated to Intune customers by the application owner/developer. Az Intune-rendszergazdák az Intune Azure-konzolról célozhatják és telepíthetik a konfigurációs adatokat.Intune administrators can target and deploy configuration data via the Intune Azure console. Ami az Intune App SDK for iOS-t (7.0.1 verzió) illeti, a célzott MAM-konfigurációban résztvevő alkalmazások a MAM szolgáltatáson keresztül kaphatják meg a célzott MAM-konfigurációs adatokat.As of the Intune App SDK for iOS (v 7.0.1), apps that are participating in MAM targeted configuration can be provded MAM targeted configuration data via the MAM Service. Az alkalmazáskonfigurációs adatokat az MDM-csatorna helyett az MAM szolgáltatásán keresztül közvetlenül az alkalmazásba küldi a rendszer.The application configuration data is pushed through our MAM Service directly to the app instead of through the MDM channel. Az Intune App SDK egy osztályt biztosít az ezekről a konzolokról lekért adatok eléréséhez.The Intune App SDK provides a class to access the data retrieved from these consoles. Vegye figyelembe a következő előfeltételeket:Consider the following as prerequisites:

  • Mielőtt elérhetné a célzott MAM-konfigurációs felhasználói felületet, az alkalmazásnak regisztrálva kell lennie a MAM-WE-ben.The app needs to be MAM-WE enrolled before you access the MAM targeted config UI. A MAM-WE-re vonatkozó további információért lásd az Alkalmazásvédelmi szabályzat használata eszközbeléptetés nélkül lapot.For more information about MAM-WE, see App protection policy without device enrollment in the Intune App SDK guide.
  • Foglalja bele az IntuneMAMAppConfigManager.h kódot az alkalmazás forrásfájljába.Include IntuneMAMAppConfigManager.h in your app's source file.
  • Az alkalmazás konfigurációs objektumának beszerzéséhez hívja az [[IntuneMAMAppConfig instance] appConfigForIdentity:] funkciót.Call [[IntuneMAMAppConfig instance] appConfigForIdentity:] to get the App Config Object.
  • Hívja a megfelelő szelektort az IntuneMAMAppConfig objektumon.Call the appropriate selector on IntuneMAMAppConfig object. Ha például az alkalmazás kulcsa egy karakterlánc, akkor használhatja a stringValueForKey vagy az allStringsForKey lehetőséget.For example, if your application's key is a string, you'd want to use stringValueForKey or allStringsForKey. Az IntuneMAMAppConfig.h header fájl közli a visszaadott értékeket/hibafeltételeket.The IntuneMAMAppConfig.h header file talks about return values/error conditions.

A Graph API célzott MAM-konfigurációs értékekre vonatkozó képességeivel kapcsolatos további információért lásd a Graph API-referencia – célzott MAM-konfiguráció témájú weblapot.For more information about the capabilities of the Graph API with respect to the MAM targeted configuration values, see Graph API Reference MAM Targeted Config.

A célzott MAM-alkalmazáskonfigurációs szabályzat iOS rendszerben való létrehozásáról lásd A Microsoft Intune alkalmazáskonfigurációs szabályzatainak használata iOS rendszerben célzott MAM-alkalmazáskonfigurációról szóló szakaszát.For more information about how to create a MAM targeted app configuration policy in iOS, see the section on MAM targeted app config in How to use Microsoft Intune app configuration policies for iOS.

TelemetriaTelemetry

Az iOS-hez készült Intune App SDK alapértelmezés szerint a következő használati eseményekkel kapcsolatos telemetriai adatokat naplózza.By default, the Intune App SDK for iOS logs telemetry data on the following usage events. Az adatokat az SDK a Microsoft Intune-nak küldi el.This data is sent to Microsoft Intune.

  • Az alkalmazások indítása: a Microsoft Intune tájékozódhat a különböző felügyeleti típusú MAM-kompatibilis alkalmazások használatáról (MAM az MDM-mel, MAM MDM-regisztráció nélkül stb.).App launch: To help Microsoft Intune learn about MAM-enabled app usage by management type (MAM with MDM, MAM without MDM enrollment, and so on).

  • Regisztrációs hívások: a Microsoft Intune a sikerességi arányról és az ügyféloldalról kezdeményezett regisztrációs hívások egyéb teljesítménymutatóiról is gyűjt információkat.Enrollment calls: To help Microsoft Intune learn about success rate and other performance metrics of enrollment calls initiated from the client side.

Megjegyzés

Ha nem kíván az Intune App SDK-ból származó telemetriai adatokat küldeni a Microsoft Intune-nak a mobilalkalmazásból, le kell tiltania az Intune App SDK-ban a telemetriai adatok rögzítését.If you choose not to send Intune App SDK telemetry data to Microsoft Intune from your mobile application, you must disable Intune App SDK telemetry capture. Ehhez állítsa a MAMTelemetryDisabled tulajdonságot YES értékre az IntuneMAMSettings szótárban.Set the property MAMTelemetryDisabled to YES in the IntuneMAMSettings dictionary.

A többszörös identitás engedélyezése (nem kötelező)Enable multi-identity (optional)

Az SDK alapértelmezés szerint az alkalmazás egészére alkalmazza a szabályzatot.By default, the SDK applies a policy to the app as a whole. A MAM többszörös identitás szolgáltatásával engedélyezhető a szabályzatok identitásszintű alkalmazása.Multi-identity is a MAM feature that you can enable to apply a policy on a per-identity level. Ebből az alkalmazásnak nagyobb részt kell vállalnia, mint a MAM többi funkciójából.This requires more app participation than other MAM features.

Az alkalmazásnak tájékoztatnia kell az App SDK-t, ha módosítani kívánja az aktív identitást.The app must inform the app SDK when it intends to change the active identity. Az SDK szintén értesíti az alkalmazást, ha identitásváltás szükséges.The SDK also notifies the app when an identity change is required. Jelenleg csak egy felügyelt identitás támogatott.Currently, only one managed identity is supported. Ha a felhasználó már regisztrálta az eszközt vagy az alkalmazást, az SDK ezt az identitást használja, és ezt tekinti az elsődleges felügyelt identitásnak.After the user enrolls the device or the app, the SDK uses this identity and considers it the primary managed identity. Az alkalmazás többi felhasználójával nem felügyeltként bánik, szabályzatbeállításaik korlátlanok.Other users in the app will be treated as unmanaged with unrestricted policy settings.

Felhívjuk, hogy az identitás egyszerűen egy karakterláncként van definiálva.Note that an identity is simply defined as a string. Az identitás karakterláncában a kis- és nagybetűk nincsenek megkülönböztetve.Identities are case-insensitive. Az SDK nem feltétlenül olyan kis- és nagybetűkkel adja vissza a tőle kért identitásokat, mint ahogyan az az identitás beállításakor eredetileg meg volt adva.Requests to the SDK for an identity might not return the same casing that was originally used when the identity was set.

Az identitás áttekintéseIdentity overview

Az identitás egyszerűen egy fiók felhasználóneve (például user@contoso.com).An identity is simply the user name of an account (for example, user@contoso.com). A fejlesztők a következő szinteken állíthatják be az alkalmazás identitását:Developers can set the identity of the app on the following levels:

  • Folyamat identitása: a folyamat szintjén állítja be az identitást, és elsősorban egyidentitású alkalmazások esetében használatos.Process identity: Sets the process-wide identity and is mainly used for single identity applications. Ez az identitás hatással van minden műveletre, fájlra és a kezelőfelületre is.This identity affects all tasks, files, and UI.

  • Kezelőfelület identitása: azt határozza meg, hogy milyen szabályzatok alkalmazandók a főszálban végzett kezelőfelületi műveletekre, például a kivágásra, a másolásra, a beillesztésre, a PIN-kód megadására, a hitelesítésre vagy az adatmegosztásra.UI identity: Determines what policies are applied to UI tasks on the main thread, like cut/copy/paste, PIN, authentication, and data sharing. A kezelőfelület identitása nincs hatással a fájlműveletekre, például a titkosításra vagy a biztonsági mentésre.The UI identity does not affect file tasks like encryption and backup.

  • Szál identitása: azt határozza meg, hogy milyen szabályzatok alkalmazandók az aktuális szálra.Thread identity: Affects what policies are applied on the current thread. Ez az identitás hatással van minden műveletre, fájlra és a kezelőfelületre is.This identity affects all tasks, files, and UI.

Az identitás helyes beállítása az alkalmazás feladata, függetlenül attól, hogy felügyelt felhasználóról van-e szó vagy sem.The app is responsible for setting the identities appropriately, whether or not the user is managed.

Minden szálnak minden pillanatban van egy effektív identitása mind a kezelőfelületi műveletekre, mind a fájlműveletekre vonatkozóan.At any time, every thread has an effective identity for UI tasks and file tasks. A rendszer ennek az identitásnak az alapján határozza meg, hogy kell-e alkalmazni szabályzatokat, és ha igen, milyeneket.This is the identity that's used to check what policies, if any, should be applied. Ha az identitás „no identity”, vagy ha nem felügyelt felhasználóról van szó, a rendszer nem alkalmaz szabályzatokat.If the identity is "no identity" or the user is not managed, no policies will be applied. Az alábbi ábrán látható, hogy a rendszer miként határozza meg a tényleges identitásokat.The diagrams below show how the effective identities are determined.

Intune App SDK (iOS) – csatolt keretrendszerek és könyvtárak

Szálak várólistáiThread queues

Az alkalmazások gyakran indítanak aszinkron és szinkron feladatokat a szálak várólistáinak.Apps often dispatch asynchronous and synchronous tasks to thread queues. Az SDK elfogja a Grand Central Dispatch (GCD) típusú hívásokat, és az aktuális szál identitását társítja az indított hívásokhoz.The SDK intercepts Grand Central Dispatch (GCD) calls and associates the current thread identity with the dispatched tasks. A feladatok befejezésekor az SDK átmenetileg módosítja a szál identitását a feladathoz társított identitásra, befejezi a feladatokat, majd visszaállítja a szál eredeti identitását.When the tasks are finished, the SDK temporarily changes the thread identity to the identity associated with the tasks, finishes the tasks, then restores the original thread identity.

Tekintettel arra, hogy az NSOperationQueue a GCD-re épül, az NSOperations műveletek azzal az identitással futnak, amely a szál identitása volt az adott művelet NSOperationQueue várólistába való felvételekor.Because NSOperationQueue is built on top of GCD, NSOperations will run on the identity of the thread at the time the tasks are added to NSOperationQueue. Az NSOperations műveletek és a GCD segítségével közvetlenül indított függvények módosíthatják is a szál aktuális identitását, amikor futnak.NSOperations or functions dispatched directly through GCD can also change the current thread identity as they are running. Ez az identitás felülbírálja az indító száltól örökölt identitást.This identity will override the identity inherited from the dispatching thread.

A fájl tulajdonosaFile owner

Az SDK nyilvántartja a helyi fájltulajdonosok identitását, és annak megfelelően alkalmazza a szabályzatokat.The SDK tracks the identities of local file owners and applies policies accordingly. A rendszer a fájlhoz a létrehozásakor vagy csonkolási módban való megnyitásakor rendeli hozzá a tulajdonost.A file owner is established when a file is created or when a file is opened in truncate mode. A rendszer tulajdonosként a műveletet végrehajtó szál effektív fájlműveleti identitását állítja be.The owner is set to the effective file task identity of the thread that's performing the task.

Az alkalmazások explicit módon is megadhatják a fájl tulajdonosát az IntuneMAMFilePolicyManager segítségével.Alternatively, apps can set the file owner identity explicitly by using IntuneMAMFilePolicyManager. Az alkalmazások az IntuneMAMFilePolicyManager segítségével kérhetik le a fájl tulajdonosát, és állíthatják be a kezelőfelület identitását a fájl tartalmának megjelenítése előtt.Apps can use IntuneMAMFilePolicyManager to retrieve the file owner and set the UI identity before showing the file contents.

Megosztott adatokShared data

Ha az alkalmazás olyan fájlokat hoz létre, amelyek felügyelt és nem felügyelt felhasználóktól származó adatokat is tartalmaznak, akkor az alkalmazás felelős a felügyelt felhasználó adatainak titkosításáért.If the app creates files that have data from both managed and unmanaged users, the app is responsible for encrypting the managed user’s data. Az adatokat a protect és az unprotect API-k segítségével titkosíthatja az IntuneMAMDataProtectionManager eszközben.You can encrypt data by using the protect and unprotect APIs in IntuneMAMDataProtectionManager.

A protect metódus identitást fogad el paraméterként. Ez lehet felügyelt és nem felügyelt felhasználó is.The protect method accepts an identity that can be a managed or unmanaged user. Felügyelt felhasználó esetén titkosítja az adatokat.If the user is managed, the data will be encrypted. Nem felügyelt felhasználó esetén az identitást kódoló fejlécet ad hozzá az adatokhoz, de nem titkosítja az adatokat.If the user is unmanaged, a header will be added to the data that's encoding the identity, but the data will not be encrypted. A protectionInfo metódussal lehet bekérni az adat tulajdonosát.You can use the protectionInfo method to retrieve the data’s owner.

Megosztási bővítményekShare extensions

Ha az alkalmazás megosztási bővítményt tartalmaz, a megosztás alatt álló elem tulajdonosa az IntuneMAMDataProtectionManager protectionInfoForItemProvider metódusával kérhető le.If the app has a share extension, the owner of the item being shared can be retrieved through the protectionInfoForItemProvider method in IntuneMAMDataProtectionManager. Ha a megosztott elem fájl, az SDK kezeli a fájl tulajdonosának beállítását.If the shared item is a file, the SDK will handle setting the file owner. Ha a megosztott elem adat, és az adatok fájlban lesznek tárolva, akkor az alkalmazás felelős a fájl tulajdonosának beállításáért és a setUIPolicyIdentity API meghívásáért, mielőtt megjelenítené az adatokat a kezelőfelületen.If the shared item is data, the app is responsible for setting the file owner if this data is persisted to a file, and for calling the setUIPolicyIdentity API before showing this data in the UI.

A többszörös identitás bekapcsolásaTurning on multi-identity

Alapértelmezés szerint az alkalmazások egyszeres identitásnak minősülnek.By default, apps are considered single identity. Az SDK a folyamat identitását a regisztrált felhasználóhoz állítja be.The SDK sets the process identity to the enrolled user. A többszörös identitás támogatás engedélyezéséhez a MultiIdentity nevű és YES értékű beállítást kell felvenni az alkalmazás Info.plist fájljába, az IntuneMAMSettings szótárba.To enable multi-identity support, add a Boolean setting with the name MultiIdentity and a value of YES to the IntuneMAMSettings dictionary in the app's Info.plist file.

Megjegyzés

Ha engedélyezve van a többszörös identitás, a folyamat identitása, a kezelőfelület identitása és a szálak identitása nil lesz.When multi-identity is enabled, the process identity, UI identity, and thread identities are set to nil. Ezek megfelelő beállítása az alkalmazás feladata.The app is responsible for setting them appropriately.

IdentitásváltásSwitching identities

  • Az alkalmazás által kezdeményezett identitásváltás:App-initiated identity switch:

    A többszörös identitású alkalmazásokat az indításkor ismeretlen, nem felügyelt fiókkal futó alkalmazásnak tekinti a rendszer.At launch, multi-identity apps are considered to be running under an unknown, unmanaged account. A feltételes indítási felhasználói felület nem fut le, és a szabályzatokat sem foganatosítja a rendszer az alkalmazásra.The conditional launch UI will not run, and no policies will be enforced on the app. Az alkalmazás feladata, hogy értesítse az SDK-t minden alkalommal, amikor módosítani kell az identitást.The app is responsible for notifying the SDK whenever the identity should be changed. Erre általában olyankor kerül sor, amikor az alkalmazás arra készül, hogy adatokat jelenítsen meg egy bizonyos felhasználói fióknak.Typically, this will happen whenever the app is about to show data for a specific user account.

    Ilyen például, amikor a felhasználó megpróbál megnyitni egy dokumentumot, egy postaládát vagy egy jegyzetfüzetlapot.An example is when the user attempts to open a document, a mailbox, or a tab in a notebook. Az alkalmazásnak értesítenie kell az SDK-t, mielőtt ténylegesen megnyitja a fájlt, a postaládát vagy a lapot.The app needs to notify the SDK before the file, mailbox, or tab is actually opened. Ez a IntuneMAMPolicyManager setUIPolicyIdentity API-jával történik.This is done through the setUIPolicyIdentity API in IntuneMAMPolicyManager. Ezt az API-t kell meghívni attól függetlenül, hogy felügyelt vagy nem felügyelt felhasználóról van-e szó,.This API should be called whether or not the user is managed. Ha a felhasználó felügyelt, az SDK elvégzi a feltételes indítás ellenőrzését (jailbreak-észlelés, PIN-kód, hitelesítés stb.).If the user is managed, the SDK will perform the conditional launch checks, like jailbreak detection, PIN, and authentication.

    Az identitásváltás eredményét aszinkron módon, egy befejezéskezelővel adja vissza.The result of the identity switch is returned to the app asynchronously through a completion handler. Az alkalmazásnak egészen addig el kell halasztania a dokumentum, postaláda vagy lap megnyitását, amíg nem kap vissza sikeres eredménykódot.The app should postpone opening the document, mailbox, or tab until a success result code is returned. Ha az identitásváltás sikertelen, az alkalmazásnak vissza kell vonnia a műveletet.If the identity switch failed, the app should cancel the task.

  • Az SDK által kezdeményezett identitásváltás:SDK-initiated identity switch:

    Az SDK-nak bizonyos esetekben arra kell kérnie az alkalmazást, hogy váltson át egy bizonyos identitásra.Sometimes, the SDK needs to ask the app to switch to a specific identity. A többszörös identitású alkalmazásoknak meg kell valósítaniuk az IntuneMAMPolicyDelegate identitySwitchRequired metódusát ahhoz, hogy kezelni tudják az ilyen kérést.Multi-identity apps must implement the identitySwitchRequired method in IntuneMAMPolicyDelegate to handle this request.

    Ha ezt a metódust meghívják, és az alkalmazás képes kezelni a megadott identitásra való átváltási kérést, akkor az IntuneMAMAddIdentityResultSuccess értéket kell átadnia a befejezéskezelőbe.When this method is called, if the app can handle the request to switch to the specified identity, it should pass IntuneMAMAddIdentityResultSuccess into the completion handler. Ha az alkalmazás nem képes kezelni az identitásváltást, akkor az IntuneMAMAddIdentityResultFailed értéket kell átadnia a befejezéskezelőbe.If it can't handle switching the identity, the app should pass IntuneMAMAddIdentityResultFailed into the completion handler.

    Az alkalmazásnak nem kell meghívnia az setUIPolicyIdentity metódust erre a hívásra válaszul.The app does not have to call setUIPolicyIdentity in response to this call. Ha az SDK-nak arra kell megkérnie az alkalmazást, hogy egy nem felügyelt felhasználói fiókra váltson, akkor az üres karakterláncot adja át az identitySwitchRequired hívásban.If the SDK needs the app to switch to an unmanaged user account, the empty string will be passed into the identitySwitchRequired call.

  • Szelektív törlés:Selective wipe:

    Az alkalmazás szelektív törlése esetén az SDK a IntuneMAMPolicyDelegate wipeDataForAccount metódusát hívja meg.When the app is selectively wiped, the SDK will call the wipeDataForAccount method in IntuneMAMPolicyDelegate. Az alkalmazás felelős azért, hogy törölje a felhasználó fiókját és a hozzá kapcsolódó adatokat.The app is responsible for removing the specified user’s account and any data associated with it. Az SDK képes arra, hogy töröljön minden fájlt, amely a felhasználó tulajdonában van. Akkor teszi ezt, ha az alkalmazás a „FALSE” eredményt adja vissza a wipeDataForAccount hívásból.The SDK is capable of removing all files owned by the user and will do so if the app returns FALSE from the wipeDataForAccount call.

    Vegye figyelembe, hogy a metódus meghívása egy háttérszálból történik.Note that this method is called from a background thread. Az alkalmazás csak akkor adhat vissza értéket, ha a felhasználóhoz tartozó összes adat el lett távolítva (a fájlok kivételével, amennyiben az alkalmazás „FALSE” eredményt ad vissza).The app should not return a value until all data for the user has been removed (with the exception of files if the app returns FALSE).

Alkalmazásvédelmi szabályzatbeállítások tesztelése az Xcode-banTest app protection policy settings in Xcode

Az Intune-ra felkészített alkalmazások éles környezetben való manuális tesztelése előtt használhatja az Xcode-ban a Settings.bundle fájlt.Before you manually test your Intune-enlightened app in production, you can use a Settings.bundle file while in Xcode. Ezzel alkalmazásvédelmi tesztszabályzatokat állíthat be az Intune elérése nélkül.This will let you set app protection policies for testing without requiring a connection to Intune.

Szabályzattesztelés engedélyezéseEnable policy testing

Ha engedélyezni szeretné a szabályzattesztelést az Xcode-ban, kövesse az alábbi lépéseket:Follow the steps below to enable policy testing in Xcode:

  1. Ügyeljen rá, hogy hibakeresési buildelési verziót használjon.Make sure to be in a debug build. Vegye fel a Settings.bundle fájlt a projekt legfelső mappájára jobb gombbal kattintva.Add a Settings.bundle file by right-clicking the top-level folder in your project. A menüből válassza az Add (Hozzáadás) > New File (Új fájl) lehetőséget.Choose Add > New File from the menu. Válassza a Resources (Források) alatt található Settings Bundle nevű sablont.Under Resources, choose the Settings Bundle template.

  2. Illessze be az alábbi blokkot a hibakeresési build Settings.bundle/Root.plist fájljába:Copy the following block to the Settings.bundle/Root.plist file for the debug build:

    <key>PreferenceSpecifiers</key>
    <array>
        <dict>
            <key>Type</key>
            <string>PSChildPaneSpecifier</string>
            <key>Title</key>
            <string>MDM Debug Settings</string>
            <key>Key</key>
            <string>MAMDebugSettings</string>
            <key>File</key>
            <string>MAMDebugSettings</string>
        </dict>
    </array>
    
  3. Az alkalmazás Info.plist fájljának IntuneMAMSettings szótárában vegyen fel egy "DebugSettingsEnabled" nevű logikai érték típusú paramétert.In the IntuneMAMSettings dictionary in the app's Info.plist, add a boolean called "DebugSettingsEnabled." A DebugSettingsEnabled értékét állítsa "YES"-re.Set the value of DebugSettingsEnabled to "YES."

Alkalmazásvédelmi szabályzatbeállításokApp protection policy settings

Az alábbi táblázat azokat az alkalmazásvédelmi szabályzatbeállításokat ismerteti, amelyeket a MAMDebugSettings.plist használatával tesztelhet.The table below describes the app protection policy settings that you can test using MAMDebugSettings.plist. A bekapcsolni kívánt beállításokat vegye fel a MAMDebugSettings.plist fájlba.To turn on a setting, add it in MAMDebugSettings.plist.

Szabályzatbeállítás nevePolicy setting name LeírásDescription Lehetséges értékekPossible values
AccessRecheckOfflineTimeoutAccessRecheckOfflineTimeout Percekben megadott idő, amíg az alkalmazás offline lehet, mielőtt az Intune letiltaná az alkalmazás indítását vagy folytatását, ha a hitelesítés engedélyezve van.The length of time in minutes the app can be offline before Intune blocks the app from launching or resuming if authentication is enabled. Bármilyen, 0-nál nagyobb integerAny integer greater than 0
AccessRecheckOnlineTimeoutAccessRecheckOnlineTimeout Az alkalmazás percekben megadott futásideje, mielőtt a felhasználónak PIN-kódot kell megadnia vagy hitelesítenie kell magát alkalmazás indításakor vagy folytatásakor (ha a hitelesítés vagy a hozzáférési PIN-kód engedélyezve van).The length of time in minutes the app can run before the user is prompted for PIN or authentication at launch or resume (if authentication or PIN for access is enabled). Bármilyen, 0-nál nagyobb integerAny integer greater than 0
AppSharingFromLevelAppSharingFromLevel Azt adja meg, hogy az alkalmazás mely más alkalmazásoktól fogadhat adatokat.Specifies which apps this app can accept data from. 0 =0 =

Gyakorlati tanácsok iOS rendszerheziOS best practices

Az alábbiakban néhány gyakorlati tanácsot kínálunk iOS-alapú fejlesztéshez:Here are recommended best practices for developing for iOS:

  • Az iOS fájlrendszere megkülönbözteti a kis-és nagybetűket.The iOS file system is case-sensitive. Ügyeljen a kis- és nagybetűk helyes használatára az olyan fájlneveknél, mint például a libIntuneMAM.a vagy az IntuneMAMResources.bundle.Ensure that the case is correct for file names like libIntuneMAM.a and IntuneMAMResources.bundle.

  • Ha az Xcode nem találja a libIntuneMAM.a könyvtárat, a probléma megoldásához vegye fel a könyvtár elérési útját a keresőútvonalakba.If Xcode has trouble finding libIntuneMAM.a, you can fix the problem by adding the path to this library into the linker search paths.

GYIKFAQs

Az összes API címezhető natív Swift vagy Objective-C+Swift együttes használatával?Are all of the APIs addressable through native Swift or the Objective-C and Swift interoperability?

Az Intune App SDK API-k csak Objective-C nyelven érhetők el, és nem támogatják a natív Swiftet.The Intune App SDK APIs are in Objective-C only and do not support native Swift. A Swift Objective-C-vel való együttműködésére van szükség.Swift interoperability with Objective-C is required.

Az alkalmazásom minden felhasználóját regisztrálni kell az APP-WE-szolgáltatásban?Do all users of my application need to be registered with the APP-WE service?

Nem.No. Valójában csak a munkahelyi vagy iskolai fiókokat kell regisztrálni az Intune App SDK-ban.In fact, only work or school accounts should be registered with the Intune App SDK. Az alkalmazások feladata azt eldönteni, hogy egy fiók munkahelyi, illetve iskolai környezetben használatos-e.Apps are responsible for determining if an account is used in a work or school context.

Mi a teendő azokkal a felhasználókkal, akik már bejelentkeztek az alkalmazásba? Regisztrálni kell őket?What about users that have already signed in to the application? Do they need to be enrolled?

Az alkalmazás felelős a felhasználók regisztrálásáért a sikeres hitelesítésüket követően.The application is responsible for enrolling users after they have been successfully authenticated. Szintén az alkalmazás felelős minden olyan fiók regisztrálásáért, amely már azelőtt jelen lehetett, mielőtt az alkalmazás kiegészült az MDM nélküli MAM funkcióval.The application is also responsible for enrolling any existing accounts that might have been present before the application had MDM-less MAM functionality.

Erre a célra az alkalmazásnak a registeredAccounts: metódust kell használnia.To do this, the application should make use of the registeredAccounts: method. Ez a metódus egy NSDictionary értéket ad vissza, amely tartalmazza az Intune MAM szolgáltatásban regisztrált valamennyi fiókot.This method returns an NSDictionary that has all of the accounts registered into the Intune MAM service. Ha nem szerepel a listában valamelyik, az alkalmazásban már meglévő fiók, akkor az alkalmazásnak regisztrálnia kell a registerAndEnrollAccount: metódussal.If any existing accounts in the application are not in the list, the application should register and enroll those accounts via registerAndEnrollAccount:.

Milyen gyakran próbálkozik újra az SDK a regisztrációval?How often does the SDK retry enrollments?

Az SDK 24 órás időközönként automatikusan újrapróbálkozik minden korábban sikertelen regisztrációval.The SDK will automatically retry all previously failed enrollments on a 24-hour interval. Az SDK azért teszi ezt, hogy ha egy felhasználó szervezete azután aktiválta a MAM szolgáltatást, hogy a felhasználó bejelentkezett az alkalmazásba, a felhasználó akkor is sikeresen regisztráljon, és megkapja a szabályzatokat.The SDK does this to ensure that if a user’s organization enabled MAM after the user signed in to the application, the user will successfully enroll and receive policies.

Az SDK felhagy az újrapróbálkozással, ha azt észleli, hogy a felhasználó sikeresen regisztrálta az alkalmazást.The SDK will stop retrying when it detects that a user has successfully enrolled the application. Ez azért van így, mert egy adott időpontban csak egy felhasználó regisztrálhat egy alkalmazást.This is because only one user can enroll an application at a particular time. A felhasználó regisztrációjának visszavonása esetén újrakezdődnek az ismételt próbálkozások, ugyanolyan 24 órás időközzel.If the user is unenrolled, the retries will begin again on the same 24-hour interval.

Miért kell megszüntetni a felhasználó regisztrációját?Why does the user need to be deregistered?

Az SDK a következő műveleteket végzi el a háttérben, rendszeres időközönként:The SDK will take these actions in the background periodically:

  • Ha az alkalmazás még nincs regisztrálva, 24 óránként megpróbál regisztrálni minden regisztrált fiókot.If the application is not yet enrolled, it will try to enroll all registered accounts every 24 hours.
  • Ha az alkalmazás regisztrálva van, az SDK 8 óránként keresi az alkalmazásvédelmi szabályzat esetleges frissítéseit.If the application is enrolled, the SDK will check for app protection policy updates every 8 hours.

A felhasználó regisztrációjának megszüntetése esetén értesíti az SDK-t arról, hogy a felhasználó nem használja tovább az alkalmazást, és hogy az SDK leállíthatja az adott felhasználói fiók esetében a rendszeres műveleteket.Deregistering a user notifies the SDK that the user will no longer use the application, and the SDK can stop any of the periodic events for that user account. Az alkalmazás regisztrációjának visszavonását, és ha szükséges, az adatok szelektív törlését is kezdeményezi.It also triggers an app unenroll and selective wipe if necessary.

True értékre állítsam a doWipe jelzőt a regisztrációt megszüntető metódusban?Should I set the doWipe flag to true in the deregister method?

Ezt a metódust még azelőtt kell meghívni, hogy a felhasználót kijelentkezteti az alkalmazásból.This method should be called before the user is signed out of the application. Ha a kijelentkezés keretében törli a felhasználó adatait az alkalmazásból, akkor a doWipe jelző false-ra állítható.If the user’s data is deleted from the application as part of the sign-out, doWipe can be set to false. Ha viszont az alkalmazás nem törli a felhasználó adatait, akkor a doWipe jelzőt true-ra kell állítani, hogy az SDK törölhesse az adatokat.But if the application does not remove the user’s data, doWipe should be set to true so that the SDK can delete the data.

Vannak más módszerek az alkalmazások regisztrációjának megszüntetésére?Are there any other ways that an application can be un-enrolled?

Igen, a rendszergazda szelektív törlési parancsot is küldhet az alkalmazásnak.Yes, the IT admin can send a selective wipe command to the application. Ezzel megszünteti és törli a felhasználó regisztrációját, és törli a felhasználó adatait is.This will deregister and unenroll the user, and it will wipe the user’s data. Az SDK automatikusan kezeli ezt a helyzetet, és a regisztrációt megszüntető delegáltmetóduson keresztül küld értesítést.The SDK automatically handles this scenario and sends a notification via the unenroll delegate method.

Az alkalmazás beküldése az App Store-baSubmit your app to the App Store

Az Intune App SDK statikus könyvtára és keretrendszere egyaránt univerzális bináris build.Both the static library and framework builds of the Intune App SDK are universal binaries. Ez azt jelenti, hogy az összes eszköz- és szimulátorarchitektúrához biztosítanak kódot.This means they have code for all device and simulator architectures. Az Apple elutasítja az App Store-ba beküldött alkalmazásokat, ha szimulátorkódot tartalmaznak.Apple will reject apps submitted to the App Store if they have simulator code. Ha a statikus erőforrástáron alapuló fordítást végez csak eszközön használható build elkészítésére, akkor a csatoló automatikusan törli a szimulátorkódot.When compiling against the static library for device-only builds, the linker will automatically strip out the simulator code. Végezze el az alábbi lépéseket, amelyek segítségével garantáltan nem marad szimulátorkód az alkalmazásban, amikor feltölti azt az App Store-ba.Follow the steps below to ensure all simulator code is removed before you upload your app to the App Store.

  1. Ügyeljen rá, hogy az IntuneMAM.framework az asztalon legyen.Make sure IntuneMAM.framework is on your desktop.

  2. Futtassa a következő parancsokat:Run these commands:

    lipo ~/Desktop/IntuneMAM.framework/IntuneMAM -remove i386 -remove x86_64 -output ~/Desktop/IntuneMAM.device_only
    
    cp ~/Desktop/IntuneMAM.device_only ~/Desktop/IntuneMAM.framework/IntuneMAM
    

    Az első parancs törli a szimulátorarchitektúrákat a keretrendszer DYLIB-fájljából.The first command strips the simulator architectures from the framework's DYLIB file. A második parancs visszamásolja a csak eszközökhöz kapcsolódó DYLIB-fájlt a keretrendszer könyvtárába.The second command copies the device-only DYLIB file back into the framework directory.

A termékről a következő oldalon küldhet visszajelzést Intune Feedback