Partager via


Sdk d’application Intune pour iOS - Fonctionnalités de participation aux applications

Le SDK d’application Microsoft Intune pour iOS vous permet d’incorporer des stratégies de protection des applications Intune (également appelées stratégies APP ou GAM) dans votre application iOS native. Une application gérée par Intune est une application intégrée au SDK d’application Intune. Les administrateurs Intune peuvent facilement déployer des stratégies de protection des applications sur votre application gérée par Intune quand Intune gère activement l’application.

Remarque

Ce guide est divisé en plusieurs étapes distinctes. Commencez par consulter Planifier l’intégration.

Étape 4 : Fonctionnalités de participation aux applications

Objectifs de la phase

  • Découvrez les différentes fonctionnalités de participation aux applications offertes par le SDK d’application Intune.
  • Intégrez les fonctionnalités de participation d’application pertinentes pour votre application et vos utilisateurs.
  • Testez l’intégration de ces fonctionnalités.

Que sont les « fonctionnalités de participation d’application » ?

Ce processus d’intégration du Kit de développement logiciel (SDK) tente de réduire la quantité de code spécifique à l’application que les développeurs doivent écrire. En effectuant correctement les étapes précédentes de l’intégration du SDK, votre application peut désormais appliquer la majorité des paramètres de stratégie de protection des applications, tels que le chiffrement des fichiers, les restrictions de copier/coller, le blocage des captures d’écran et les restrictions de transfert de données.

Toutefois, certains paramètres nécessitent que le code spécifique à l’application s’applique correctement ; ces fonctionnalités sont appelées fonctionnalités de participation d’application. En règle générale, le KIT de développement logiciel (SDK) n’a pas suffisamment de contexte sur le code de votre application ou le scénario de l’utilisateur final pour appliquer automatiquement ces paramètres, et s’appuie donc sur les développeurs pour appeler les API du KIT de développement logiciel (SDK) de manière appropriée.

Les fonctionnalités de participation aux applications ne sont pas nécessairement facultatives. Selon les fonctionnalités existantes de votre application, ces fonctionnalités peuvent être nécessaires.

Les étapes suivantes de ce guide décrivent plusieurs fonctionnalités importantes de participation aux applications :

Le reste de ce guide décrit l’ensemble restant des fonctionnalités de participation aux applications :

  • Implémenter des comptes autorisés
  • Implémenter le chiffrement de fichier requis
  • Implémenter des contrôles d’enregistrement et d’ouverture à partir de
  • Partager des données via UIActivityViewController
  • Activer la configuration ciblée (configuration d’application APP/GAM) pour vos applications iOS
  • Télémétrie
  • Intentions siri
  • Clips d’application
  • Impression
  • Notifications
  • Script post-build

Personnaliser le comportement de votre application avec des API

Le SDK d’application Intune comporte plusieurs API que vous pouvez appeler pour obtenir des informations sur la stratégie d’application Intune déployée sur l’application. Vous pouvez utiliser ces données pour personnaliser le comportement de votre application. Le tableau suivant fournit des informations sur certaines classes Intune essentielles que vous utilisez.

Classe Description
IntuneMAMPolicyManager.h La classe IntuneMAMPolicyManager expose la stratégie d’application Intune déployée sur l’application. Notamment, il expose des API qui sont utiles pour l’activation de plusieurs identités.
IntuneMAMPolicy.h La classe IntuneMAMPolicy expose certains paramètres de stratégie GAM qui s’appliquent à l’application. La plupart de ces paramètres de stratégie sont exposés afin que l’application puisse personnaliser son interface utilisateur. La plupart des paramètres de stratégie sont appliqués par le Kit de développement logiciel (SDK) et non par l’application. Il existe toutefois quelques exceptions. Les développeurs d’applications doivent examiner les commentaires de cet en-tête pour déterminer quelles API sont applicables aux scénarios de leur application.
IntuneMAMFileProtectionManager.h La classe IntuneMAMFileProtectionManager expose les API que l’application peut utiliser pour sécuriser explicitement des fichiers et des répertoires en fonction d’une identité fournie. L’identité peut être gérée par Intune ou non managée, et le Kit de développement logiciel (SDK) applique la stratégie GAM appropriée. L’utilisation de cette classe est facultative.
IntuneMAMDataProtectionManager.h La classe IntuneMAMDataProtectionManager expose les API que l’application peut utiliser pour sécuriser les mémoires tampons de données en fonction d’une identité fournie. L’identité peut être gérée par Intune ou non managée, et le Kit de développement logiciel (SDK) applique le chiffrement de manière appropriée.

Implémenter des comptes autorisés

Intune permet aux administrateurs informatiques de spécifier les comptes auxquels l’utilisateur peut se connecter. Les applications peuvent interroger le SDK d’application Intune pour obtenir la liste spécifiée des comptes autorisés, puis s’assurer que seuls les comptes autorisés sont connectés à l’appareil.

