Kit de développement logiciel (SDK) d’application Intune pour iOS - Fonctionnalités de participation à l’application

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 Kit de développement logiciel (SDK) Intune App. Intune administrateurs peuvent facilement déployer des stratégies de protection des applications sur votre application gérée par Intune lorsque Intune gère activement l’application.

Remarque

Ce guide est divisé en plusieurs étapes distinctes. Commencez par passer en revue Planifiez l’intégration.

Étape 4 : Fonctionnalités de participation de l’application

Objectifs de la scène

  • Découvrez les différentes fonctionnalités de participation d’application proposées par le Kit de développement logiciel (SDK) d’application Intune.
  • Intégrez les fonctionnalités de participation de l’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 SDK tente de minimiser 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 Kit de développement logiciel (SDK), votre application peut désormais appliquer la majorité des paramètres de stratégie de protection des applications, tels que le chiffrement de fichier, 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 un code spécifique à l’application pour s’appliquer correctement ; Il s’agit de fonctionnalités de participation d’application. En règle générale, le 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. Par conséquent, les développeurs appellent les API du SDK de manière appropriée.

Les fonctionnalités de participation des applications ne sont pas nécessairement facultatives. En fonction des fonctionnalités existantes de votre application, ces fonctionnalités peuvent être nécessaires.

Les étapes suivantes de ce guide décriront plusieurs fonctionnalités importantes de participation des applications :

Le reste de ce guide décrit le reste des fonctionnalités de participation d’application :

  • Mettre en place les comptes autorisés
  • Implémenter le chiffrement des fichiers requis
  • Implémenter les contrôles d’enregistrement sous 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 de Siri
  • Extraits d’application
  • Impression
  • Notifications
  • Script de post-génération

Personnaliser le comportement de votre application avec les API

Le Kit de développement logiciel (SDK) de l’application Intune dispose de plusieurs API que vous pouvez appeler pour obtenir des informations sur les stratégies de protection de l’application Intune déployées 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 les stratégies de protection des applications Intune déployées sur l’application. Notamment, il expose les API qui sont utiles pour Activation de la multi-identité.
IntuneMAMPolicy.h La classe IntuneMAMPolicy expose certains paramètres de stratégie MAM 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 dans cet en-tête pour déterminer les API 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 gérée, et le SDK appliquera la stratégie MAM 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 avec une identité fournie. L’identité peut être gérée par Intune ou non gérée, et le SDK appliquera le chiffrement de manière appropriée.

Mettre en place les comptes autorisés

