Delen via


Intune App SDK voor iOS - Functies voor app-deelname

Met de Microsoft Intune App SDK voor iOS kunt u intune-app-beveiligingsbeleid (ook wel APP - of MAM-beleid genoemd) opnemen in uw systeemeigen iOS-app. Een door Intune beheerde toepassing is een toepassing die is geïntegreerd met de Intune App SDK. Intune-beheerders kunnen eenvoudig app-beveiligingsbeleid implementeren in uw door Intune beheerde app wanneer Intune de app actief beheert.

Opmerking

Deze handleiding is onderverdeeld in verschillende fasen. Bekijk eerst De integratie plannen.

Fase 4: Functies voor app-deelname

Fasedoelen

  • Meer informatie over de verschillende functies voor app-deelname die worden aangeboden door de Intune App SDK.
  • Functies voor app-deelname integreren die relevant zijn voor uw app en gebruikers.
  • Test de integratie van deze functies.

Wat zijn 'Functies voor app-deelname'?

Met dit SDK-integratieproces wordt geprobeerd de hoeveelheid app-specifieke code die ontwikkelaars moeten schrijven te minimaliseren. Door de voorgaande fasen van de SDK-integratie te voltooien, kan uw app nu de meeste instellingen voor app-beveiligingsbeleid afdwingen, zoals bestandsversleuteling, beperkingen voor kopiëren/plakken, schermopnameblokkering en beperkingen voor gegevensoverdracht.

Er zijn echter enkele instellingen waarvoor app-specifieke code is vereist om correct af te dwingen; dit worden functies voor app-deelname genoemd. De SDK heeft doorgaans onvoldoende context over de code van uw toepassing of het scenario van de eindgebruiker om deze instellingen automatisch af te dwingen en is daarom afhankelijk van ontwikkelaars om de SDK-API's op de juiste manier aan te roepen.

Functies voor app-deelname zijn niet noodzakelijkerwijs optioneel. Afhankelijk van de bestaande functies van uw app zijn deze functies mogelijk vereist.

In de volgende fasen van deze handleiding worden verschillende belangrijke functies voor app-deelname beschreven:

In de rest van deze handleiding worden de resterende set functies voor app-deelname beschreven:

  • Toegestane accounts implementeren
  • Bestandsversleuteling vereist implementeren
  • Besturingselementen opslaan als en openen implementeren
  • Gegevens delen via UIActivityViewController
  • Gerichte configuratie (APP/MAM-app-configuratie) inschakelen voor uw iOS-toepassingen
  • Telemetrie
  • Siri Intents
  • App-clips
  • Drukkerij
  • Meldingen
  • Script na build

Het gedrag van uw app aanpassen met API's

De Intune App SDK heeft verschillende API's die u kunt aanroepen voor informatie over het Intune-APP-beleid dat in de app is geïmplementeerd. U kunt deze gegevens gebruiken om het gedrag van uw app aan te passen. De volgende tabel bevat informatie over enkele essentiële Intune-klassen die u gebruikt.

Klas Beschrijving
IntuneMAMPolicyManager.h De klasse IntuneMAMPolicyManager maakt het Intune-APP-beleid beschikbaar dat is geïmplementeerd voor de toepassing. Het bevat met name API's die handig zijn voor het inschakelen van meerdere identiteiten.
IntuneMAMPolicy.h Met de klasse IntuneMAMPolicy worden enkele MAM-beleidsinstellingen weergegeven die van toepassing zijn op de app. De meeste van deze beleidsinstellingen worden weergegeven, zodat de app de gebruikersinterface kan aanpassen. De meeste beleidsinstellingen worden afgedwongen door de SDK en niet door de app. Er zijn echter enkele uitzonderingen. App-ontwikkelaars moeten de opmerkingen in deze header bekijken om te bepalen welke API's van toepassing zijn op de scenario's van hun toepassing.
IntuneMAMFileProtectionManager.h De klasse IntuneMAMFileProtectionManager maakt API's beschikbaar die de app kan gebruiken om bestanden en mappen expliciet te beveiligen op basis van een opgegeven identiteit. De identiteit kan worden beheerd door Intune of niet worden beheerd en de SDK past het juiste MAM-beleid toe. Het gebruik van deze klasse is optioneel.
IntuneMAMDataProtectionManager.h De klasse IntuneMAMDataProtectionManager biedt API's die de app kan gebruiken om gegevensbuffers te beveiligen op basis van een opgegeven identiteit. De identiteit kan worden beheerd door Intune of onbeheerd, en de SDK past de versleuteling op de juiste manier toe.

Toegestane accounts implementeren

Met Intune kunnen IT-beheerders opgeven bij welke accounts de gebruiker zich kan aanmelden. Apps kunnen een query uitvoeren op de Intune App SDK voor de opgegeven lijst met toegestane accounts en er vervolgens voor zorgen dat alleen toegestane accounts zijn aangemeld bij het apparaat.

Als u een query wilt uitvoeren op toegestane accounts, moet de app de allowedAccounts eigenschap op de IntuneMAMEnrollmentManagercontroleren. De allowedAccounts eigenschap is een matrix met de toegestane accounts of nil. Als de eigenschap nihil is, zijn er geen toegestane accounts opgegeven. Toepassingen waarvoor MSAL/OneAuth is ingeschakeld, moeten de allowedAccountIds eigenschap op het exemplaar gebruiken om een query uit te voeren op de IntuneMAMEnrollmentManager Entra-object-id.