Pour rechercher les comptes autorisés, l’application doit vérifier la allowedAccounts propriété sur le IntuneMAMEnrollmentManager. La allowedAccounts propriété est soit un tableau contenant les comptes autorisés, soit nil. Si la propriété est nulle, aucun compte autorisé n’a été spécifié. Les applications compatibles MSAL/OneAuth doivent utiliser la allowedAccountIds propriété sur l’instance pour interroger l’ID IntuneMAMEnrollmentManager d’objet Entra.

Les applications peuvent également réagir aux modifications de la allowedAccounts propriété en observant la IntuneMAMAllowedAccountsDidChangeNotification notification. La notification est publiée chaque fois que la valeur de la allowedAccounts propriété change.

Les exigences suivantes sont nécessaires lors de l’utilisation d’API pour les comptes autorisés :

  • La comparaison d’identité ne doit pas respecter la casse pour UPN et OID.
  • La comparaison d’identités doit prendre en charge upn et OID.
  • L’application doit disposer d’une journalisation pour diagnostiquer toute incompatibilité entre le compte spécifié par l’administrateur et le compte entré par l’utilisateur.

Implémenter le chiffrement de fichier requis

L’API isFileEncryptionRequired définie dans IntuneMAMPolicy.h informe les applications quand l’administrateur informatique exige que les applications utilisent le chiffrement Intune sur tous les fichiers enregistrés sur le disque. Si isFileEncryptionRequired a la valeur true, il incombe à l’application de s’assurer que tous les fichiers enregistrés sur le disque par l’application sont chiffrés à l’aide des API dans IntuneMAMFile.h, IntuneMAMFileProtectionManager.het IntuneMAMFDataProtectionManager.h.

Les applications peuvent réagir aux modifications de cette stratégie en observant la IntuneMAMDataProtectionDidChangeNotification notification définie dans IntuneMAMFDataProtectionManager.h.

Implémenter des contrôles d’enregistrement et d’ouverture à partir de

Intune permet aux administrateurs informatiques de sélectionner les emplacements de stockage dans lesquels une application managée peut enregistrer des données ou ouvrir des données. Les applications peuvent interroger le Kit de développement logiciel (SDK) Gam Intune pour connaître les emplacements de stockage d’enregistrement autorisés à l’aide de l’API isSaveToAllowedForLocation:withAccountId: , définie dans IntuneMAMPolicy.h. Les applications peuvent également interroger le Kit de développement logiciel (SDK) pour connaître les emplacements de stockage ouverts autorisés à l’aide de l’API isOpenFromAllowedForLocation:withAccountId: , également définie dans IntuneMAMPolicy.h.

En outre, les applications peuvent vérifier que les données entrantes d’une extension de partage sont autorisées en interrogeant l’API canReceiveSharedItemProvider: , définie dans IntuneMAMPolicy.h. Les applications peuvent également interroger l’API canReceiveSharedFile: pour vérifier les fichiers entrants à partir d’un appel openURL, également défini dans IntuneMAMPolicy.h

Remarque

Des modifications ont été apportées au comportement interne à partir du SDK MAM v15.1.0.

  • Un nil compte n’est plus traité comme le compte actuel pour les emplacements LocalDrive/LocalStorage. Le passage d’un nil compte le fera traiter comme un compte non managé. Étant donné que les applications peuvent contrôler la façon dont elles gèrent leur stockage bac à sable, une identité peut et doit être associée à ces emplacements.
  • Un nil compte ne sera plus traité comme le compte actuel pour les applications à identité unique. Le passage d’un nil compte dans une application à identité unique est désormais traité exactement comme s’il avait été passé dans une application multi-identité. Si vous développez une application à identité unique, utilisez le IntuneMAMPolicyprimaryUser pour faire référence au compte actuel s’il est géré et nil pour faire référence au compte actuel s’il n’est pas géré.

Gestion des scénarios d’enregistrement dans

Avant de déplacer des données vers un nouvel emplacement de stockage cloud ou local, une application doit vérifier auprès de l’API isSaveToAllowedForLocation:withAccountId: si l’administrateur informatique a autorisé le transfert de données. Cette méthode est appelée sur un IntuneMAMPolicy objet . Les données en cours de modification et d’enregistrement sur place n’ont pas besoin d’être vérifiées avec cette API.

Remarque

L’objet IntuneMAMPolicy doit représenter les stratégies du propriétaire des données enregistrées. Pour obtenir l’objet IntuneMAMPolicy d’une identité spécifique, appelez IntuneMAMPolicyManagerla méthode de policyForAccountId: . Si le propriétaire est un compte non managé sans identité, nil peut être passé dans policyForAccountId:. Même si les données enregistrées ne sont pas des données d’organisation, isSaveToAllowedForLocation:withAccountId: doivent quand même être appelées. Le compte propriétaire de l’emplacement de destination peut toujours avoir des stratégies limitant les données non managées entrantes.

La isSaveToAllowedForLocation:withAccountId: méthode prend deux arguments. Le premier argument est une valeur enum du type IntuneMAMSaveLocation défini dans IntuneMAMPolicy.h. Le deuxième argument est l’UPN de l’identité propriétaire de l’emplacement. Si le propriétaire n’est pas connu, nil peut être utilisé à la place.