Intune permet aux administrateurs informatiques de spécifier les comptes auxquels l’utilisateur peut se connecter. Les applications peuvent interroger le Kit de développement logiciel (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 des comptes autorisés, l’application doit vérifier la allowedAccounts propriété sur la case activée .IntuneMAMEnrollmentManager La allowedAccounts propriété est soit un tableau contenant les comptes autorisés, soit nul. 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é de l’instance pour interroger l’ID IntuneMAMEnrollmentManager d’objet d’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 des API pour les comptes autorisés :

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

Implémenter le chiffrement des fichiers requis

L’API isFileEncryptionRequired définie dans IntuneMAMPolicy.h informe les applications lorsque l’administrateur informatique exige que les applications utilisent le chiffrement Intune sur tous les fichiers enregistrés sur le disque. Si isFileEncryptionRequired la valeur est 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 respectant la IntuneMAMDataProtectionDidChangeNotification notification définie dans IntuneMAMFDataProtectionManager.h.

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

Intune permet aux administrateurs informatiques de sélectionner les emplacements de stockage où une application gérée peut enregistrer ou ouvrir des données. Les applications peuvent interroger le SDK MAM Intune pour les emplacements de stockage d’enregistrement autorisés à l’aide de l’APIisSaveToAllowedForLocation:withAccountId:, définie dans IntuneMAMPolicy.h. Les applications peuvent également interroger le SDK pour 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, définie dans IntuneMAMPolicy.h.canReceiveSharedItemProvider: Les applications peuvent également interroger l’API pour vérifier les canReceiveSharedFile: 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 Kit de développement logiciel (SDK) MAM v15.1.0.

  • Un nil compte ne sera plus traité comme le compte courant pour les emplacements LocalDrive/LocalStorage. La transmission d’un nil compte sera traitée comme un compte non géré. Étant donné que les applications peuvent contrôler la façon dont elles gèrent leur stockage de bac à sable, une identité peut et doit être associée à ces emplacements.
  • Un nil compte ne sera plus traité comme le compte courant pour les applications à identité unique. La transmission d’un nil compte dans une application à identité unique sera désormais traitée exactement de la même manière que s’il était transmis à une application multi-identités. Si vous développez une application à identité unique, utilisez les IntuneMAMPolicypour primaryUser faire référence au compte courant s’il est géré et nil au compte courant s’il n’est pas géré.

Gestion des scénarios d’enregistrement

Avant de déplacer des données vers un nouveau stockage cloud ou un emplacement local, une application doit case activée avec l’API isSaveToAllowedForLocation:withAccountId: pour savoir si l’administrateur informatique a autorisé le transfert de données. Cette méthode est appelée sur un IntuneMAMPolicy objet. Les données modifiées et enregistrées 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 's policyForAccountId: . Si le propriétaire est un compte non géré sans identité, nil peuvent être transmises à policyForAccountId:. Même si les données enregistrées ne sont pas des données organisationnelles, isSaveToAllowedForLocation:withAccountId: elles doivent toujours être appelées. Le compte propriétaire de l’emplacement de destination peut encore avoir des stratégies restreignant les données entrantes non gérées.

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) MAM d’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 transmise en tant que deuxième argument.
  • IntuneMAMSaveLocationSharePoint- Cet emplacement représente à la fois SharePoint online et l’authentification moderne hybride Microsoft Entra SharePoint sur site. L’identité associée au compte SharePoint doit être transmise en tant que deuxième argument.
  • IntuneMAMSaveLocationLocalDrive - Cet emplacement représente le stockage de bac à sable de l’application auquel seule l’application peut accéder. Cet emplacement ne doit pas être utilisé pour enregistrer au moyen d’un sélecteur de fichiers ou pour enregistrer dans des fichiers au moyen d’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 de bac à sable d’application distincts pour différents comptes. Dans ce cas, le compte propriétaire du conteneur auquel vous accédez doit être utilisé comme deuxième argument.
  • IntuneMAMSaveLocationCameraRoll - Cet emplacement représente la photothèque iOS. Comme 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 géré. Le compte d’organisation associé à l’emplacement doit être passé en tant que deuxième argument. Par exemple, le chargement d’une photo vers le service cloud métier d’une organisation lié au compte de l’organisation.
  • IntuneMAMSaveLocationOther - Cet emplacement représente tout emplacement non organisationnel, non répertorié précédemment ou inconnu. Si un compte est associé à l’emplacement, il doit être transmis en tant que deuxième argument. Sinon, nil doit être utilisé à la place.
Considérations particulières relatives à l’enregistrement d’emplacements

L’emplacement IntuneMAMSaveLocationLocalDrive ne doit être utilisé que pour le stockage de bac à sable d’application auquel seule l’application peut accéder. Pour vérifier si un fichier peut être enregistré sur le stockage d’un appareil iOS via un sélecteur de fichiers ou une autre méthode permettant d’accéder aux données dans l’application Files, IntuneMAMSaveLocationOther il convient d’utiliser.

Si l’emplacement de destination n’est pas répertorié, l’un ou IntuneMAMSaveLocationOther l’autre IntuneMAMSaveLocationAccountDocument ou doit être utilisé. Si l’emplacement contient des données organisationnelles accessibles à l’aide du compte géré (p. ex. service cloud métier pour le stockage des données organisationnelles). IntuneMAMSaveLocationAccountDocument Si l’emplacement ne contient pas de données organisationnelles, alors l’emplacement IntuneMAMSaveLocationOther doit être utilisé.

Gestion des scénarios d’ouverture à partir de