Apps kunnen ook reageren op wijzigingen van de allowedAccounts eigenschap door de IntuneMAMAllowedAccountsDidChangeNotification melding te observeren. De melding wordt gepost wanneer de allowedAccounts eigenschap in waarde verandert.

De volgende vereisten zijn vereist bij het gebruik van API's voor toegestane accounts:

  • Identiteitsvergelijking moet hoofdlettergevoelig zijn voor UPN en OID.
  • Identiteitsvergelijking moet zowel UPN als OID ondersteunen.
  • De toepassing moet logboekregistratie hebben om eventuele niet-overeenkomende tussen het door de beheerder opgegeven account en het door de gebruiker ingevoerde account te diagnosticeren.

Bestandsversleuteling vereist implementeren

De isFileEncryptionRequired API die is gedefinieerd in IntuneMAMPolicy.h informeert toepassingen wanneer de IT-beheerder vereist dat toepassingen Intune-versleuteling gebruiken voor bestanden die op schijf zijn opgeslagen. Als isFileEncryptionRequired dit waar is, is het de verantwoordelijkheid van de app om ervoor te zorgen dat bestanden die door de app op schijf zijn opgeslagen, worden versleuteld met behulp van de API's in IntuneMAMFile.h, IntuneMAMFileProtectionManager.hen IntuneMAMFDataProtectionManager.h.

Apps kunnen reageren op wijzigingen in dit beleid door de IntuneMAMDataProtectionDidChangeNotification melding te observeren die is gedefinieerd in IntuneMAMFDataProtectionManager.h.

Besturingselementen opslaan als en openen implementeren

Met Intune kunnen IT-beheerders selecteren op welke opslaglocaties een beheerde app gegevens kan opslaan of gegevens kunnen openen. Apps kunnen een query uitvoeren op de Intune MAM SDK voor toegestane opslaglocaties met behulp van de isSaveToAllowedForLocation:withAccountId: API die is gedefinieerd in IntuneMAMPolicy.h. Apps kunnen ook een query uitvoeren op de SDK voor toegestane open-from-opslaglocaties met behulp van de isOpenFromAllowedForLocation:withAccountId: API, die ook is gedefinieerd in IntuneMAMPolicy.h.

Bovendien kunnen apps controleren of binnenkomende gegevens van een share-extensie zijn toegestaan door een query uit te voeren op de canReceiveSharedItemProvider: API, gedefinieerd in IntuneMAMPolicy.h. Apps kunnen ook een query uitvoeren op de canReceiveSharedFile: API om binnenkomende bestanden van een openURL-aanroep te verifiëren, ook gedefinieerd in IntuneMAMPolicy.h

Opmerking

Er zijn wijzigingen aangebracht in het interne gedrag vanaf MAM SDK v15.1.0.

  • Een nil account wordt niet langer behandeld als het huidige account voor de LocalDrive-/LocalStorage-locaties. Als u een nil account doorgeeft, wordt dit behandeld als een niet-beheerd account. Omdat app's kunnen bepalen hoe ze hun sandbox-opslag verwerken, kan en moet een identiteit worden gekoppeld aan deze locaties.
  • Een nil account wordt niet langer behandeld als het huidige account voor apps met één identiteit. Het doorgeven van een nil account in een app met één identiteit wordt nu precies hetzelfde behandeld als wanneer het is doorgegeven aan een app met meerdere identiteiten. Als u een app met één identiteit ontwikkelt, gebruikt u de IntuneMAMPolicy's primaryUser om te verwijzen naar het huidige account indien beheerd en nil om te verwijzen naar het huidige account als deze niet wordt beheerd.

Opslaan-naar-scenario's verwerken

Voordat u gegevens verplaatst naar een nieuwe cloudopslag of lokale locatie, moet een app bij de isSaveToAllowedForLocation:withAccountId: API controleren of de IT-beheerder de gegevensoverdracht heeft toegestaan. Deze methode wordt aangeroepen voor een IntuneMAMPolicy object. Gegevens die ter plaatse worden bewerkt en opgeslagen, hoeven niet te worden gecontroleerd met deze API.

Opmerking

Het IntuneMAMPolicy object moet het beleid vertegenwoordigen van de eigenaar van de gegevens die worden opgeslagen. Als u het IntuneMAMPolicy object van een specifieke identiteit wilt ophalen, roept u IntuneMAMPolicyManagerde methode aan policyForAccountId: . Als de eigenaar een niet-beheerd account zonder identiteit is, nil kan worden doorgegeven aan policyForAccountId:. Zelfs als de opgeslagen gegevens geen organisatiegegevens zijn, isSaveToAllowedForLocation:withAccountId: moeten ze nog steeds worden aangeroepen. Het account dat eigenaar is van de doellocatie heeft mogelijk nog steeds beleidsregels die binnenkomende onbeheerde gegevens beperken.

De isSaveToAllowedForLocation:withAccountId: methode neemt twee argumenten. Het eerste argument is een opsommingswaarde van het type IntuneMAMSaveLocation dat is gedefinieerd in IntuneMAMPolicy.h. Het tweede argument is de UPN van de identiteit die eigenaar is van de locatie. Als de eigenaar niet bekend is, nil kan in plaats daarvan worden gebruikt.

Ondersteunde opslaglocaties