Emplacements d’enregistrement pris en charge

Le Kit de développement logiciel (SDK) Gam Intune prend en charge les emplacements d’enregistrement suivants définis dans IntuneMAMPolicy.h:

  • IntuneMAMSaveLocationOneDriveForBusiness - Cet emplacement représente les emplacements OneDrive Entreprise. L’identité associée au compte OneDrive doit être passée en tant que deuxième argument.
  • IntuneMAMSaveLocationSharePoint - Cet emplacement représente à la fois SharePoint Online et Microsoft Entra Hybrid Modern Auth SharePoint emplacements locaux. L’identité associée au compte SharePoint doit être passée en tant que deuxième argument.
  • IntuneMAMSaveLocationLocalDrive - Cet emplacement représente le stockage de bac à sable d’application accessible uniquement par l’application. Cet emplacement ne doit pas être utilisé pour l’enregistrement via un sélecteur de fichiers ou pour l’enregistrement dans des fichiers via une extension de partage. Si une identité peut être associée au stockage app-sandbox, elle doit être passée en tant que deuxième argument. S’il n’y a pas d’identité, nil doit être passé à la place. Par exemple, une application peut utiliser des conteneurs de stockage d’application-bac à sable distincts pour différents comptes. Dans ce cas, le compte propriétaire du conteneur accessible doit être utilisé comme deuxième argument.
  • IntuneMAMSaveLocationCameraRoll - Cet emplacement représente la photothèque iOS. Étant donné qu’aucun compte n’est associé à la photothèque iOS, seul nil doit être passé comme deuxième argument lorsque cet emplacement est utilisé.
  • IntuneMAMSaveLocationAccountDocument - Cet emplacement représente tout emplacement d’organisation non répertorié précédemment qui peut être lié à un compte managé. Le compte d’organisation associé à l’emplacement doit être passé en tant que deuxième argument. Par exemple, le chargement d’une photo dans le service cloud métier d’une organisation lié au compte de l’organisation.
  • IntuneMAMSaveLocationOther - Cet emplacement représente tout emplacement non organisé, non répertorié précédemment, ou tout emplacement inconnu. Si un compte est associé à l’emplacement, il doit être passé en tant que deuxième argument. Sinon, nil doit être utilisé à la place.
Considérations spéciales pour les emplacements d’enregistrement

L’emplacement IntuneMAMSaveLocationLocalDrive doit être utilisé uniquement pour le stockage de bac à sable d’application accessible uniquement par l’application. Pour vérifier si un fichier peut être enregistré dans le stockage de l’appareil iOS par le biais d’un sélecteur de fichiers ou d’une autre méthode où les données seront accessibles dans l’application Fichiers, IntuneMAMSaveLocationOther vous devez utiliser.

Si l’emplacement de destination n’est pas répertorié, IntuneMAMSaveLocationAccountDocument ou IntuneMAMSaveLocationOther doit être utilisé. Si l’emplacement contient des données d’organisation accessibles à l’aide du compte managé (par exemple, Le service cloud métier pour le stockage des données IntuneMAMSaveLocationAccountDocument organisationnelles) doit être utilisé. Si l’emplacement ne contient pas de données organisationnelles, l’emplacement IntuneMAMSaveLocationOther doit être utilisé.

Gestion des scénarios d’ouverture à partir de

Avant d’importer des données à partir d’un nouvel emplacement de stockage cloud ou local, une application doit vérifier auprès de l’API isOpenFromAllowedForLocation:withAccountId: si l’administrateur informatique a autorisé le transfert de données. Cette méthode est appelée sur un IntuneMAMPolicy objet . Les données en cours d’ouverture sur place n’ont pas besoin d’être vérifiées avec cette API.

Remarque

L’objet IntuneMAMPolicy doit représenter les stratégies de l’identité qui reçoit les données. Pour obtenir l’objet IntuneMAMPolicy d’une identité spécifique, appelez IntuneMAMPolicyManagerla méthode de policyForAccountId: . Si le compte de réception est un compte non managé sans identité, nil peut être passé dans policyForAccountId:. Même si les données reçues ne sont pas des données organisationnelles, isOpenFromAllowedForLocation:withAccountId: elles doivent quand même être appelées. Le compte propriétaire des données peut toujours avoir des stratégies limitant les destinations des transferts de données sortants.

La isOpenFromAllowedForLocation:withAccountId: méthode prend deux arguments. Le premier argument est une valeur enum du type IntuneMAMOpenLocation défini dans IntuneMAMPolicy.h. Le deuxième argument est l’UPN de l’identité propriétaire de l’emplacement. Si le propriétaire n’est pas connu, nil peut être utilisé à la place.

Emplacements ouverts pris en charge