Avant d’importer des données à partir d’un nouveau stockage cloud ou d’un emplacement local, une application doit case activée avec l’API isOpenFromAllowedForLocation:withAccountId: pour savoir si l’administrateur informatique a autorisé le transfert de données. Cette méthode est appelée sur un IntuneMAMPolicy objet. Les données ouvertes 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 's policyForAccountId: . Si le compte de réception est un compte non géré sans identité, nil peut être transmis à .policyForAccountId: Même si les données reçues ne sont pas des données organisationnelles, isOpenFromAllowedForLocation:withAccountId: elles doivent toujours être appelées. Le compte propriétaire des données peut encore avoir des stratégies restreignant 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) MAM d’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 transmise en tant que deuxième argument.
  • IntuneMAMOpenLocationSharePoint- Cet emplacement représente à la fois SharePoint online et l’authentification moderne hybride Microsoft Entra SharePoint sur site. L’identité associée au compte SharePoint doit être transmise en tant que deuxième argument.
  • IntuneMAMOpenLocationCamera - Cet emplacement représente uniquement les nouvelles images prises par l’appareil photo. Comme aucun compte n’est associé à la caméra 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 de la photothèque iOS. Comme 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 de l’application auquel seule l’application peut accéder. Cet emplacement ne doit pas être utilisé pour ouvrir des fichiers à partir d’un sélecteur de fichiers ou gérer des fichiers entrants à partir d’une 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 de bac à sable d’application distincts pour différents comptes. Dans ce cas, le compte propriétaire du conteneur auquel vous accédez 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 géré. Le compte d’organisation associé à l’emplacement doit être passé en tant que deuxième argument. Par exemple, 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 organisationnel, non répertorié précédemment ou tout emplacement inconnu. Si un compte est associé à l’emplacement, il doit être transmis en tant que deuxième argument. Sinon, nil doit être utilisé à la place.
Considérations particulières pour les emplacements ouverts

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

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

Gestion des NSItemProviders et des Files entrants

Pour gérer les NSItemProviders reçus d’une extension de partage, la IntuneMAMPolicyméthode 's canReceiveSharedItemProvider: peut être utilisée à la place de isOpenFromAllowedForLocation:withAccountId:. La canReceiveSharedItemProvider: méthode prend un NSItemProvider et retourne s’il est autorisé par l’administrateur informatique à être ouvert 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 de saisie semi-automatique transmis à l’appel de charge NSItemProvider.

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

Partage d’une 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 d’enregistrement/d’ouverture. Si l’application souhaite avertir 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 de l’application Intune peut filtrer UIActivityViewController les actions afin que seuls Intune emplacements de partage gérés puissent être sélectionnés. Ce comportement sera contrôlé par la stratégie de transfert de données d’application.

Actions « Copier vers »

Lors du partage de documents via le et UIDocumentInteractionController, UIActivityViewController 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 de leur Info.plist. Ce type de partage ne sera plus disponible si la stratégie interdit le partage avec des applications non gérées. En remplacement, l’utilisateur doit ajouter une extension d’action non-UI à son application et la lier au Kit de développement logiciel (SDK) d’application Intune. L’extension Action n’est qu’un talon. 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 une schemeURL définie sous son Info.plist CFBundleURLTypes avec son -intunemam homologue. Par exemple :

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

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

  4. Nommez l’extension d’action « Ouvrir dans » suivie du nom de l’application. Localisez le fichier Info.plist selon vos besoins.

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

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

  7. Configurez le pour prendre NSExtensionActivationRule en charge un seul fichier et tous les types de l’application CFBundleDocumentTypes préfixés par com.microsoft.intune.mam. Par exemple, si l’application prend en charge public.text et public.image, la règle d’activation serait 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 de partage ou d’action, celles-ci NSExtensionActivationRule doivent être modifiées pour autoriser les types de Intune. Pour chaque type pris en charge par l’extension, ajoutez un type supplémentaire préfixé par com.microsoft.intune.mam. 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 de prédicat peut être 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 tout en ajoutant les types de Intune.

À quoi devrait ressembler l’interface utilisateur

Ancienne interface utilisateur :

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

Nouvelle interface utilisateur :

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

Activer la configuration d’applications ciblées pour vos applications iOS

La configuration ciblée MAM (également appelée configuration d’application MAM) permet à une application de recevoir des données de configuration par le biais du 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.

Intune administrateurs peuvent cibler et déployer les données de configuration via le centre d’administration Microsoft Intune et Intune API Graph. À compter de la version 7.0.1 du Kit de développement logiciel (SDK) d’application Intune pour iOS, les applications qui participent à la configuration ciblée MAM peuvent recevoir des données de configuration ciblée MAM via le service GAM. Les données de configuration de l’application sont transmises par notre service GAM directement vers l’application plutôt que par le canal GPM. Le Kit de développement logiciel (SDK) de l’application Intune fournit une classe pour accéder aux données récupérées à partir de ces consoles. Les éléments suivants sont requis :

  • L’application doit être inscrite auprès du service MAM d’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 d’application.

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

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

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

