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:
- Meerdere identiteiten zoals beschreven in fase 5: multi-identiteit.
- App Protection-CA zoals beschreven in fase 6: Ondersteuning voor voorwaardelijke toegang voor app-beveiliging
- Specifieke functies voor webweergaven die worden behandeld in fase 7: functies voor webweergave
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 IntuneMAMEnrollmentManager
controleren. 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.h
en 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 eennil
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 eennil
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 deIntuneMAMPolicy
'sprimaryUser
om te verwijzen naar het huidige account indien beheerd ennil
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 IntuneMAMPolicyManager
de 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 alleennil
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 IntuneMAMPolicyManager
de 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 alleennil
worden doorgegeven als het tweede argument wanneer deze locatie wordt gebruikt. GebruikIntuneMAMOpenLocationPhotos
voor 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 alleennil
worden doorgegeven als het tweede argument wanneer deze locatie wordt gebruikt. Gebruik voor het openen van afbeeldingen die rechtstreeks vanaf de iOS-camera zijnIntuneMAMOpenLocationCamera
gemaakt. -
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 IntuneMAMPolicy
canReceiveSharedItemProvider:
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 IntuneMAMPolicy
methode '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 UIActivityViewController
UIDocumentInteractionController
, 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:
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>
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.Zowel uw toepassing als de actie-extensie moeten de mogelijkheid voor het delen van sleutelhangers hebben en de
com.microsoft.intune.mam
sleutelhangergroep delen.Geef de actie-extensie de naam Openen in, gevolgd door de naam van de toepassing. Lokaliseer de Info.plist indien nodig.
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
Voeg onder IntuneMAMSettings in de Info.plist van de extensie een Booleaanse instelling toe met de naam
OpenInActionExtension
JA.Configureer de
NSExtensionActivationRule
voor ondersteuning van één bestand en alle typen van het voorvoegsel van de toepassingCFBundleDocumentTypes
metcom.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.mam
het 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:
Nieuwe gebruikersinterface:
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 ofallStringsForKey
gebruikenstringValueForKey
. ZieIntuneMAMAppConfig.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.h
en 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.h
en 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
, :v
met 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
: depath
moet de hoofdmap van de .app map van de toepassing zijn. -
resign
: met deresign
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
: Deverbose
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:
- Configureer een app-configuratiebeleid dat is gericht op uw app en dat is geïmplementeerd in uw testaccount.
- Als uw app app-configuratie voor beheerde apparaten ondersteunt, raadpleegt u Toepassingsconfiguratiebeleid voor beheerde iOS Enterprise-apparaten.
- Als uw app app-configuratie voor beheerde apps ondersteunt, raadpleegt u Toepassingsconfiguratiebeleid voor beheerde apps.
- Als uw app beide typen app-configuratie ondersteunt, maakt u beide typen beleid voor het testen.
- Meld u aan bij uw app met uw testaccount.
- Navigeer door uw app om elk codepad uit te voeren dat 's aanroept
IntuneMAMAppConfigManager
appConfigForIdentity
.- 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.
- Logboekregistratie van de resultaten van aanroepen is
- 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.