Le Kit de développement logiciel (SDK) Gam Intune prend en charge les emplacements ouverts suivants définis dans IntuneMAMPolicy.h:

  • IntuneMAMOpenLocationOneDriveForBusiness - Cet emplacement représente les emplacements OneDrive Entreprise. L’identité associée au compte OneDrive doit être passée en tant que deuxième argument.
  • IntuneMAMOpenLocationSharePoint - Cet emplacement représente à la fois SharePoint Online et Microsoft Entra Hybrid Modern Auth SharePoint emplacements locaux. L’identité associée au compte SharePoint doit être passée en tant que deuxième argument.
  • IntuneMAMOpenLocationCamera - Cet emplacement représente uniquement les nouvelles images prises par l’appareil photo. Étant donné qu’aucun compte n’est associé à l’appareil photo iOS, seul nil doit être passé comme deuxième argument lorsque cet emplacement est utilisé. Pour ouvrir des données à partir de la photothèque iOS, utilisez IntuneMAMOpenLocationPhotos.
  • IntuneMAMOpenLocationPhotos - Cet emplacement représente uniquement les images existantes dans la photothèque iOS. Étant donné qu’aucun compte n’est associé à la photothèque iOS, seul nil doit être passé comme deuxième argument lorsque cet emplacement est utilisé. Pour ouvrir des images prises directement à partir de l’appareil photo iOS, utilisez IntuneMAMOpenLocationCamera.
  • IntuneMAMOpenLocationLocalStorage - Cet emplacement représente le stockage de bac à sable d’application accessible uniquement par l’application. Cet emplacement ne doit pas être utilisé pour ouvrir des fichiers à partir d’un sélecteur de fichiers ou gérer les fichiers entrants à partir d’un openURL. Si une identité peut être associée au stockage app-sandbox, elle doit être passée en tant que deuxième argument. S’il n’y a pas d’identité, nil doit être passé à la place. Par exemple, une application peut utiliser des conteneurs de stockage d’application-bac à sable distincts pour différents comptes. Dans ce cas, le compte propriétaire du conteneur accessible doit être utilisé comme deuxième argument.
  • IntuneMAMOpenLocationAccountDocument - Cet emplacement représente tout emplacement d’organisation non répertorié précédemment qui peut être lié à un compte managé. Le compte d’organisation associé à l’emplacement doit être passé en tant que deuxième argument. Par exemple, le téléchargement d’une photo à partir du service cloud métier d’une organisation lié au compte de l’organisation.
  • IntuneMAMOpenLocationOther - Cet emplacement représente tout emplacement non organisé, non répertorié précédemment, ou tout emplacement inconnu. Si un compte est associé à l’emplacement, il doit être passé en tant que deuxième argument. Sinon, nil doit être utilisé à la place.
Considérations spéciales pour les emplacements ouverts

L’emplacement IntuneMAMOpenLocationLocalStorage doit être utilisé uniquement pour le stockage de bac à sable d’application accessible par l’application. Pour vérifier si un fichier peut être ouvert à partir du stockage d’appareil iOS via un sélecteur de fichiers ou une autre méthode où les données sont également accessibles dans l’application Fichiers, IntuneMAMOpenLocationOther vous devez utiliser.

Si l’emplacement de destination n’est pas répertorié, IntuneMAMOpenLocationAccountDocument ou IntuneMAMOpenLocationOther doit être utilisé. Si l’emplacement contient des données organisationnelles accessibles à l’aide du compte managé. Par exemple, le service cloud métier pour le stockage des données IntuneMAMOpenLocationAccountDocument organisationnelles doit être utilisé. Si l’emplacement ne contient pas de données organisationnelles, l’emplacement IntuneMAMSaveLocationOther doit être utilisé.

Gestion des fichiers et des fichiers NSItemProviders entrants

Pour gérer les NSItemProviders reçus à partir d’une extension de partage, la IntuneMAMPolicyméthode de canReceiveSharedItemProvider: peut être utilisée à la place de isOpenFromAllowedForLocation:withAccountId:. La canReceiveSharedItemProvider: méthode prend un NSItemProvider et retourne si elle est autorisée par l’administrateur informatique à être ouverte dans le compte de l’objet IntuneMAMPolicy . L’élément doit être chargé avant d’appeler cette méthode. Par exemple, en appelant loadItemForTypeIdentifier:options:completionHandler. Cette méthode peut également être appelée à partir du gestionnaire d’achèvement passé à l’appel de charge NSItemProvider.

Pour gérer les fichiers entrants, la IntuneMAMPolicyméthode de canReceiveSharedFile: peut être utilisée à la place de isOpenFromAllowedForLocation:withAccountId:. La canReceiveSharedFile: méthode prend un chemin NSString et retourne si elle est autorisée par l’administrateur informatique à être ouverte dans le compte de l’objet IntuneMAMPolicy .

Partage de l’alerte bloquée

Une fonction d’assistance de l’interface utilisateur peut être utilisée lorsque l’API isSaveToAllowedForLocation:withAccountId: ou isOpenFromAllowedForLocation:withAccountId: est appelée et trouvée pour bloquer l’action enregistrer/ouvrir. Si l’application souhaite informer l’utilisateur que l’action a été bloquée, elle peut appeler l’API showSharingBlockedMessage définie dans IntuneMAMUIHelper.h pour présenter une vue d’alerte avec un message générique.

Partager des données via UIActivityViewController