Télémétrie

Par défaut, le Kit de développement logiciel (SDK) de l’application Intune pour iOS collecte les 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 GPM, GAM sans inscription GPM, et ainsi de suite).

  • 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 initiés côté client.

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

Remarque

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

Intentions de Siri

Si votre application est intégrée à Siri Intents ou effectue des dons Siri Intent, veillez à lire les commentaires pour areSiriIntentsAllowedIntuneMAMPolicy.h obtenir des instructions sur la prise en charge de ce scénario.

Remarque

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

Extraits d’application

Si votre application inclut une cible d’extrait d’application, veillez à vérifier qu’aucune donnée gérée n’est présentée dans le clip d’application. L’extrait d’application doit être considéré comme un emplacement non géré. L’intégration du SDK dans les 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 à l’utiliser UIPrintInteractionController.isPrintingAvailable() pour déterminer si vous devez ajouter votre action d’impression à votre menu personnalisé.

Blocage de la capture d’écran

Pour les applications qui ont été mises à jour vers la version 19.7.6 ou ultérieure pour Xcode 15 et la version 20.2.1 ou ultérieure pour Xcode 16 du Kit de développement logiciel (SDK), le blocage de capture d’écran est appliqué si vous avez configuré Send Org data to other apps une valeur autre que « Toutes les applications ». Vous pouvez configurer le paramètre de stratégie de configuration d’application « com.microsoft.intune.mam.screencapturecontrol = Disabled » si vous souhaitez autoriser la capture d’écran pour vos appareils iOS.

Notifications

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

Extensions web pour Safari

Si votre application dispose d’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 dans isAppSharingAllowedIntuneMAMPolicy.h, puis bloquez l’extension web.

Script de post-génération

L’outil en ligne de commande IntuneMAMFrameworkPatcher n’a plus besoin d’être exécuté en tant que dernière étape du processus de génération d’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) MAM Intune, cette étape n’est plus nécessaire. L’outil en ligne de commande IntuneMAMFrameworkPatcher n’a plus besoin d’être exécuté.

Utilisation de la ligne de commande

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

Paramètres :

  • i, r, v: Ce paramètre vous permet de choisir d’installer, de supprimer ou de vérifier le patcher de l’infrastructure MAM d’Intune pour le processus de génération d’application.
  • path: Doit path être la racine du répertoire .app de l’application.
  • resign: Cette resign option indique à l’outil de signer les fichiers binaires qui avaient une signature valide avant de corriger 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 Embed and Sign , 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 produire des informations sur chaque fichier binaire qui a été corrigé.

Autres utilisations :

  • Retirez le patch :

    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 des restrictions d’enregistrement dans / Ouvrir à partir de

Ignorer si vous ne l’avez pas fait Implémenter les contrôles d’enregistrement en tant que et d’ouverture à partir de.

Familiarisez-vous à nouveau avec tous les scénarios dans lesquels 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.

Pour simplifier, 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 où votre application autorise l’enregistrement des données, et chaque emplacement ouvert pris en charge par rapport à chaque emplacement où votre application autorise l’ouverture des données.

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

De plus :

  • Définissez la stratégie du compte géré 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 » sur « Applications gérées par une stratégie ».