De Intune MAM SDK biedt ondersteuning voor de volgende opslaglocaties die zijn gedefinieerd in IntuneMAMPolicy.h:

  • IntuneMAMSaveLocationOneDriveForBusiness - Deze locatie vertegenwoordigt OneDrive voor Bedrijven-locaties. De identiteit die is gekoppeld aan het OneDrive-account moet als tweede argument worden doorgegeven.
  • IntuneMAMSaveLocationSharePoint - Deze locatie vertegenwoordigt zowel SharePoint Online- als Microsoft Entra Hybrid Modern Auth SharePoint on-premises locaties. De identiteit die is gekoppeld aan het SharePoint-account moet als tweede argument worden doorgegeven.
  • IntuneMAMSaveLocationLocalDrive - Deze locatie vertegenwoordigt app-sandbox-opslag die alleen toegankelijk is voor de app. Deze locatie mag niet worden gebruikt voor het opslaan via een bestandenkiezer of voor het opslaan in bestanden via een share-extensie. Als een identiteit kan worden gekoppeld aan de app-sandbox-opslag, moet deze worden doorgegeven als het tweede argument. Als er geen identiteit is, nil moet in plaats daarvan worden doorgegeven. Een app kan bijvoorbeeld afzonderlijke opslagcontainers voor app-sandbox gebruiken voor verschillende accounts. In dit geval moet het account dat eigenaar is van de container die wordt geopend, worden gebruikt als het tweede argument.
  • IntuneMAMSaveLocationCameraRoll - Deze locatie vertegenwoordigt de iOS-fotobibliotheek. Omdat er geen account is gekoppeld aan de iOS-fotobibliotheek, moet alleen nil worden doorgegeven als het tweede argument wanneer deze locatie wordt gebruikt.
  • IntuneMAMSaveLocationAccountDocument - Deze locatie vertegenwoordigt elke organisatielocatie die niet eerder werd vermeld en die kan worden gekoppeld aan een beheerd account. Het organisatieaccount dat aan de locatie is gekoppeld, moet als tweede argument worden doorgegeven. Bijvoorbeeld het uploaden van een foto naar de LOB-cloudservice van een organisatie die is gekoppeld aan het organisatieaccount.
  • IntuneMAMSaveLocationOther - Deze locatie vertegenwoordigt een niet-organisalisatielocatie, niet eerder vermeld, of een onbekende locatie. Als een account is gekoppeld aan de locatie, moet dit worden doorgegeven als het tweede argument. nil Anders moet in plaats daarvan worden gebruikt.
Speciale overwegingen voor opslaglocaties

De IntuneMAMSaveLocationLocalDrive locatie mag alleen worden gebruikt voor app-sandbox-opslag die alleen toegankelijk is voor de app. Om te controleren of een bestand kan worden opgeslagen op iOS-apparaatopslag via een bestandenkiezer of een andere methode waarbij de gegevens toegankelijk zijn in de app Bestanden, IntuneMAMSaveLocationOther moet worden gebruikt.

Als de doellocatie niet wordt vermeld, IntuneMAMSaveLocationAccountDocument moet of IntuneMAMSaveLocationOther worden gebruikt. Als de locatie organisatiegegevens bevat die worden geopend met behulp van het beheerde account (dwk. LOB-cloudservice voor het opslaan van organisatiegegevens) IntuneMAMSaveLocationAccountDocument moet worden gebruikt. Als de locatie geen organisatiegegevens bevat, moet de IntuneMAMSaveLocationOther locatie worden gebruikt.

Open-from-scenario's verwerken

Voordat u gegevens importeert uit een nieuwe cloudopslag of lokale locatie, moet een app bij de isOpenFromAllowedForLocation:withAccountId: API controleren of de IT-beheerder de gegevensoverdracht heeft toegestaan. Deze methode wordt aangeroepen voor een IntuneMAMPolicy object. Gegevens die ter plaatse worden geopend, hoeven niet te worden gecontroleerd met deze API.

Opmerking

Het IntuneMAMPolicy object moet het beleid vertegenwoordigen van de identiteit die de gegevens ontvangt. Als u het IntuneMAMPolicy object van een specifieke identiteit wilt ophalen, roept u IntuneMAMPolicyManagerde methode aan policyForAccountId: . Als het ontvangende account een niet-beheerd account zonder identiteit is, nil kan worden doorgegeven aan policyForAccountId:. Zelfs als de ontvangen gegevens geen organisatiegegevens zijn, isOpenFromAllowedForLocation:withAccountId: moeten nog steeds worden aangeroepen. Het account dat eigenaar is van de gegevens heeft mogelijk nog steeds beleidsregels die de bestemmingen van uitgaande gegevensoverdracht beperken.

De isOpenFromAllowedForLocation:withAccountId: methode neemt twee argumenten. Het eerste argument is een opsommingswaarde van het type IntuneMAMOpenLocation dat is gedefinieerd in IntuneMAMPolicy.h. Het tweede argument is de UPN van de identiteit die eigenaar is van de locatie. Als de eigenaar niet bekend is, nil kan in plaats daarvan worden gebruikt.

Ondersteunde open locaties