À compter de la version 8.0.2, le SDK d’application Intune peut filtrer UIActivityViewController les actions afin que seuls les emplacements de partage gérés Intune soient disponibles. Ce comportement est contrôlé par la stratégie de transfert de données de l’application.

Actions « Copier vers »

Lors du partage de documents via et UIActivityViewControllerUIDocumentInteractionController, iOS affiche les actions « Copier vers » pour chaque application qui prend en charge l’ouverture du document partagé. Les applications déclarent les types de documents qu’elles prennent en charge via le CFBundleDocumentTypes paramètre dans leur fichier Info.plist. Ce type de partage ne sera plus disponible si la stratégie interdit le partage avec des applications non managées. En guise de remplacement, l’utilisateur doit ajouter une extension d’action non-IU à son application et la lier au KIT de développement logiciel (SDK) d’application Intune. L’extension Action est simplement un stub. Le Kit de développement logiciel (SDK) implémente le comportement de partage de fichiers. Suivez les étapes ci-dessous :

  1. Votre application doit avoir au moins un schemeURL défini sous son Info.plist CFBundleURLTypes avec son -intunemam équivalent. Par exemple :

    <key>CFBundleURLSchemes</key>
     <array>
     	<string>launch-com.contoso.myapp</string>
     	<string>launch-com.contoso.myapp-intunemam</string>
     </array>
    
  2. Votre application et votre extension d’action doivent partager au moins un groupe d’applications, et le groupe d’applications doit être répertorié sous le AppGroupIdentifiers tableau sous les dictionnaires IntuneMAMSettings de l’application et de l’extension.

  3. Votre application et votre extension d’action doivent avoir la fonctionnalité De partage de trousseau et partager le groupe de com.microsoft.intune.mam trousseaux.

  4. Nommez l’extension d’action « Ouvrir dans », puis le nom de l’application. Localisez info.plist en fonction des besoins.

  5. Fournissez une icône de modèle pour l’extension, comme décrit dans la documentation du développeur d’Apple. Vous pouvez également utiliser l’outil IntuneMAMConfigurator pour générer ces images à partir du répertoire .app de l’application. Pour ce faire, exécutez :

    IntuneMAMConfigurator -generateOpenInIcons /path/to/app.app -o /path/to/output/directory
    
  6. Sous IntuneMAMSettings dans le fichier Info.plist de l’extension, ajoutez un paramètre booléen nommé OpenInActionExtension avec la valeur OUI.

  7. Configurez le NSExtensionActivationRule pour prendre en charge un seul fichier et tous les types du de l’application CFBundleDocumentTypes avec com.microsoft.intune.mamle préfixe . Par exemple, si l’application prend en charge public.text et public.image, la règle d’activation est la suivante :

    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
    

Mettre à jour les extensions de partage et d’action existantes

Si votre application contient déjà des extensions Share ou Action, elles NSExtensionActivationRule devront être modifiées pour autoriser les types Intune. Pour chaque type pris en charge par l’extension, ajoutez un type supplémentaire avec com.microsoft.intune.mamle préfixe . Par exemple, si la règle d’activation existante est :

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

Elle doit être remplacée par :

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

Remarque

L’outil IntuneMAMConfigurator peut être utilisé pour ajouter les types Intune à la règle d’activation. Si votre règle d’activation existante utilise les constantes de chaîne prédéfinies. Par exemple, NSExtensionActivationSupportsFileWithMaxCount, NSExtensionActivationSupportsText, etc., la syntaxe du prédicat peut devenir assez complexe. L’outil IntuneMAMConfigurator peut également être utilisé pour convertir la règle d’activation des constantes de chaîne en chaîne de prédicat lors de l’ajout des types Intune.

À quoi doit ressembler l’interface utilisateur

Ancienne interface utilisateur :

Partage de données - Ancienne interface utilisateur de partage iOS

Nouvelle interface utilisateur :

Partage de données - Nouvelle interface utilisateur de partage iOS

Activer la configuration d’application ciblée pour vos applications iOS

La configuration ciblée gam (également connu sous le nom de configuration d’application GAM) permet à une application de recevoir des données de configuration via le KIT de développement logiciel (SDK) Intune. Le format et les variantes de ces données doivent être définis et communiqués aux clients Intune par le propriétaire/développeur de l’application.

Les administrateurs Intune peuvent cibler et déployer des données de configuration via le Centre d’administration Microsoft Intune et l’API Intune Graph. À compter de la version 7.0.1 du Kit de développement logiciel (SDK) d’application Intune pour iOS, les applications qui participent à une configuration ciblée GAM peuvent être fournies via le service GAM. Les données de configuration de l’application sont envoyées via notre service GAM directement à l’application au lieu du canal MDM. Le SDK d’application Intune fournit une classe pour accéder aux données récupérées à partir de ces consoles. Les éléments suivants sont des prérequis :

  • L’application doit être inscrite auprès du service GAM Intune avant d’accéder à l’interface utilisateur de configuration ciblée gam. Pour plus d’informations, consultez Recevoir une stratégie de protection des applications.

  • Incluez IntuneMAMAppConfigManager.h dans le fichier source de votre application.

  • Appelez [[IntuneMAMAppConfigManager instance] appConfigForAccountId:] pour obtenir l’objet de configuration de l’application.

  • Appelez le sélecteur approprié sur l’objet IntuneMAMAppConfig . Par exemple, si la clé de votre application est une chaîne, vous souhaitez utiliser stringValueForKey ou allStringsForKey. Consultez IntuneMAMAppConfig.h pour obtenir une description détaillée des valeurs de retour et des conditions d’erreur.