Scénario Conditions préalables Étapes
Enregistrer sous, Entièrement autorisé Stratégie « Enregistrer une copie des données de l’organisation » réglée sur « Autoriser » - Accédez à l’emplacement où votre application peut enregistrer des données sur OneDrive Entreprise.
- Essayez d’enregistrer un document dans OneDrive Entreprise, sur le même compte géré connecté à votre application.
- Vérifiez que la sauvegarde est autorisée.
Enregistrer vers, exempté - La stratégie « Enregistrer des copies des données de l’organisation » est définie sur « Bloquer »
- Stratégie « Autoriser l’utilisateur à enregistrer des copies sur les services sélectionnés » définie sur « OneDrive Entreprise » uniquement
- Accédez à l’emplacement où votre application peut enregistrer des données sur OneDrive Entreprise.
- Essayez d’enregistrer un document dans OneDrive Entreprise, sur le même compte géré connecté à votre application.
- Vérifiez que la sauvegarde est autorisée.
- Si votre application le permet, essayez d’enregistrer le fichier dans un autre emplacement de stockage cloud et confirmez qu’il est bloqué.
Enregistrer sous, bloqué Stratégie « Enregistrer une copie des données de l’organisation » définie sur « Bloquer » - Accédez à l’emplacement où votre application peut enregistrer des données sur OneDrive Entreprise.
- Essayez d’enregistrer un document dans OneDrive Entreprise, sur le même compte géré connecté à votre application.
- Vérifiez que la sauvegarde est bloquée.
- Si votre application le permet, essayez d’enregistrer le fichier dans un autre emplacement de stockage cloud et confirmez qu’il est bloqué.
Ouvert depuis, entièrement autorisé Stratégie « Ouvrir des données dans des documents organisationnels » définie sur « Autoriser » - Accédez à l’endroit 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 géré connecté au stockage de votre application.
- Vérifiez que l’ouverture est autorisée.
Ouvert de, exempté - Stratégie « Ouvrir des données dans des documents organisationnels » 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’endroit 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 géré 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 confirmez qu’il est bloqué.
Ouvrir de, bloqué Stratégie « Ouvrir des données dans des documents organisationnels » définie sur « Bloquer » - Accédez à l’endroit 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 géré 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 confirmez qu’il est bloqué.

Validation des actions « Copier vers »

Ignorez si vous n’avez pas implémenté les actions « Copier vers ».

Pour des raisons pratiques, 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 pris en charge par rapport à chaque emplacement où votre application autorise la copie des données.

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

De plus :

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 une stratégie » - Accédez à l’endroit où votre application peut copier des données dans Microsoft Word et lancez l’option de partage de ces données.
- Confirmez qu’au lieu de voir l’option « Copier dans Word », vous pouvez voir « Ouvrir dans Word ».
- Appuyez sur « Ouvrir dans Word » et confirmez que le document est copié et visualisé avec succès, é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 géré avant de commencer le test.

De plus :

  • Nous avons effectué toutes les étapes d’intégration de l’impression à la création et à l’exécution de l’application avec succès.
  • Votre application implémente déjà des alertes/éléments d’action pour gérer le cas où l’impression n’est pas autorisée à partir de l’administrateur informatique de l’application. Dans ce test, supposons que votre application invite une alerte aux utilisateurs finaux lorsque l’impression est bloquée.
Scénario Étapes
Impression de données d’organisation, bloc - Accédez à l’endroit où votre application peut afficher les données et lancez l’option de partage de ces données.
- Appuyez sur « Imprimer ».
- Vérifiez qu’une alerte de blocage apparaît et que l’impression n’est pas autorisée.
Impression de données d’organisation, Autoriser - Accédez à l’endroit où votre application peut afficher les données et lancez l’option de partage de ces données.
- Appuyez sur « Imprimer ».
- Confirmez que la vue « Imprimer » apparaît et vous pouvez sélectionner une imprimante et terminer l’action avec succès.

Validation des configurations d’applications de réception

Ignorer si vous ne l’avez pas fait Activez la configuration d’applications ciblées pour vos applications iOS.

Intune est responsable de la fourniture des valeurs de stratégie de configuration d’application à votre application ; ensuite, votre application est responsable de l’utilisation de ces valeurs pour modifier le comportement ou l’interface utilisateur à l’intérieur de l’application. Des tests approfondis de bout en bout 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 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 chemin de code qui appelle IntuneMAMAppConfigManager's appConfigForIdentity.
    • L’enregistrement des résultats des appels à appConfigForIdentity est un moyen simple de valider les paramètres livrés. Toutefois, étant donné que les administrateurs peuvent entrer n’importe quelle donnée pour les paramètres de configuration des applications, veillez à ne pas enregistrer de 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 modifier le comportement ou l’interface utilisateur pour chaque paramètre de configuration d’application.

Lors du test, tenez compte des points suivants :

  • Vous assurer que tous les scénarios sont couverts en créant une stratégie de configuration d’application de test différente pour 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 maintenant entièrement intégrée au SDK d’application Intune et peut appliquer des stratégies de protection des applications ! Veuillez case activée d’autres fonctionnalités importantes de participation des applications, telles que l’étape 5 : multi-identités, l’étape 6 : prise en charge de l’accès conditionnel à la protection des applications et l’étape 7 : fonctionnalités d’affichage Web pour les intégrer à votre application.

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