De Intune MAM SDK biedt ondersteuning voor de volgende open locaties die zijn gedefinieerd in IntuneMAMPolicy.h:

  • IntuneMAMOpenLocationOneDriveForBusiness - Deze locatie vertegenwoordigt OneDrive voor Bedrijven-locaties. De identiteit die is gekoppeld aan het OneDrive-account moet als tweede argument worden doorgegeven.
  • IntuneMAMOpenLocationSharePoint - Deze locatie vertegenwoordigt zowel SharePoint Online- als Microsoft Entra Hybrid Modern Auth SharePoint on-premises locaties. De identiteit die is gekoppeld aan het SharePoint-account moet als tweede argument worden doorgegeven.
  • IntuneMAMOpenLocationCamera - Deze locatie vertegenwoordigt alleen nieuwe beelden die door de camera zijn gemaakt. Omdat er geen account is gekoppeld aan de iOS-camera, moet alleen nil worden doorgegeven als het tweede argument wanneer deze locatie wordt gebruikt. Gebruik IntuneMAMOpenLocationPhotosvoor het openen van gegevens uit de iOS-fotobibliotheek.
  • IntuneMAMOpenLocationPhotos - Deze locatie vertegenwoordigt alleen bestaande afbeeldingen in de iOS-fotobibliotheek. Omdat er geen account is gekoppeld aan de iOS-fotobibliotheek, moet alleen nil worden doorgegeven als het tweede argument wanneer deze locatie wordt gebruikt. Gebruik voor het openen van afbeeldingen die rechtstreeks vanaf de iOS-camera zijn IntuneMAMOpenLocationCameragemaakt.
  • IntuneMAMOpenLocationLocalStorage - Deze locatie vertegenwoordigt app-sandbox-opslag die alleen toegankelijk is voor de app. Deze locatie mag niet worden gebruikt voor het openen van bestanden vanuit een bestandenkiezer of het verwerken van binnenkomende bestanden vanaf een openURL. Als een identiteit kan worden gekoppeld aan de app-sandbox-opslag, moet deze worden doorgegeven als het tweede argument. Als er geen identiteit is, nil moet in plaats daarvan worden doorgegeven. Een app kan bijvoorbeeld afzonderlijke opslagcontainers voor app-sandbox gebruiken voor verschillende accounts. In dit geval moet het account dat eigenaar is van de container die wordt geopend, worden gebruikt als het tweede argument.
  • IntuneMAMOpenLocationAccountDocument - Deze locatie vertegenwoordigt elke organisatielocatie die niet eerder werd vermeld en die kan worden gekoppeld aan een beheerd account. Het organisatieaccount dat aan de locatie is gekoppeld, moet als tweede argument worden doorgegeven. Bijvoorbeeld het downloaden van een foto van de LOB-cloudservice van een organisatie die is gekoppeld aan het organisatieaccount.
  • IntuneMAMOpenLocationOther - Deze locatie vertegenwoordigt een niet-organisatielocatie, niet eerder vermeld, of een onbekende locatie. Als een account is gekoppeld aan de locatie, moet dit worden doorgegeven als het tweede argument. nil Anders moet in plaats daarvan worden gebruikt.
Speciale overwegingen voor open locaties

De IntuneMAMOpenLocationLocalStorage locatie mag alleen worden gebruikt voor app-sandbox-opslag die toegankelijk is voor de app. Om te controleren of een bestand kan worden geopend vanuit de opslag van een iOS-apparaat via een bestandenkiezer of een andere methode waarbij de gegevens ook toegankelijk zijn in de app Bestanden, IntuneMAMOpenLocationOther moet worden gebruikt.

Als de doellocatie niet wordt vermeld, IntuneMAMOpenLocationAccountDocument moet of IntuneMAMOpenLocationOther worden gebruikt. Als de locatie organisatiegegevens bevat die worden geopend met behulp van het beheerde account. De LOB-cloudservice voor het opslaan van organisatiegegevens IntuneMAMOpenLocationAccountDocument moet bijvoorbeeld worden gebruikt. Als de locatie geen organisatiegegevens bevat, moet de IntuneMAMSaveLocationOther locatie worden gebruikt.

Binnenkomende NSItemProviders en bestanden verwerken

Voor het verwerken van NSItemProviders die zijn ontvangen van een share-extensie, kan de IntuneMAMPolicycanReceiveSharedItemProvider: methode worden gebruikt in plaats van isOpenFromAllowedForLocation:withAccountId:. De canReceiveSharedItemProvider: methode neemt een NSItemProvider en retourneert of deze door de IT-beheerder is toegestaan om te worden geopend in het account van het IntuneMAMPolicy object. Het item moet worden geladen voordat deze methode wordt aangeroepen. Bijvoorbeeld door aan te roepen loadItemForTypeIdentifier:options:completionHandler. Deze methode kan ook worden aangeroepen vanuit de voltooiingshandler die is doorgegeven aan de load-aanroep NSItemProvider.

Voor het verwerken van binnenkomende bestanden kan de IntuneMAMPolicymethode 's canReceiveSharedFile: worden gebruikt in plaats van isOpenFromAllowedForLocation:withAccountId:. De canReceiveSharedFile: methode neemt een NSString-pad en retourneert of het door de IT-beheerder is toegestaan om te worden geopend in het account van het IntuneMAMPolicy object.

Geblokkeerde waarschuwing delen

Een helperfunctie voor de gebruikersinterface kan worden gebruikt wanneer de isSaveToAllowedForLocation:withAccountId:isOpenFromAllowedForLocation:withAccountId: OF-API wordt aangeroepen en de actie opslaan/openen wordt geblokkeerd. Als de app de gebruiker wil laten weten dat de actie is geblokkeerd, kan deze de showSharingBlockedMessage API aanroepen die is gedefinieerd in IntuneMAMUIHelper.h om een waarschuwingsweergave te presenteren met een algemeen bericht.

Gegevens delen via UIActivityViewController

Vanaf versie 8.0.2 kan de Intune App SDK acties filteren UIActivityViewController , zodat alleen door Intune beheerde sharelocaties beschikbaar zijn om te selecteren. Dit gedrag wordt bepaald door het beleid voor gegevensoverdracht van de toepassing.

'Kopiëren naar'-acties