Pour plus d’informations sur les fonctionnalités de l’API Graph, consultez Informations de référence sur l’API Graph.

Pour plus d’informations sur la création d’une stratégie de configuration d’application ciblée gam dans iOS, consultez la section relative à la configuration des applications ciblées GAM dans Comment utiliser les stratégies de configuration d’application Microsoft Intune pour iOS/iPadOS.

Télémétrie

Par défaut, le SDK d’application Intune pour iOS collecte des données de télémétrie sur les types d’événements suivants :

  • Lancement de l’application : pour aider Microsoft Intune à en savoir plus sur l’utilisation des applications compatibles GAM par type de gestion (GAM avec MDM, GAM sans inscription MDM, etc.).

  • Appels d’inscription : pour aider Microsoft Intune à en savoir plus sur le taux de réussite et d’autres métriques de performances des appels d’inscription lancés du côté client.

  • Actions Intune : pour vous aider à diagnostiquer les problèmes et à garantir la fonctionnalité Intune, nous collectons des informations sur les actions du KIT de développement logiciel (SDK) Intune.

Remarque

Si vous choisissez de ne pas envoyer de données de télémétrie du SDK d’application Intune à Microsoft Intune à partir de votre application mobile, vous devez désactiver la capture de télémétrie du SDK d’application Intune. Définissez la propriété MAMTelemetryDisabled sur OUI dans le dictionnaire IntuneMAMSettings.

Intentions siri

Si votre application s’intègre à Siri Intents ou effectue des dons d’intention Siri, veillez à lire les commentaires pour areSiriIntentsAllowed dans pour obtenir des instructions sur la prise en IntuneMAMPolicy.h charge de ce scénario.

Remarque

Dans iOS 16 et versions ultérieures, une nouvelle infrastructure système d’intentions d’application est disponible pour créer des intentions d’application Swift. Les applications qui implémentent une intention d’application doivent d’abord vérifier la areSiriIntentsAllowed propriété sur l’objet IntuneMAMPolicy pour l’utilisateur.

Clips d’application

Si votre application inclut une cible de clip d’application, veillez à vérifier qu’aucune donnée gérée n’est présentée dans le clip d’application. Le clip de l’application doit être considéré comme un emplacement non géré. L’intégration du Kit de développement logiciel (SDK) aux clips d’application n’est pas prise en charge actuellement.

Impression

Si votre application implémente l’impression et fournit une action d’impression personnalisée dans un menu personnalisé, veillez à utiliser UIPrintInteractionController.isPrintingAvailable() pour déterminer si vous devez ajouter votre action d’impression à votre menu personnalisé.

Notifications

Si votre application reçoit des notifications, veillez à lire les commentaires pour notificationPolicy dans pour obtenir des instructions sur la prise en IntuneMAMPolicy.h charge de ce scénario. Il est recommandé que les applications s’inscrivent pour IntuneMAMPolicyDidChangeNotification décrites dans IntuneMAMPolicyManager.het communiquent cette valeur à leur UNNotificationServiceExtension via le trousseau.

Extensions web Safari

Si votre application a une extension web Safari et prend en charge l’envoi de données entre l’extension et l’application parente, dans certains scénarios, votre application peut avoir besoin de prendre en charge le blocage des données. Pour bloquer les données, dans l’application parente, appelez l’API isAppSharingAllowed dans IntuneMAMPolicy.h, puis bloquez l’extension web.

Script post-build

L’outil en ligne de commande IntuneMAMFrameworkPatcher ne doit plus être exécuté comme la dernière étape du processus de génération de l’application. Toutefois, cet outil est disponible dans le cadre du Kit de développement logiciel (SDK) d’application Intune pour iOS sur GitHub.

Importante

À compter de la version 17.7.1 du Kit de développement logiciel (SDK) Gam Intune, cette étape n’est plus nécessaire. L’outil en ligne de commande IntuneMAMFrameworkPatcher ne doit plus être exécuté.

Utilisation de la ligne de commande

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

Paramètres :

  • i, r, : vce paramètre vous permet de choisir d’installer, de supprimer ou de vérifier l’outil de mise à jour corrective de l’infrastructure GAM Intune pour le processus de génération de l’application.
  • path path: doit être la racine du répertoire .app de l’application.
  • resign: l’option resign indique à l’outil de retirer les fichiers binaires qui avaient une signature valide avant de mettre à jour le fichier binaire. Cette option doit être utilisée si le projet inclut des dépendances d’infrastructure ou des plug-ins avec l’option Incorporer et signer , même lorsqu’il est exécuté avant la signature finale de l’application, ou si l’outil est exécuté après la signature finale de l’application.
  • verbose: l’option verbose permet à l’outil de générer des informations sur chaque fichier binaire corrigé.

