Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
Deze handleiding is onderverdeeld in verschillende fasen. Bekijk eerst De integratie plannen.
Fasedoelen
- Download de Intune App SDK.
- Meer informatie over welke bestanden zijn opgenomen in de Intune App SDK.
- Raadpleeg de Intune App SDK in uw toepassing.
- Controleer of de Intune App SDK correct is opgenomen in uw build.
- Registreer nieuwe accounts voor MAM-beheer na verificatie met MSAL.
- Als u bedrijfsgegevens wilt verwijderen, moet u de registratie van accounts bij het afmelden ongedaan maken
- (Aanbevolen) Neem MAM-logboekregistratie op in uw app.
Vereisten
U hebt een macOS-computer nodig, met Xcode 16.0 of hoger.
Uw app moet zijn gericht op iOS 16.0 of hoger.
Bekijk de licentievoorwaarden voor Intune App SDK voor iOS. Druk een kopie van de licentievoorwaarden voor uw records af en bewaar deze. Door de Intune App SDK voor iOS te downloaden en te gebruiken, gaat u akkoord met dergelijke licentievoorwaarden. Als u deze niet accepteert, gebruikt u de software niet.
Download de bestanden voor de Intune App SDK voor iOS op GitHub.
Wat is er in de SDK-opslagplaats?
IntuneMAMSwift.xcframework: het dynamische framework Intune App SDK. Het is raadzaam om dit framework te koppelen aan uw app/extensies om Intune clienttoepassingsbeheer in te schakelen. Sommige ontwikkelaars geven echter de voorkeur aan de prestatievoordelen van het statische framework (IntuneMAMStatic.xcframework).
IntuneMAMStatic.xcframework: het statische framework Intune App SDK. Ontwikkelaars kunnen ervoor kiezen om het statische framework te koppelen in plaats van het dynamische framework. Omdat de uitvoerbare code van een statisch framework tijdens het bouwen rechtstreeks wordt ingesloten in het binaire bestand van de app/extensie, zijn er enkele prestatievoordelen bij het starten van de statische bibliotheek. Als uw app echter extensies bevat, resulteert het koppelen van het statische framework aan de app en extensies in een grotere app-bundelgrootte. De uitvoerbare code wordt ingesloten in elke binaire app/extensie. Wanneer u het dynamische framework gebruikt, kunnen apps en extensies daarentegen dezelfde Intune binaire SDK delen, wat resulteert in een kleinere app-grootte.
IntuneMAMSwiftStub.xcframework: het Intune Swift Stub-framework voor App SDK. Dit framework is een vereiste afhankelijkheid van zowel IntuneMAMSwift.xcframework als IntuneMAMStatic.xcframework, die apps/extensies moeten koppelen.
IntuneMAMConfigurator: een hulpprogramma dat wordt gebruikt om info.plist van de app of extensie te configureren met de minimaal vereiste wijzigingen voor Intune beheer. Afhankelijk van de functionaliteit van uw app of extensie, moet u mogelijk meer handmatige wijzigingen aanbrengen in de Info.plist.
libIntuneMAMSwift.xcframework: de statische bibliotheek van Intune App SDK. Deze variant van de Intune MAM iOS SDK wordt afgeschaft en in een toekomstige update verwijderd. U wordt aangeraden de statische bibliotheek niet te koppelen en in plaats daarvan uw app/extensies te koppelen aan het eerder genoemde dynamische framework (IntuneMAMSwift.xcframework) of het statische framework (IntuneMAMStatic.xcframework).
IntuneMAMResources.bundle: een resourcebundel die resources bevat waarop de SDK afhankelijk is. De resourcebundel is alleen vereist voor apps die de afgeschafte statische bibliotheek (libIntuneMAMSwift.xcframework) integreren en verwijdert deze in een toekomstige update.
Hoe de Intune App SDK werkt
Het doel van de Intune App SDK voor iOS is om beheermogelijkheden toe te voegen aan iOS-toepassingen met minimale codewijzigingen. Hoe minder codewijzigingen, hoe minder time-to-market, maar zonder de consistentie en stabiliteit van uw mobiele toepassing te beïnvloeden.
Processtroom
Het volgende diagram bevat de processtroom Intune App SDK voor iOS:
De SDK in uw mobiele app bouwen
Belangrijk
Intune brengt regelmatig updates uit voor de Intune App SDK. Controleer regelmatig de Intune App SDK voor iOS op updates en neem deze op in de releasecyclus van uw softwareontwikkeling om ervoor te zorgen dat uw apps de nieuwste instellingen voor app-beveiligingsbeleid ondersteunen.
Voer de volgende stappen uit om de Intune App SDK in te schakelen:
IntuneMAMSwift.xcframeworkKoppelen aan ofIntuneMAMStatic.xcframeworkaan uw doel: Sleep de xcframework-bundel naar de lijst Frameworks, Bibliotheken en Ingesloten inhoud van het projectdoel. Herhaal deze stappen voorIntuneMAMSwiftStub.xcframework. Selecteer voor uw hoofd-app 'Insluiten & Aanmelden' in de kolom 'Insluiten' voor beide toegevoegde xcframeworks. Selecteer 'Niet insluiten' voor extensies.
Voeg deze iOS-frameworks toe aan het project:
- MessageUI.framework
- Security.framework
- CoreServices.framework
- SystemConfiguration.framework
- libsqlite3.tbd
- libc++.tbd
- ImageIO.framework
- LocalAuthentication.framework
- AudioToolbox.framework
- QuartzCore.framework
- WebKit.framework
- MetricKit.framework
Schakel het delen van sleutelhangers in (als dit nog niet is ingeschakeld) door Mogelijkheden te kiezen in elk projectdoel en de schakeloptie Sleutelhanger delen in te schakelen. Het delen van sleutelhangers is vereist om door te gaan met de volgende stap.
Opmerking
Uw inrichtingsprofiel moet nieuwe waarden voor het delen van sleutelhangers ondersteunen. De sleutelhangertoegangsgroepen moeten een jokerteken ondersteunen. U kunt dit controleren door het bestand .mobileprovision te openen in een teksteditor, te zoeken naar sleutelhanger-access-groups en ervoor te zorgen dat u een jokerteken hebt. Bijvoorbeeld:
<key>keychain-access-groups</key> <array> <string>YOURBUNDLESEEDID.*</string> </array>Nadat u het delen van sleutelhangers hebt ingeschakeld, volgt u de stappen om een afzonderlijke toegangsgroep te maken waarin de Intune App SDK de gegevens opslaat. U kunt een sleutelhangertoegangsgroep maken met behulp van de gebruikersinterface of met behulp van het rechtenbestand. Als u de gebruikersinterface gebruikt om de sleutelhangertoegangsgroep te maken, moet u deze stappen uitvoeren:
Als voor uw mobiele app geen toegangsgroepen voor sleutelhangers zijn gedefinieerd, voegt u de bundel-id van de app toe als de eerste groep.
Voeg de gedeelde sleutelhangergroep
com.microsoft.intune.mamtoe aan uw bestaande toegangsgroepen. De Intune App SDK gebruikt deze toegangsgroep om gegevens op te slaan.Voeg toe
com.microsoft.adalcacheaan uw bestaande toegangsgroepen.
Opmerking
Als u MSAL hebt geconfigureerd voor het gebruik van een aangepaste sleutelhangertoegangsgroep in plaats van de standaardwaarde van
com.microsoft.adalcache, hoeft u deze sleutelhangertoegangsgroep hier niet op te geven. Geef in plaats daarvan de aangepaste sleutelhangergroep op. U moet ook Intune configureren om dezelfde aangepaste toegangsgroep te gebruiken via de instelling ADALCacheKeychainGroupOverride in de woordenlijst IntuneMAMSettings Info.plist.Als u het rechtenbestand rechtstreeks bewerkt, in plaats van de Xcode-gebruikersinterface te gebruiken om de toegangsgroepen voor de sleutelhanger te maken, prepent u de toegangsgroepen voor de sleutelhanger met
$(AppIdentifierPrefix)(Xcode verwerkt dit automatisch). Bijvoorbeeld:$(AppIdentifierPrefix)com.microsoft.intune.mam$(AppIdentifierPrefix)com.microsoft.adalcache
Opmerking
Een rechtenbestand is een XML-bestand dat uniek is voor uw mobiele toepassing. Deze wordt gebruikt om speciale machtigingen en mogelijkheden op te geven in uw iOS-app. Als uw app nog geen rechtenbestand had, moet het inschakelen van het delen van sleutelhangers (stap 3) ertoe hebben geleid dat Xcode er een heeft gegenereerd voor uw app. Zorg ervoor dat de bundel-id van de app de eerste vermelding in de lijst is.
Neem elk protocol op dat uw app doorgeeft
UIApplication canOpenURLin de matrix van hetLSApplicationQueriesSchemesbestand Info.plist van uw app. Voeg voor elk protocol in deze matrix een kopie toe van het protocol dat is-intunemamtoegevoegd aan de matrix. Voeg ook deze waarden toe aan de matrix:http-intunemam,https-intunemam,microsoft-edge-http-intunemam, ,smart-nszipslookoutwork-aselacoonsecuritymicrosoft-edge-https-intunemamwandera, ,skycure,betteractiveshield,smsec,mvisionmobile, ,scmx, en .intunemam-mtdAls uw app het protocol mailto: gebruikt, voegt u ook toems-outlook-intunemamaan de matrix. Sla uw wijzigingen op voordat u verdergaat met de volgende stap.Als de app onvoldoende ruimte heeft in de LSApplicationQueriesSchemes-lijst, kunnen de schema's '-intunemam' worden verwijderd voor apps waarvan bekend is dat ze ook de Intune MAM SDK implementeren. Wanneer de app 'scheme-intunemam' verwijdert uit de lijst LSApplicationQueriesSchemes,
canOpenURL()kunnen onjuiste antwoorden voor deze schema's worden geretourneerd. U kunt dit probleem oplossen door in plaats daarvan naar dat schema te bellen[IntuneMAMPolicy isURLAllowed:url isKnownManagedAppScheme:YES]. Deze aanroep retourneertNOals het beleid het openen van de URL blokkeert. Als deze waar retourneert, kan de app aanroepencanOpenURL()met een lege identiteit om te bepalen of de URL kan worden geopend. Bijvoorbeeld:BOOL __block canOpen = NO; if([policy isURLAllowed:urlForKnownManagedApp isKnownManagedAppScheme:YES]) { [[IntuneMAMPolicyManager instance] setCurrentThreadAccountId:"" forScope:^{ canOpen = [[UIApplication sharedApplication] canOpenURL:urlForKnownManagedApp]; }]; }Als uw app nog geen gebruikmaakt van FaceID, controleert u of de sleutel NSFaceIDUsageDescription Info.plist is geconfigureerd met een standaardbericht. Deze stap is vereist zodat iOS de gebruiker kan laten weten hoe de app FaceID wil gebruiken. Met een beleidsinstelling voor Intune app-beveiliging kan FaceID worden gebruikt als een methode voor toegang tot apps wanneer deze is geconfigureerd door de IT-beheerder.
Gebruik het hulpprogramma IntuneMAMConfigurator dat is opgenomen in de SDK-opslagplaats om de configuratie van de Info.plist van uw app te voltooien. Het hulpprogramma heeft drie parameters:
Eigenschap Hoe te gebruiken -Ik <Path to the input plist>- e <Path to the entitlements file>- o (Optioneel) <Path to the output plist>Als de parameter '-o' niet is opgegeven, wordt het invoerbestand ter plaatse gewijzigd. Het hulpprogramma is idempotent en moet opnieuw worden uitgevoerd wanneer u wijzigingen aanbrengt in de Info.plist of rechten van de app. U moet ook de nieuwste versie van het hulpprogramma downloaden en uitvoeren wanneer u de Intune SDK bijwerkt, voor het geval de configuratievereisten voor Info.plist zijn gewijzigd in de meest recente release.
Opmerking
Als u een SwiftUI-app hebt, moet u ervoor zorgen dat UISceneConfigurations de woordenlijst in het UIApplicationSceneManifest bestand Info.niet ontbreekt of leeg is. Als u deze instelling niet configureert, kan dit voorkomen dat de Intune SDK uw app beveiligt, ondanks dat het app-beveiligingsbeleid wordt toegepast.
Als u geen specifieke waarde hebt ingesteld voor de UISceneConfigurations , kunt u deze standaardconfiguratie gebruiken:
<key>UISceneConfigurations</key>
<dict>
<key>UIWindowSceneSessionRoleApplication</key>
<array>
<dict>
<key>UISceneConfigurationName</key>
<string>Default Configuration</string>
<key>UISceneDelegateClassName</key>
<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
</dict>
</array>
</dict>
Xcode Build-instellingen en -mogelijkheden
Voor de app moet zowel 'Strip Swift Symbols'(STRIP_SWIFT_SYMBOLS) als 'Bitcode inschakelen' (ENABLE_BITCODE) zijn ingesteld op NEE in de Xcode-build-instellingen. Als uw toepassing de mogelijkheid 'Verbeterde beveiliging' bevat die beschikbaar is in Xcode 26+, moet u de opties 'Verificatieaanwijzers' en 'Alleen-lezen platformgeheugen inschakelen' uitschakelen.
Een bestandsextensie integreren
Bestandsextensies hebben bepaalde geheugenvereisten die de integratie van de volledige SDK bemoeilijken. Om het gemakkelijker te maken, is er een statische bibliotheek libIntuneMAMSwiftFileProvider.xcframework, een uitgeklede versie van de SDK die specifiek is voor bestandsextensies. Let op: deze bibliotheek is voor het niet-UI-gedeelte van de extensie FileProvider. U moet de volledige SDK integreren in de ui-extensie van de bestandsextensie.
Volg de stappen voor het integreren van de SDK als een statische bibliotheek om een van deze bibliotheken te integreren met de extensie van de bestandsprovider. Zorg ervoor dat u de instelling opneemt ContainingAppBundleId .
Een niet-gerepliceerde bestandsextensie integreren
Uw app gebruikt een niet-gerepliceerde bestandsprovider als deze het NSFileProviderExtension-protocol implementeert. Alle bestandsproviders die vóór iOS 16.0 zijn gemaakt, worden niet opnieuw gebruikt.
In - startProvidingItemAtURL:completionHandler: controleer of u bestanden moet versleutelen met [[IntuneMAMPolicy-exemplaar]shouldFileProviderEncryptFiles]. Gebruik encryptFile:forAccountId: API in IntuneMAMFileProtectionManager voor de daadwerkelijke bestandsversleuteling. Deel ook een kopie van het bestand wanneer versleuteling vereist is, omdat u geen versleutelde kopie van het bestand in uw cloudopslag wilt opslaan.
In - importDocumentAtURL:toParentItemIdentifier:completionHandler: controleer of het bestand is versleuteld met behulp van de API isFileEncrytped: in IntuneMAMFileProtectionManager. Als dat zo is, ontsleutelt u deze met de decryptFile:toCopyPath: API van IntuneMAMFileProtectionManager. Controleer in apps met meerdere identiteiten ook de API canReceiveSharedFile: in intuneMAMPolicy van de doeleigenaar om te bepalen of de eigenaar het bestand kan ontvangen.
Een gerepliceerde bestandsextensie integreren
Uw app gebruikt een gerepliceerde bestandsprovider als deze het protocol NSFileProviderReplicatedExtension implementeert (toegevoegd in iOS 16.0).
In - fetchContentsForItemWithIdentifier:version:request:completionHandler: controleer of u bestanden moet versleutelen met [[IntuneMAMPolicy-exemplaar]shouldFileProviderEncryptFiles]. Gebruik de API encryptFile:forAccountId: in IntuneMAMFileProtectionManager voor daadwerkelijke bestandsversleuteling. Deel een kopie van het bestand wanneer versleuteling is vereist, omdat u geen versleutelde kopie van het bestand in uw cloudopslag wilt opslaan.
In - createItemBasedOnTemplate:fields:contents:options:request:completionHandler: controleer of het bestand is versleuteld met behulp van de API isFileEncrypted: in IntuneMAMFileProtectionManager. Als dat zo is, ontsleutelt u deze met de decryptFile:toCopyPath: API van IntuneMAMFileProtectionManager. Controleer in apps met meerdere identiteiten ook de API canReceiveSharedFile: in intuneMAMPolicy van de doeleigenaar om te bepalen of de eigenaar het bestand kan ontvangen.
Overal waar de gerepliceerde bestandsprovider een NSFileProviderItem maakt en doorgeeft aan het systeem, roept u de API protectFileProviderItem:forAccountId: van IntuneMAMFileProtectionManager aan met de eigenaar-id van het item. Afhankelijk van waar het NSFileProviderItem-object is gemaakt en behouden binnen uw extensie, moet u dit mogelijk doen in elk van de protocolmethoden van NSFileProviderReplicatedExtension.
Instellingen configureren voor de Intune App SDK
U kunt de woordenlijst IntuneMAMSettings in het bestand Info.plist van de toepassing gebruiken om de Intune App SDK in te stellen en te configureren. Als de intuneMAMSettings-woordenlijst niet wordt weergegeven in het bestand Info.plist, moet u deze maken.
In de woordenlijst IntuneMAMSettings kunt u de volgende ondersteunde instellingen definiëren om de Intune App SDK te configureren.
In de vorige secties worden enkele van deze instellingen behandeld en sommige zijn niet van toepassing op alle apps.
| Instelling | Type | Definitie | Vereist? |
|---|---|---|---|
| ADALClientId | Tekenreeks | De Microsoft Entra client-id van de app. | Vereist voor alle apps. |
| ADALAuthority | Tekenreeks | De Microsoft Entra instantie van de app die in gebruik is. U moet uw eigen omgeving gebruiken waarin Microsoft Entra-accounts zijn geconfigureerd. Zie Toepassingsconfiguratieopties voor meer informatie. | Vereist als de app een aangepaste Line-Of-Business-toepassing is die is gebouwd voor gebruik binnen één organisatie/Microsoft Entra tenant. Als deze waarde ontbreekt, wordt de algemene Microsoft Entra instantie gebruikt (alleen ondersteund voor apps met meerdere tenants). |
| ADALRedirectUri | Tekenreeks | De Microsoft Entra omleidings-URI van de app. | ADALRedirectUri of ADALRedirectScheme is vereist voor alle apps. |
| ADALRedirectScheme | Tekenreeks | Het Microsoft Entra ID-omleidingsschema van de app. Dit kan worden gebruikt in plaats van ADALRedirectUri als de omleidings-URI van de toepassing de indeling scheme://bundle_idheeft . |
ADALRedirectUri of ADALRedirectScheme is vereist voor alle apps. |
| ADALLogOverrideDisabled | Booleaanse waarde | Hiermee geeft u op of de SDK alle MSAL-logboeken (inclusief MSAL-aanroepen van de app, indien aanwezig) naar het eigen logboekbestand stuurt. De standaardwaarde is NEE. Stel in op JA als de app een eigen MSAL-logboekaanroep instelt. | Facultatief. |
| ADALCacheKeychainGroupOverride | Tekenreeks | Hiermee geeft u de sleutelhangergroep op die moet worden gebruikt voor de MSAL-cache, in plaats van "com.microsoft.adalcache". Het systeem prefixeert dit automatisch tijdens runtime. |
Facultatief. |
| AppGroupIdentifiers | Matrix van tekenreeksen | Matrix van app-groepen uit de sectie met rechten com.apple.security.application-groups van de app. |
Vereist als de app toepassingsgroepen gebruikt. |
| ContainingAppBundleId | Tekenreeks | Hiermee geeft u de bundel-id van de extensie met toepassing. | Vereist voor iOS-extensies. |
| AutoEnrollOnLaunch | Booleaanse waarde | Hiermee geeft u op of de app automatisch moet worden ingeschreven bij het starten als een bestaande beheerde identiteit wordt gedetecteerd en dit nog niet heeft gedaan. De standaardwaarde is NEE. Notitie: Als er geen beheerde identiteit wordt gevonden of als er geen geldig token beschikbaar is in de MSAL-cache, mislukt de inschrijving op de achtergrond, tenzij MAMPolicyRequired ja is. |
Facultatief. De standaardwaarde is NEE. |
| MAMPolicyRequired | Booleaanse waarde | Hiermee geeft u op of de app wordt geblokkeerd om te starten als deze geen Intune app-beveiligingsbeleid heeft. De standaardwaarde is NEE. Notitie: Apps kunnen niet worden verzonden naar de App Store met deze optie is ingesteld op JA. Als u deze instelt op JA, AutoEnrollOnLaunch moet dit ook JA zijn. |
Facultatief. De standaardwaarde is NEE. |
| MAMPolicyWarnAbsent | Booleaanse waarde | Hiermee geeft u op of de app de gebruiker waarschuwt tijdens het starten als er geen Intune app-beveiligingsbeleid aanwezig is. Notitie: Gebruikers kunnen nog steeds doorgaan nadat ze de waarschuwing hebben genegeerd. |
Facultatief. De standaardwaarde is NEE. |
| MultiIdentity | Booleaanse waarde | Hiermee geeft u op of de app meerdere identiteiten kent. Zie de documentatie over meerdere identiteiten voor meer informatie. | Facultatief. De standaardwaarde is NEE. |
| MultiIdentityCancelDisabled | Booleaanse waarde | Hiermee schakelt u de knop Annuleren uit op Intune ui-schermen voor voorwaardelijk starten in toepassingen met meerdere identiteiten. Als dit niet is ingesteld op JA, moet de app de IntuneMAMSwitchIdentityResultCanceled foutcode verwerken. Zie Schakelen tussen identiteiten. |
Facultatief. De standaardwaarde is NEE. |
| SafariViewControllerBlockedOverride | Booleaanse waarde | Hiermee schakelt u de SafariViewController-hooks van Intune uit om MSAL-verificatie in te schakelen via SFSafariViewController, SFAuthSession of ASWebAuthSession. Notitie: Een geconfigureerde activiteitsknop wordt alleen weergegeven als de weergave niet wordt beheerd en deze is ingesteld op JA. |
Facultatief. De standaardwaarde is NEE. Waarschuwing: Kan gegevenslekken veroorzaken als deze onjuist worden gebruikt. |
| SplashIconFile SplashIconFile~ipad |
Tekenreeks | Hiermee geeft u het Intune bestand met welkomstpictogram (opstart) op. | Facultatief. |
| SplashDuration | Nummer | Minimale tijd in seconden dat het Intune opstartscherm wordt weergegeven. De standaardwaarde is 1.5. | Facultatief. |
| BackgroundColor | Tekenreeks | Hiermee geeft u de achtergrondkleur voor Intune SDK UI-onderdelen.
#XXXXXX Accepteert of een hexwaarde zonder het hekje. |
Facultatief. Standaard wordt de achtergrondkleur van het systeem ingesteld. |
| Voorgrondkleur | Tekenreeks | Hiermee geeft u de voorgrond/tekstkleur voor UI-onderdelen.
#XXXXXX Accepteert of hex zonder hekje. |
Facultatief. Standaard wordt de kleur van het systeemlabel ingesteld. |
| AccentKleur | Tekenreeks | Hiermee geeft u de accentkleur voor UI-onderdelen (knoppen, pincode gemarkeerd).
#XXXXXX Accepteert of hex zonder hekje. |
Facultatief. De standaardinstelling is systeemblauw. |
| SecondaryBackgroundColor | Tekenreeks | Hiermee geeft u de secundaire achtergrondkleur voor MTD-schermen.
#XXXXXX Accepteert of hex zonder hekje. |
Facultatief. De standaardinstelling is wit. |
| SecondaryForegroundColor | Tekenreeks | Hiermee geeft u de secundaire voorgrondkleur voor MTD-schermen.
#XXXXXX Accepteert of hex zonder hekje. |
Facultatief. De standaardinstelling is grijs. |
| SupportsDarkMode | Booleaanse waarde | Hiermee geeft u op of ui-kleuren de donkere modus van het systeem volgen wanneer er geen expliciete kleuren zijn ingesteld. | Facultatief. De standaardwaarde is JA. |
| MAMTelemetryDisabled | Booleaanse waarde | Hiermee geeft u op of telemetrie wordt verzonden naar de back-end. | Facultatief. De standaardwaarde is NEE. |
| MAMTelemetryUsePPE | Booleaanse waarde | Verzendt telemetrie naar PPE-back-end. Handig voor het testen van apps, zodat gegevens niet worden vermengd met klantgegevens. | Facultatief. De standaardwaarde is NEE. |
| MaxFileProtectionLevel | Tekenreeks | Hiermee geeft u het maximum aantal NSFileProtectionType dat de app ondersteunt. Overschrijft beleid als de service een hoger niveau verzendt.Mogelijke waarden: NSFileProtectionComplete, NSFileProtectionCompleteUnlessOpen, NSFileProtectionCompleteUntilFirstUserAuthentication, NSFileProtectionNone.Bemerken: Met NSFileProtectionCompleteverliest de app de toegang tot beveiligde bestanden ~10 seconden nadat het apparaat is vergrendeld, waardoor onderdelen zoals lokale databases kunnen worden verbroken. Apps met de gebruikersinterface voor het vergrendelingsscherm moeten gebruikmaken van NSFileProtectionCompleteUntilFirstUserAuthentication. |
Facultatief. De standaardinstelling is NSFileProtectionComplete. |
| OpenInActionExtension | Booleaanse waarde | Ingesteld op JA voor Extensies openen in actie. Zie Gegevens delen via UIActivityViewController. | Facultatief. |
| TreatAllWebViewsAsUnmanaged | Booleaanse waarde | Behandelt alle WebViews als onbeheerd voor het afdwingen van knippen/kopiëren/plakken. Zie Webinhoud weergeven. | Facultatief. De standaardwaarde is NEE. |
| WebViewHandledURLSchemes | Matrix van tekenreeksen | URL-schema's die worden verwerkt door de WebView van de app. | Vereist als uw WebView koppelingen of JavaScript-navigatie verwerkt. |
| DocumentBrowserFileCachePath | Tekenreeks | Als u gebruikt UIDocumentBrowserViewController, stelt u een pad in (ten opzichte van de basismap van de app) voor ontsleutelde beheerde bestanden. |
Facultatief. De standaardinstelling is /Documents/. |
| VerboseLoggingEnabled | Booleaanse waarde | Hiermee schakelt u uitgebreide logboekregistratie in. | Facultatief. De standaardwaarde is NEE. |
| FinishLaunchingAtStartup | Booleaanse waarde | Vereist bij gebruik van [BGTaskScheduler registerForTaskWithIdentifier:]; moet JA zijn. |
Facultatief. De standaardwaarde is NEE. |
| ValuesToScrubFromLogging | Matrix van tekenreeksen | Toepassingsconfiguratiewaarden die uit logboeken moeten worden verwijderd. Kan ook worden ingesteld via valuesToScrubFromLogging op IntuneMAMSettings. |
Facultatief. |
App-beveiligingsbeleid ontvangen
Overzicht
Als u Intune app-beveiligingsbeleid wilt ontvangen, moeten apps een inschrijvingsaanvraag initiëren bij de Intune MAM-service. Apps kunnen worden geconfigureerd in het Intune-beheercentrum om app-beveiligingsbeleid met of zonder apparaatinschrijving te ontvangen. Mobile Application Management (MAM) staat toe dat apps worden beheerd door Intune zonder dat het apparaat hoeft te worden ingeschreven bij Intune MDM (Mobile Device Management). In beide gevallen is registratie bij de Intune MAM-service vereist om beleid te ontvangen.
Belangrijk
De Intune App SDK voor iOS maakt gebruik van 256-bits versleutelingssleutels wanneer versleuteling wordt ingeschakeld door app-beveiligingsbeleid. Alle apps moeten een huidige SDK-versie hebben om beveiligd gegevens delen toe te staan.
Apps die al gebruikmaken van ADAL of MSAL
Opmerking
Azure AD Authentication Library (ADAL) en Azure AD Graph API zijn afgeschaft. Zie Uw toepassingen bijwerken voor gebruik van Microsoft Authentication Library (MSAL) en Microsoft Graph API voor meer informatie.
Apps die al gebruikmaken van MSAL moeten de registerAndEnrollAccountId methode op het IntuneMAMEnrollmentManager exemplaar aanroepen nadat de gebruiker is geverifieerd:
/*
* This method adds the account to the list of registered accounts.
* An enrollment request starts immediately.
* @param accountId The Entra object ID of the account to be registered with the SDK
*/
(void)registerAndEnrollAccountId:(NSString *_Nonnull)accountId;
Bij geslaagde aanmelding stuurt MSAL het resultaat terug in het MSALResult-object. Gebruik tenantProfile.identifier in MSALResult als de parameter accountId voor de API.
Door de registerAndEnrollAccountId methode aan te roepen, registreert de SDK het gebruikersaccount en probeert de app namens dit account in te schrijven. Als de inschrijving om wat voor reden dan ook mislukt, wordt de inschrijving 24 uur later automatisch opnieuw uitgevoerd door de SDK. Voor foutopsporing kan de app via een gemachtigde meldingen ontvangen over de resultaten van inschrijvingsaanvragen.
Nadat deze API is aangeroepen, kan de app gewoon blijven functioneren. Als de inschrijving slaagt, meldt de SDK de gebruiker dat een app opnieuw moet worden opgestart. Op dat moment kan de gebruiker de app onmiddellijk opnieuw opstarten.
[[IntuneMAMEnrollmentManager instance] registerAndEnrollAccountId:@"3ec2c00f-b125-4519-acf0-302ac3761822"];
Apps die geen gebruikmaken van ADAL of MSAL
Apps die de gebruiker niet aanmelden met behulp van ADAL of MSAL, kunnen nog steeds app-beveiligingsbeleid ontvangen van de Intune MAM-service door de API aan te roepen zodat de SDK die verificatie afhandelt. Apps moeten deze techniek gebruiken wanneer ze een gebruiker niet hebben geverifieerd met Microsoft Entra ID, maar nog steeds app-beveiligingsbeleid moeten ophalen om gegevens te beveiligen. Een voorbeeld is als er een andere verificatieservice wordt gebruikt voor app-aanmelding of als de app helemaal geen ondersteuning biedt voor aanmelden. Hiervoor kan de toepassing de methode op het loginAndEnrollAccountIntuneMAMEnrollmentManager exemplaar aanroepen:
/**
* Creates an enrollment request, which starts immediately.
* If no token can be retrieved for the identity, the user is prompted
* to enter their credentials, after which enrollment is retried.
* @param identity The UPN of the account to be logged in and enrolled.
*/
(void)loginAndEnrollAccount: (NSString *)identity;
Door deze methode aan te roepen, vraagt de SDK de gebruiker om referenties als er geen bestaand token kan worden gevonden. De SDK probeert vervolgens de app in te schrijven bij de Intune MAM-service namens het opgegeven gebruikersaccount. De methode kan worden aangeroepen met 'nil' als de identiteit. In dat geval schrijft de SDK zich in bij de bestaande beheerde gebruiker op het apparaat (als MDM) of vraagt de gebruiker om een gebruikersnaam als er geen bestaande gebruiker wordt gevonden.
Als de inschrijving mislukt, moet de app overwegen deze API op een later tijdstip opnieuw aan te roepen, afhankelijk van de details van de fout. De app kan via een gemachtigde meldingen ontvangen over de resultaten van inschrijvingsaanvragen.
Nadat deze API is aangeroepen, kan de app gewoon blijven functioneren. Als de inschrijving slaagt, meldt de SDK de gebruiker dat een app opnieuw moet worden opgestart.
Zodra de app is beheerd, moet de waarde van de Microsoft Entra object-id worden opgevraagd met behulp van enrolledAccountId in de IntuneMAMEnrollmentManager. Gebruik dit voor alle MAM SDK-API's die de app gebruikt voor dit geregistreerde account.
Voorbeeld:
[[IntuneMAMEnrollmentManager instance] loginAndEnrollAccount:@"user@foo.com"];
Laat Intune verificatie en inschrijving bij het starten afhandelen
Als u wilt dat de Intune SDK alle verificatie met ADAL/MSAL en inschrijving afhandelt voordat uw app is gestart en uw app altijd app-beveiligingsbeleid vereist, hoeft u geen API te gebruikenloginAndEnrollAccount. U kunt de volgende instellingen instellen op JA in de woordenlijst IntuneMAMSettings in de Info.plist van de app.
| Instelling | Type | Definitie |
|---|---|---|
| AutoEnrollOnLaunch | Booleaanse waarde | Hiermee geeft u op of de app automatisch moet worden ingeschreven bij het starten als een bestaande beheerde identiteit wordt gedetecteerd en dit nog niet heeft gedaan. De standaardwaarde is NEE. Notitie: Als er geen beheerde identiteit wordt gevonden of als er geen geldig token voor de identiteit beschikbaar is in de ADAL-/MSAL-cache, mislukt de registratiepoging op de achtergrond zonder om referenties te vragen, tenzij de app ook is ingesteld MAMPolicyRequired op JA. |
| MAMPolicyRequired | Booleaanse waarde | Hiermee geeft u op of de app niet kan worden gestart als de app geen Intune-beleid voor app-beveiliging heeft. De standaardwaarde is NEE. Notitie: Apps kunnen niet worden verzonden naar de App Store met MAMPolicyRequiredingesteld op JA. Als u ja insteltMAMPolicyRequired, AutoEnrollOnLaunch moet deze ook worden ingesteld op JA. |
Als u deze optie voor uw app kiest, hoeft u uw app niet opnieuw te starten nadat u zich hebt ingeschreven.
Registratie van gebruikersaccounts ongedaan maken
Voordat een gebruiker is afgemeld bij een app, moet de app de registratie van de gebruiker bij de SDK ongedaan maken. Dit proces zorgt voor het volgende:
Er worden geen nieuwe pogingen meer uitgevoerd voor het account van de gebruiker.
App-beveiliging beleid is verwijderd.
Bedrijfsgegevens worden verwijderd als de app selectief wissen initieert (optioneel).
Voordat de gebruiker is afgemeld, moet de app de volgende methode voor het IntuneMAMEnrollmentManager exemplaar aanroepen:
/*
* This method removes the provided account from the list of
* registered accounts. Once removed, if the account enrolled
* the application, the account is un-enrolled.
* @note In the case where an un-enroll is required, this method blocks
* until the Intune APP AAD token is acquired, then returns. This method must be called before
* the user is removed from the application (so that required AAD tokens are not purged
* before this method is called).
* @param accountId The object ID of the account to be removed.
* @param doWipe If YES, a selective wipe if the account is un-enrolled
*/
(void)deRegisterAndUnenrollAccountId:(NSString *)accountId withWipe:(BOOL)doWipe;
Deze methode moet worden aangeroepen voordat de Microsoft Entra tokens van het gebruikersaccount worden verwijderd. De SDK heeft de Microsoft Entra tokens van het gebruikersaccount nodig om namens de gebruiker specifieke aanvragen in te dienen bij de Intune MAM-service.
Als de app de bedrijfsgegevens van de gebruiker zelf verwijdert, kan de doWipe vlag worden ingesteld op onwaar. Anders kan de APP de SDK een selectief wissen laten initiëren. Deze actie resulteert in een aanroep van de gemachtigde voor selectief wissen van de app.
Voorbeeld:
[[IntuneMAMEnrollmentManager instance] deRegisterAndUnenrollAccountId:@"3ec2c00f-b125-4519-acf0-302ac3761822" withWipe:YES];
Status-, resultaat- en foutopsporingsmeldingen
De app kan status-, resultaat- en foutopsporingsmeldingen ontvangen over de volgende aanvragen voor de Intune MAM-service:
- Inschrijvingsaanvragen
- Aanvragen voor beleidsupdates
- Aanvragen voor uitschrijving ongedaan maken
De meldingen worden weergegeven via gedelegeerde methoden in 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;
Deze delegeringsmethoden retourneren een IntuneMAMEnrollmentStatus object met de volgende informatie:
- De accountId (object-id) van het account dat is gekoppeld aan de aanvraag
- De identiteit (UPN) van het account dat is gekoppeld aan de aanvraag
- Een statuscode die het resultaat van de aanvraag aangeeft
- Een fouttekenreeks met een beschrijving van de statuscode
- Een
NSErrorobject. Dit object wordt gedefinieerd inIntuneMAMEnrollmentStatus.h, samen met de specifieke statuscodes die kunnen worden geretourneerd.
Voorbeeldcode
Hier volgen voorbeelden van implementaties van de gedelegeerde methoden:
- (void)enrollmentRequestWithStatus:(IntuneMAMEnrollmentStatus*)status
{
NSLog(@"enrollment result for identity %@ with status code %ld", status.accountId, (unsigned long)status.statusCode);
NSLog(@"Debug Message: %@", status.errorString);
}
- (void)policyRequestWithStatus:(IntuneMAMEnrollmentStatus*)status
{
NSLog(@"policy check-in result for identity %@ with status code %ld", status.accountId, (unsigned long)status.statusCode);
NSLog(@"Debug Message: %@", status.errorString);
}
- (void)unenrollRequestWithStatus:(IntuneMAMEnrollmentStatus*)status
{
NSLog(@"un-enroll result for identity %@ with status code %ld", status.accountId, (unsigned long)status.statusCode);
NSLog(@"Debug Message: %@", status.errorString);
}
Toepassing opnieuw opstarten
Wanneer een app voor het eerst MAM-beleid ontvangt, moet deze opnieuw worden opgestart om de vereiste hooks toe te passen. Om de app te laten weten dat opnieuw moet worden opgestart, biedt de SDK een gedelegeerde-methode in IntuneMAMPolicyDelegate.h.
- (BOOL) restartApplication
De retourwaarde van deze methode vertelt de SDK of de toepassing de vereiste herstart moet verwerken:
Als true wordt geretourneerd, moet de toepassing het opnieuw opstarten afhandelen.
Als false wordt geretourneerd, start de SDK de toepassing opnieuw nadat deze methode is geretourneerd. In de SDK wordt onmiddellijk een dialoogvenster weergegeven waarin de gebruiker wordt aangegeven de toepassing opnieuw te starten.
Opmerking
.NET MAUI-apps hoeven niet opnieuw te worden opgestart.
Afsluitcriteria
Nadat u de build-invoegtoepassing hebt geconfigureerd of het opdrachtregelprogramma hebt geïntegreerd in uw buildproces, controleert u of deze wordt uitgevoerd:
- Zorg ervoor dat uw build wordt gecompileerd en gebouwd.
- Start uw gecompileerde app, meld u aan met een Microsoft Entra gebruiker die niet is gericht op app-beveiligingsbeleid en controleer of de app werkt zoals verwacht.
- Meld u af en herhaal deze test met een Microsoft Entra gebruiker waarop app-beveiligingsbeleid is gericht en bevestig dat de app nu wordt beheerd door Intune en opnieuw is opgestart.
Op dit punt in de integratie kan uw app nu app-beveiligingsbeleid ontvangen en afdwingen. Voer de volgende tests uit om de integratie te valideren.
Eerste beleidstoepassingstest
Voer eerst de volgende test uit om vertrouwd te raken met de volledige ervaring van de eindgebruiker van de beleidstoepassing in uw app:
- Maak een beveiligingsbeleid voor iOS-apps in het Microsoft Intune-beheercentrum. Configureer voor deze test het beleid:
- Laat onder Toegangsvereisten de standaardinstellingen staan. Met name 'Pincode voor Toegang' moet 'Vereisen' zijn.
- Zorg ervoor dat het app-beveiligingsbeleid is gericht op uw toepassing. Mogelijk moet u de bundel-id van de toepassing handmatig toevoegen in de wizard voor het maken van beleid.
- Wijs het app-beveiligingsbeleid toe aan een gebruikersgroep die uw testaccount bevat.
- Installeer uw toepassing.
- Meld u aan bij uw toepassing met uw testaccount waarop app-beveiligingsbeleid is gericht.
- Controleer of u wordt gevraagd om een Intune beheerd scherm en bevestig dat de app opnieuw wordt gestart door de prompt. Dit scherm geeft aan dat de SDK het beleid voor dit account heeft opgehaald.
- Maak een pincode wanneer u wordt gevraagd een app-pincode in te stellen.
- Meld het beheerde account uit uw toepassing.
- Navigeer door uw toepassing en controleer of uw app werkt zoals verwacht, indien mogelijk zonder u aan te melden.
Deze lijst met stappen is een *bare minimum-test om te controleren of uw app het account correct registreert, de verificatie-callback registreert en de registratie van het account ongedaan maakt. Voer de volgende tests uit om grondiger te valideren hoe andere instellingen voor app-beveiligingsbeleid het gedrag van uw toepassing wijzigen.
Volgende stappen
Nadat u alle afsluitcriteria hebt voltooid, gaat u verder met Fase 4: Functies voor app-deelname.