Wanneer u documenten deelt via en UIActivityViewControllerUIDocumentInteractionController, geeft iOS de acties Kopiëren naar weer voor elke toepassing die ondersteuning biedt voor het openen van het document dat wordt gedeeld. Toepassingen declareren de documenttypen die ze ondersteunen via de CFBundleDocumentTypes instelling in hun Info.plist. Dit type delen is niet meer beschikbaar als het beleid het delen met onbeheerde toepassingen verbiedt. Als vervanging moet de gebruiker een niet-UI Action-extensie toevoegen aan hun toepassing en deze koppelen aan de Intune App SDK. De actie-extensie is slechts een stub. De SDK implementeert het gedrag voor het delen van bestanden. Volg de onderstaande stappen:

  1. Uw toepassing moet ten minste één schemeURL hebben gedefinieerd onder de info.plist CFBundleURLTypes , samen met de -intunemam bijbehorende tegenhanger. Bijvoorbeeld:

    <key>CFBundleURLSchemes</key>
     <array>
     	<string>launch-com.contoso.myapp</string>
     	<string>launch-com.contoso.myapp-intunemam</string>
     </array>
    
  2. Zowel uw toepassing als de actie-extensie moeten ten minste één app-groep delen en de app-groep moet worden vermeld onder de AppGroupIdentifiers matrix onder de IntuneMAMSettings-woordenlijsten van de app en de extensie.

  3. Zowel uw toepassing als de actie-extensie moeten de mogelijkheid voor het delen van sleutelhangers hebben en de com.microsoft.intune.mam sleutelhangergroep delen.

  4. Geef de actie-extensie de naam Openen in, gevolgd door de naam van de toepassing. Lokaliseer de Info.plist indien nodig.

  5. Geef een sjabloonpictogram op voor de extensie, zoals beschreven in de documentatie voor ontwikkelaars van Apple. U kunt ook het hulpprogramma IntuneMAMConfigurator gebruiken om deze installatiekopieën te genereren vanuit de toepassing .app directory. Voer hiervoor het volgende uit:

    IntuneMAMConfigurator -generateOpenInIcons /path/to/app.app -o /path/to/output/directory
    
  6. Voeg onder IntuneMAMSettings in de Info.plist van de extensie een Booleaanse instelling toe met de naam OpenInActionExtension JA.

  7. Configureer de NSExtensionActivationRule voor ondersteuning van één bestand en alle typen van het voorvoegsel van de toepassing CFBundleDocumentTypes met com.microsoft.intune.mam. Als de toepassing bijvoorbeeld public.text en public.image ondersteunt, is de activeringsregel:

    SUBQUERY (
        extensionItems,
        $extensionItem,
        SUBQUERY (
            $extensionItem.attachments,
            $attachment,
            ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.text" ||
            ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.image").@count == 1
    ).@count == 1
    

Bestaande share- en actie-extensies bijwerken

Als uw app al share- of actie-extensies bevat, NSExtensionActivationRule moet deze worden gewijzigd om de Intune-typen toe te staan. Voeg voor elk type dat wordt ondersteund door de extensie een extra type toe met com.microsoft.intune.mamhet voorvoegsel . Als de bestaande activeringsregel bijvoorbeeld is:

SUBQUERY (
    extensionItems,
    $extensionItem,
    SUBQUERY (
        $extensionItem.attachments,
        $attachment,
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.data"
    ).@count > 0
).@count > 0

Deze moet worden gewijzigd in:

SUBQUERY (
    extensionItems,
    $extensionItem,
    SUBQUERY (
        $extensionItem.attachments,
        $attachment,
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.data" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.url" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.plain-text" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.image" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.data"
    ).@count > 0
).@count > 0

Opmerking

Het hulpprogramma IntuneMAMConfigurator kan worden gebruikt om de Intune-typen toe te voegen aan de activeringsregel. Als uw bestaande activeringsregel de vooraf gedefinieerde tekenreeksconstanten gebruikt. Bijvoorbeeld: NSExtensionActivationSupportsFileWithMaxCount, NSExtensionActivationSupportsText, enzovoort, de predicaatsyntaxis kan behoorlijk complex worden. Het hulpprogramma IntuneMAMConfigurator kan ook worden gebruikt om de activeringsregel van de tekenreeksconstanten te converteren naar een predicaattekenreeks tijdens het toevoegen van de Intune-typen.

Hoe de gebruikersinterface eruit moet zien

Oude gebruikersinterface:

Gegevens delen - oude gebruikersinterface voor delen in iOS

Nieuwe gebruikersinterface:

Gegevens delen - nieuwe gebruikersinterface voor delen in iOS

Gerichte app-configuratie inschakelen voor uw iOS-toepassingen

Met mam-gerichte configuratie (ook wel mam-app-configuratie genoemd) kan een app configuratiegegevens ontvangen via de Intune SDK. De indeling en varianten van deze gegevens moeten worden gedefinieerd en doorgegeven aan Intune-klanten door de eigenaar/ontwikkelaar van de app.

Intune-beheerders kunnen configuratiegegevens targeten en implementeren via het Microsoft Intune-beheercentrum en Intune Graph API. Vanaf versie 7.0.1 van de Intune App SDK voor iOS kunnen apps die deelnemen aan de mam-gerichte configuratie, mam-gerichte configuratiegegevens krijgen via de MAM-service. De toepassingsconfiguratiegegevens worden via onze MAM-service rechtstreeks naar de app gepusht in plaats van via het MDM-kanaal. De Intune App SDK biedt een klasse voor toegang tot de gegevens die zijn opgehaald uit deze consoles. De volgende items zijn vereisten:

  • De app moet worden ingeschreven bij de Intune MAM-service voordat u toegang krijgt tot de gebruikersinterface voor mam-gerichte configuratie. Zie App-beveiligingsbeleid ontvangen voor meer informatie.

  • Opnemen IntuneMAMAppConfigManager.h in het bronbestand van uw app.

  • Roep [[IntuneMAMAppConfigManager instance] appConfigForAccountId:] aan om het app-configuratieobject op te halen.

  • Roep de juiste selector voor het object aan IntuneMAMAppConfig . Als de sleutel van uw toepassing bijvoorbeeld een tekenreeks is, wilt u of allStringsForKeygebruikenstringValueForKey. Zie IntuneMAMAppConfig.h voor een gedetailleerde beschrijving van retourwaarden en foutvoorwaarden.

Zie Graph API Reference voor meer informatie over de mogelijkheden van de Graph API.

Zie voor meer informatie over het maken van een op MAM gericht app-configuratiebeleid in iOS de sectie over configuratie van mam-apps in Microsoft Intune-app-configuratiebeleid gebruiken voor iOS/iPadOS.

Telemetrie

Standaard verzamelt de Intune App SDK voor iOS telemetrie over de volgende typen gebeurtenissen:

  • App starten: om Microsoft Intune te helpen meer te weten te komen over het gebruik van mam-apps per beheertype (MAM met MDM, MAM zonder MDM-inschrijving, enzovoort).

  • Inschrijvingsaanroepen: om Microsoft Intune te helpen meer te weten te komen over het slagingspercentage en andere prestatiegegevens van inschrijvingsaanroepen die vanaf de clientzijde zijn geïnitieerd.

  • Intune-acties: om problemen vast te stellen en de Intune-functionaliteit te garanderen, verzamelen we informatie over Intune SDK-acties.

Opmerking

Als u ervoor kiest om telemetriegegevens van Intune App SDK niet vanuit uw mobiele toepassing naar Microsoft Intune te verzenden, moet u telemetrie-opname van Intune App SDK uitschakelen. Stel de eigenschap MAMTelemetryDisabled in op JA in de woordenlijst IntuneMAMSettings.

Siri Intents

Als uw app is geïntegreerd met Siri Intents of Siri Intent-donaties doet, leest u de opmerkingen voor areSiriIntentsAllowed in IntuneMAMPolicy.h voor instructies over het ondersteunen van dit scenario.

Opmerking

In iOS 16 en hoger is er een nieuw App Intents-systeemframework beschikbaar voor het maken van Swift-app-intenties. Apps die een app-intentie implementeren, moeten eerst de areSiriIntentsAllowed eigenschap op het IntuneMAMPolicy-object voor de gebruiker controleren.

App-clips

Als uw app een app-clipdoel bevat, controleert u of er geen beheerde gegevens worden weergegeven in de app-clip. De app-clip moet worden beschouwd als een onbeheerde locatie. SDK-integratie in App Clips wordt momenteel niet ondersteund.

Drukkerij

Als uw app afdrukken implementeert en een aangepaste afdrukactie biedt in een aangepast menu, moet u gebruiken UIPrintInteractionController.isPrintingAvailable() om te bepalen of u de afdrukactie moet toevoegen aan uw aangepaste menu.

Meldingen

Als uw app meldingen ontvangt, leest u de opmerkingen voor notificationPolicy in IntuneMAMPolicy.h voor instructies over het ondersteunen van dit scenario. Het wordt aanbevolen om apps te registreren voor IntuneMAMPolicyDidChangeNotification beschreven in IntuneMAMPolicyManager.hen deze waarde via de sleutelhanger aan hun UNNotificationServiceExtension door te geven.

Safari-webextensies

Als uw app een Safari-webextensie heeft en ondersteuning biedt voor het verzenden van gegevens tussen de extensie en de bovenliggende toepassing, moet uw toepassing in sommige scenario's mogelijk ondersteuning bieden voor het blokkeren van de gegevens. Als u de gegevens wilt blokkeren, roept u in de bovenliggende toepassing de isAppSharingAllowed API aan in IntuneMAMPolicy.hen blokkeert u vervolgens de webextensie.

Script na build

Het opdrachtregelprogramma IntuneMAMFrameworkPatcher hoeft niet meer te worden uitgevoerd als laatste stap van het buildproces van de toepassing. Dit hulpprogramma is echter beschikbaar als onderdeel van de Intune App SDK voor iOS op GitHub.

Belangrijk

Vanaf de versie 17.7.1 van de Intune MAM SDK is deze stap niet meer vereist. Het opdrachtregelprogramma IntuneMAMFrameworkPatcher hoeft niet meer te worden uitgevoerd.

Opdrachtregelgebruik

IntuneMAMFrameworkPatcher -i /path/to/directory_or_binary [-resign] [-verbose]

Parameters:

  • i, r, : vmet deze parameter kunt u ervoor kiezen om de Intune MAM Framework-patcher voor het buildproces van de toepassing te installeren, te verwijderen of te verifiëren.
  • path: de path moet de hoofdmap van de .app map van de toepassing zijn.
  • resign: met de resign optie wordt het hulpprogramma geïnstrueerd om binaire bestanden te verwijderen die een geldige handtekening hadden voordat het binaire bestand werd gepatcht. Deze optie moet worden gebruikt als het project frameworkafhankelijkheden of invoegtoepassingen bevat met de optie Insluiten en ondertekenen , zelfs wanneer het wordt uitgevoerd vóór de definitieve ondertekening van de toepassing, of als het hulpprogramma wordt uitgevoerd na de definitieve ondertekening van de toepassing.
  • verbose: De verbose optie zorgt ervoor dat het hulpprogramma informatie uitvoert over elk binair bestand dat is gepatcht.

Ander gebruik:

  • Verwijder de patch:

    IntuneMAMFrameworkPatcher -r /path/to/directory_or_binary [-resign] [-verbose]

  • Controleer de patch:

    IntuneMAMFrameworkPatcher -v /path/to/directory_or_binary [-verbose]

Voorbeeldscript:

IntuneMAMFrameworkPatcher -i $BUILT_PRODUCTS_DIR/$EXECUTABLE_FOLDER_PATH -resign -verbose

Zie Aan de slag met de Microsoft Intune App SDK voor meer informatie over hoe u aan de slag gaat en de SDK downloadt.

Afsluitcriteria

Opslaan valideren in/openen vanuit beperkingen

Sla over als u geen besturingselementen voor opslaan als en openen hebt geïmplementeerd.

Houd uzelf vertrouwd met elk scenario waarin uw app gegevens kan opslaan in cloudopslag of lokale locaties en gegevens kan openen vanuit cloudopslag of lokale locaties.

Voor het gemak wordt bij deze tests ervan uitgegaan dat uw app alleen ondersteuning biedt voor het opslaan en openen van gegevens uit OneDrive voor Bedrijven vanaf één locatie in de app. U moet echter elke combinatie valideren: elke ondersteunde opslaglocatie voor elke locatie in uw app maakt het opslaan van gegevens mogelijk en elke ondersteunde open locatie voor elke locatie in uw app staat het openen van gegevens toe.

Voor deze tests installeert u uw app, integreert u deze met de SDK en meldt u zich aan met een beheerd account voordat u de test start.

Bijkomend:

  • Stel het beleid van het beheerde account in als:
    • 'Organisatiegegevens verzenden naar andere apps' naar 'Door beleid beheerde apps'.
    • 'Gegevens ontvangen van andere apps' naar 'Door beleid beheerde apps'.
Scenario Voorwaarden Stappen
Opslaan in, volledig toegestaan Beleid 'Kopieën van organisatiegegevens opslaan' is ingesteld op 'Toestaan' - Navigeer naar de locatie waar uw app gegevens kan opslaan in OneDrive voor Bedrijven.
- Probeer een document op te slaan in OneDrive voor Bedrijven, in hetzelfde beheerde account dat is aangemeld bij uw app.
- Controleer of opslaan is toegestaan.
Opslaan in, uitgesloten - Het beleid 'Kopieën van organisatiegegevens opslaan' is ingesteld op 'Blokkeren'
- Het beleid 'Gebruiker toestaan kopieën op te slaan naar geselecteerde services' is ingesteld op Alleen OneDrive voor Bedrijven
- Navigeer naar de locatie waar uw app gegevens kan opslaan in OneDrive voor Bedrijven.
- Probeer een document op te slaan in OneDrive voor Bedrijven, in hetzelfde beheerde account dat is aangemeld bij uw app.
- Controleer of opslaan is toegestaan.
- Als uw app dit toestaat, probeert u het bestand op te slaan op een andere cloudopslaglocatie en controleert u of het is geblokkeerd.
Opslaan in, geblokkeerd Beleid 'Kopieën van organisatiegegevens opslaan' ingesteld op 'Blokkeren' - Navigeer naar de locatie waar uw app gegevens kan opslaan in OneDrive voor Bedrijven.
- Probeer een document op te slaan in OneDrive voor Bedrijven, in hetzelfde beheerde account dat is aangemeld bij uw app.
- Controleer of het opslaan is geblokkeerd.
- Als uw app dit toestaat, probeert u het bestand op te slaan op een andere cloudopslaglocatie en controleert u of het is geblokkeerd.
Openen vanaf, volledig toegestaan Het beleid 'Gegevens openen in organisatiedocumenten' is ingesteld op 'Toestaan' - Navigeer naar de locatie waar uw app gegevens kan openen vanuit OneDrive voor Bedrijven.
- Probeer een document te openen vanuit OneDrive voor Bedrijven, vanuit hetzelfde beheerde account dat is aangemeld bij de opslag van uw app.
- Controleer of het openen is toegestaan.
Openen van, uitgesloten - Het beleid 'Gegevens openen in organisatiedocumenten' is ingesteld op 'Blokkeren'
- Het beleid 'Gebruikers toestaan gegevens te openen vanuit geselecteerde services' is ingesteld op Alleen OneDrive voor Bedrijven
- Navigeer naar de locatie waar uw app gegevens kan openen vanuit OneDrive voor Bedrijven.
- Probeer een document te openen vanuit OneDrive voor Bedrijven, vanuit hetzelfde beheerde account dat is aangemeld bij de opslag van uw app.
- Controleer of het openen is toegestaan.
- Als uw app dit toestaat, probeert u een ander bestand te openen vanaf een andere opslaglocatie in de cloud en controleert u of dit is geblokkeerd.
Openen vanaf, geblokkeerd Het beleid 'Gegevens openen in organisatiedocumenten' is ingesteld op 'Blokkeren' - Navigeer naar de locatie waar uw app gegevens kan openen vanuit OneDrive voor Bedrijven.
- Probeer een document te openen vanuit OneDrive voor Bedrijven, vanuit hetzelfde beheerde account dat is aangemeld bij de opslag van uw app.
- Controleer of het openen is geblokkeerd.
- Als uw app dit toestaat, probeert u een ander bestand te openen vanaf een andere opslaglocatie in de cloud en controleert u of dit is geblokkeerd.

Kopiëren naar-acties valideren

Sla over als u geen 'Kopiëren naar'-acties hebt geïmplementeerd.

Voor het gemak wordt bij deze tests ervan uitgegaan dat uw app alleen ondersteuning biedt voor het kopiëren van gegevens naar Microsoft Office-toepassingen zoals Microsoft Word, Excel, enzovoort. U moet echter elke combinatie valideren: elke ondersteunde locatie voor kopiëren naar elke locatie waar uw app gegevens naartoe kan kopiëren.

Voor deze tests installeert u uw app, integreert u deze met de SDK en meldt u zich aan met een beheerd account voordat u de test start.

Bijkomend:

  • Alle integratiestappen van de acties Kopiëren naar met een actie-extensie voor Microsoft Word voltooid en de app bouwen en uitvoeren.
  • Stel het beleid van het beheerde account in als:
    • 'Organisatiegegevens verzenden naar andere apps' naar 'Door beleid beheerde apps'.
Scenario Voorwaarden Stappen
Apps selecteren die u wilt uitsluiten, Geen Het beleid 'Organisatiegegevens verzenden naar andere apps' is ingesteld op 'Door beleid beheerde apps' - Navigeer naar de locatie waar uw app gegevens naar Microsoft Word kan kopiëren en start de optie voor delen voor die gegevens.
- Bevestig in plaats van 'Kopiëren naar Word' als optie te zien, kunt u 'Openen in Word' zien.
- Druk op Openen in Word en controleer of het document is gekopieerd en bekeken, aangezien Word ook is aangemeld met hetzelfde beheerde account.

Afdrukacties valideren

Sla over als u afdrukken niet hebt geïmplementeerd.

Voor deze test installeert u uw app, integreert u deze met de SDK en meldt u zich aan met een beheerd account voordat u de test start.

Bijkomend:

  • Alle integratiestappen van Afdrukken voltooid en de app bouwen en uitvoeren.
  • Uw app implementeert al waarschuwingen/actie-items om de case af te handelen wanneer afdrukken niet is toegestaan door de IT-beheerder van de APP. In deze test wordt ervan uitgegaan dat uw app eindgebruikers waarschuwt wanneer het afdrukken wordt geblokkeerd.
Scenario Stappen
Organisatiegegevens afdrukken, Blokkeren - Ga naar de locatie waar uw app gegevens kan bekijken en start de optie voor het delen van die gegevens.
- Druk op 'Afdrukken'.
- Controleer of er een blokkeringswaarschuwing wordt weergegeven en of afdrukken niet is toegestaan.
Organisatiegegevens afdrukken, Toestaan - Ga naar de locatie waar uw app gegevens kan bekijken en start de optie voor het delen van die gegevens.
- Druk op 'Afdrukken'.
- Bevestig dat de weergave Afdrukken wordt weergegeven en u kunt een printer selecteren en de actie voltooien.

Ontvangende app-configuraties valideren

Sla over als u geen gerichte app-configuratie hebt ingeschakeld voor uw iOS-toepassingen.

Intune is verantwoordelijk voor het leveren van de app-configuratiebeleidswaarden aan uw app; daarna is uw app verantwoordelijk voor het gebruik van deze waarden om het gedrag of de gebruikersinterface in de app te wijzigen. Grondige end-to-end-tests moeten beide onderdelen omvatten.

Ga als volgt te werk om te controleren of Intune het app-configuratiebeleid correct levert:

  1. Configureer een app-configuratiebeleid dat is gericht op uw app en dat is geïmplementeerd in uw testaccount.
  2. Meld u aan bij uw app met uw testaccount.
  3. Navigeer door uw app om elk codepad uit te voeren dat 's aanroeptIntuneMAMAppConfigManagerappConfigForIdentity.
    • Logboekregistratie van de resultaten van aanroepen is appConfigForIdentity een eenvoudige manier om te valideren welke instellingen worden geleverd. Omdat beheerders echter gegevens kunnen invoeren voor app-configuratie-instellingen, moet u ervoor oppassen dat u geen persoonlijke gebruikersgegevens opgeeft.
  4. Zie Het toegepaste app-configuratiebeleid valideren.

Omdat app-configuraties app-specifiek zijn, weet alleen u hoe u kunt valideren hoe uw app het gedrag of de gebruikersinterface voor elke app-configuratie-instelling moet wijzigen.

Houd bij het testen rekening met het volgende:

  • Zorg ervoor dat alle scenario's worden behandeld door een ander configuratiebeleid voor test-apps te maken met elke waarde die uw app ondersteunt.
  • De logica voor conflictoplossing van uw app valideren door meerdere configuratiebeleidsregels voor test-apps te maken met verschillende waarden voor elke instelling.

Volgende stappen

Als u deze handleiding op volgorde hebt gevolgd en alle bovenstaande afsluitcriteria hebt voltooid, gefeliciteerd, is uw app nu volledig geïntegreerd met de Intune App SDK en kan app-beveiligingsbeleid worden afgedwongen. Bekijk andere belangrijke functies voor app-deelname, zoals Fase 5: Multi-Identity, Fase 6: Ondersteuning voor voorwaardelijke toegang voor app-beveiliging en Functies voor fase 7: webweergave om deze te integreren in uw app.

App-beveiliging is nu een kernscenario voor uw app. Blijf deze handleiding en de bijlage raadplegen terwijl u uw app blijft ontwikkelen.