Autres utilisations :

  • Supprimez le correctif :

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

  • Vérifiez le correctif :

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

Exemple de script :

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

Pour plus d’informations sur la prise en main et le téléchargement du Kit de développement logiciel (SDK), consultez Prise en main du Kit de développement logiciel (SDK) d’application Microsoft Intune.

Critères de sortie

Validation de l’enregistrement dans /de l’ouverture à partir des restrictions

Ignorez si vous n’avez pas implémenté les contrôles save-as et open-from.

Refamiliez-vous avec chaque scénario où votre application peut enregistrer des données dans des stockages cloud ou des emplacements locaux et ouvrir des données à partir de stockages cloud ou d’emplacements locaux.

Par souci de simplicité, ces tests supposent que votre application inclut uniquement la prise en charge de l’enregistrement et de l’ouverture de données à partir de OneDrive Entreprise à partir d’un emplacement unique au sein de l’application. Toutefois, vous devez valider chaque combinaison : chaque emplacement d’enregistrement pris en charge par rapport à chaque emplacement que votre application permet d’enregistrer des données, et chaque emplacement ouvert pris en charge pour chaque emplacement où votre application autorise l’ouverture de données.

Pour ces tests, installez votre application, intégrez-la au SDK et connectez-vous avec un compte managé avant de commencer le test.

De plus :

  • Définissez la stratégie du compte managé comme suit :
    • « Envoyer des données d’organisation à d’autres applications » à « Applications gérées par une stratégie ».
    • « Recevoir des données d’autres applications » en « Applications gérées par une stratégie ».
Scénario Conditions préalables Étapes
Enregistrer dans, entièrement autorisé Stratégie « Enregistrer des copies des données de l’organisation » définie sur « Autoriser » - Accédez à l’emplacement où votre application peut enregistrer des données dans OneDrive Entreprise.
- Essayez d’enregistrer un document dans OneDrive Entreprise, dans le même compte géré connecté à votre application.
- Vérifiez que l’enregistrement est autorisé.
Enregistrer dans, exempté - Stratégie « Enregistrer les copies des données de l’organisation » définie sur « Bloquer »
- Stratégie « Autoriser l’utilisateur à enregistrer des copies dans les services sélectionnés » définie sur « OneDrive Entreprise » uniquement
- Accédez à l’emplacement où votre application peut enregistrer des données dans OneDrive Entreprise.
- Essayez d’enregistrer un document dans OneDrive Entreprise, dans le même compte géré connecté à votre application.
- Vérifiez que l’enregistrement est autorisé.
- Si votre application le permet, essayez d’enregistrer le fichier dans un autre emplacement de stockage cloud et vérifiez qu’il est bloqué.
Enregistrer dans, bloqué Stratégie « Enregistrer les copies des données de l’organisation » définie sur « Bloquer » - Accédez à l’emplacement où votre application peut enregistrer des données dans OneDrive Entreprise.
- Essayez d’enregistrer un document dans OneDrive Entreprise, dans le même compte géré connecté à votre application.
- Vérifiez que l’enregistrement est bloqué.
- Si votre application le permet, essayez d’enregistrer le fichier dans un autre emplacement de stockage cloud et vérifiez qu’il est bloqué.
Ouvrir à partir de, entièrement autorisé Stratégie « Ouvrir les données dans les documents de l’organisation » définie sur « Autoriser » - Accédez à l’emplacement où votre application peut ouvrir des données à partir de OneDrive Entreprise.
- Essayez d’ouvrir un document à partir de OneDrive Entreprise, à partir du même compte managé connecté au stockage de votre application.
- Vérifiez que l’ouverture est autorisée.
Ouvert de, exempté - Stratégie « Ouvrir les données dans les documents de l’organisation » définie sur « Bloquer »
- Stratégie « Autoriser les utilisateurs à ouvrir des données à partir de services sélectionnés » définie sur « OneDrive Entreprise » uniquement
- Accédez à l’emplacement où votre application peut ouvrir des données à partir de OneDrive Entreprise.
- Essayez d’ouvrir un document à partir de OneDrive Entreprise, à partir du même compte managé connecté au stockage de votre application.
- Vérifiez que l’ouverture est autorisée.
- Si votre application le permet, essayez d’ouvrir un autre fichier à partir d’un autre emplacement de stockage cloud et vérifiez qu’il est bloqué.
Ouvrir à partir de, bloqué Stratégie « Ouvrir les données dans les documents de l’organisation » définie sur « Bloquer » - Accédez à l’emplacement où votre application peut ouvrir des données à partir de OneDrive Entreprise.
- Essayez d’ouvrir un document à partir de OneDrive Entreprise, à partir du même compte managé connecté au stockage de votre application.
- Vérifiez que l’ouverture est bloquée.
- Si votre application le permet, essayez d’ouvrir un autre fichier à partir d’un autre emplacement de stockage cloud et vérifiez qu’il est bloqué.

Validation des actions « Copier vers »

Ignorez si vous n’avez pas implémenté d’actions « Copier dans ».

Par souci de simplicité, ces tests supposent que votre application inclut uniquement la prise en charge de la copie de données vers des applications Microsoft Office telles que Microsoft Word, Excel, etc. Toutefois, vous devez valider chaque combinaison : chaque emplacement de copie vers pris en charge par rapport à chaque emplacement vers lequel votre application autorise la copie de données.

Pour ces tests, installez votre application, intégrez-la au SDK et connectez-vous avec un compte managé avant de commencer le test.

De plus :

  • Vous avez effectué toutes les étapes d’intégration des actions « Copier vers » avec une extension d’action pour Microsoft Word et générer et exécuter correctement l’application.
  • Définissez la stratégie du compte managé comme suit :
    • « Envoyer des données d’organisation à d’autres applications » à « Applications gérées par une stratégie ».
Scénario Conditions préalables Étapes
Sélectionner les applications à exempter, Aucune Stratégie « Envoyer des données d’organisation à d’autres applications » définie sur « Applications gérées par la stratégie » - Accédez à l’emplacement où votre application peut copier des données dans Microsoft Word et lancer l’option de partage pour ces données.
- Confirmez au lieu de voir « Copier dans Word » comme option, vous pouvez voir « Ouvrir dans Word ».
- Appuyez sur « Ouvrir dans Word » et vérifiez que le document a été copié et affiché correctement, étant donné que Word est également connecté avec le même compte géré.

Validation des actions d’impression

Ignorez si vous n’avez pas implémenté l’impression.

Pour ce test, installez votre application, intégrez-la au SDK et connectez-vous avec un compte managé avant de commencer le test.

De plus :

  • Vous avez terminé toutes les étapes d’intégration de l’impression et de la génération, puis exécutez correctement l’application.
  • Votre application implémente déjà des alertes/des éléments d’action pour gérer le cas lorsque l’impression n’est pas autorisée par l’administrateur informatique de l’application. Dans ce test, en supposant que votre application déclenchera une alerte aux utilisateurs finaux lorsque l’impression est bloquée.
Scénario Étapes
Impression de données d’organisation, Bloquer - Accédez à l’emplacement où votre application peut afficher les données et lancer l’option de partage pour ces données.
- Appuyez sur « Imprimer ».
- Vérifiez qu’une alerte de bloc s’affiche et que l’impression n’est pas autorisée.
Impression de données d’organisation, Autoriser - Accédez à l’emplacement où votre application peut afficher les données et lancer l’option de partage pour ces données.
- Appuyez sur « Imprimer ».
- Vérifiez que l’affichage « Imprimer » s’affiche et que vous pouvez sélectionner une imprimante et effectuer l’action correctement.

Validation de la réception des configurations d’application

Ignorez si vous n’avez pas activé la configuration d’application ciblée pour vos applications iOS.

Intune est chargé de fournir les valeurs de stratégie de configuration d’application à votre application. par la suite, votre application est chargée d’utiliser ces valeurs pour modifier le comportement ou l’interface utilisateur à l’intérieur de l’application. Des tests de bout en bout approfondis doivent couvrir les deux composants.

Pour vérifier qu’Intune fournit correctement la stratégie de configuration d’application :

  1. Configurez une stratégie de configuration d’application, qui est ciblée sur votre application et déployée sur votre compte de test.
  2. Connectez-vous à votre application avec votre compte de test.
  3. Parcourez votre application pour exercer chaque codepath qui appelle IntuneMAMAppConfigManager.appConfigForIdentity
    • La journalisation des résultats des appels à appConfigForIdentity est un moyen simple de valider les paramètres remis. Toutefois, étant donné que les administrateurs peuvent entrer des données pour les paramètres de configuration d’application, veillez à ne pas journaliser les données utilisateur privées.
  4. Consultez Valider la stratégie de configuration d’application appliquée.

Étant donné que les configurations d’application sont spécifiques à l’application, vous seul savez comment valider la façon dont votre application doit changer le comportement ou l’interface utilisateur pour chaque paramètre de configuration d’application.

Lors du test, tenez compte des éléments suivants :

  • S’assurer que tous les scénarios sont couverts en créant une stratégie de configuration d’application de test différente avec chaque valeur prise en charge par votre application.
  • Validation de la logique de résolution des conflits de votre application en créant plusieurs stratégies de configuration d’application de test avec des valeurs différentes pour chaque paramètre.

Étapes suivantes

Si vous avez suivi ce guide dans l’ordre et que vous avez rempli tous les critères de sortie ci-dessus, félicitations, votre application est désormais entièrement intégrée au SDK d’application Intune et peut appliquer des stratégies de protection des applications ! Pour les intégrer à votre application, consultez d’autres fonctionnalités importantes de participation aux applications telles que l’Étape 5 : Multi-Identités, l’Étape 6 : Prise en charge de l’accès conditionnelProtection des applications et l’Étape 7 : Fonctionnalités d’affichage web .

La protection des applications est désormais un scénario de base pour votre application. Continuez à vous référer à ce guide et à l’annexe lorsque vous continuez à développer votre application.