SDK de la aplicación de Intune para iOS: características de participación de la aplicación

El SDK de aplicaciones de Microsoft Intune para iOS le permite incorporar directivas de protección de aplicaciones de Intune (también conocidas como directivas APP o MAM) en su aplicación iOS nativa. Una aplicación administrada por Intune es aquella que está integrada con el SDK de la aplicación de Intune. Los administradores de Intune pueden implementar fácilmente directivas de protección de aplicaciones en la aplicación administrada por Intune cuando Intune administra activamente la aplicación.

Nota:

Esta guía se divide en varias etapas distintas. Comience por revisar Planear la integración.

Fase 4: Características de participación en la aplicación

Objetivos de la etapa

  • Obtenga información sobre las distintas características de participación de aplicaciones que ofrece el SDK de aplicaciones de Intune.
  • Integre las características de participación de la aplicación relevantes para su aplicación y sus usuarios.
  • Pruebe la integración de esas características.

¿Qué son las "Funciones de participación en aplicaciones"?

Este proceso de integración de SDK intenta minimizar la cantidad de código específico de la aplicación que los desarrolladores necesitan escribir. Al completar correctamente las etapas anteriores de la integración del SDK, la aplicación ahora puede aplicar la mayoría de la configuración de directiva de protección de aplicaciones, como el cifrado de archivos, las restricciones de copiar y pegar, el bloqueo de capturas de pantalla y las restricciones de transferencia de datos.

Sin embargo, hay algunas configuraciones que requieren que el código específico de la aplicación se aplique correctamente; Se denominan funciones de participación de aplicaciones. Normalmente, el SDK no tiene suficiente contexto sobre el código de la aplicación o el escenario del usuario final para aplicar automáticamente esta configuración y, por tanto, depende de que los desarrolladores llamen a las API del SDK correctamente.

Las características de participación en la aplicación no son necesariamente opcionales. En función de las características existentes de la aplicación, estas características pueden ser necesarias.

En las siguientes etapas de esta guía se describen varias características importantes de participación en las aplicaciones:

En el resto de esta guía se describe el conjunto restante de características de participación de la aplicación:

  • Implementar cuentas permitidas
  • Se requiere implementar el cifrado de archivos
  • Implementar los controles guardar como y abrir desde
  • Compartir datos mediante UIActivityViewController
  • Habilitación de la configuración de destino (configuración de aplicaciones APP/MAM) para las aplicaciones iOS
  • Telemetría
  • Intenciones de Siri
  • Clips de aplicación
  • Impresión
  • Notificaciones
  • Script posterior a la compilación

Personalice el comportamiento de la aplicación con API

El SDK de aplicaciones de Intune tiene varias API a las que puede llamar para obtener información sobre las directivas de protección de aplicaciones de Intune implementadas en la aplicación. Puede usar estos datos para personalizar el comportamiento de la aplicación. En la tabla siguiente se proporciona información sobre algunas clases de Intune esenciales que usa.

Clase Descripción
IntuneMAMPolicyManager.h La clase IntuneMAMPolicyManager expone las directivas de protección de aplicaciones de Intune implementadas en la aplicación. En particular, expone las API que son útiles para habilitar la identidad múltiple.
IntuneMAMPolicy.h La clase IntuneMAMPolicy expone algunas configuraciones de directivas MAM que se aplican a la aplicación. La mayoría de estas configuraciones de directiva se exponen para que la aplicación pueda personalizar su interfaz de usuario. La mayoría de las configuraciones de directiva las aplica el SDK y no la aplicación. Sin embargo, existen excepciones. Los desarrolladores de aplicaciones deben revisar los comentarios de este encabezado para determinar qué API son aplicables a los escenarios de sus aplicaciones.
IntuneMAMFileProtectionManager.h La clase IntuneMAMFileProtectionManager expone las API que la aplicación puede usar para proteger explícitamente archivos y directorios en función de una identidad proporcionada. La identidad se puede administrar mediante Intune o no administrada, y el SDK aplicará la directiva de MAM adecuada. El uso de esta clase es opcional.
IntuneMAMDataProtectionManager.h La clase IntuneMAMDataProtectionManager expone las API que la aplicación puede usar para proteger búferes de datos dada una identidad proporcionada. La identidad se puede administrar mediante Intune o no administrada, y el SDK aplicará el cifrado correctamente.

Implementar cuentas permitidas

Intune permite a los administradores de TI especificar en qué cuentas puede iniciar sesión el usuario. Las aplicaciones pueden consultar el SDK de aplicaciones de Intune para obtener la lista especificada de cuentas permitidas y, a continuación, asegurarse de que solo las cuentas permitidas inicien sesión en el dispositivo.

Para consultar las cuentas permitidas, la aplicación debe comprobar la allowedAccounts propiedad en el IntuneMAMEnrollmentManagerarchivo . La allowedAccounts propiedad es una matriz que contiene las cuentas permitidas o nulas. Si la propiedad es nula, no se han especificado cuentas permitidas. Las aplicaciones habilitadas para MSAL/OneAuth deben utilizar la propiedad en la instancia para consultar el allowedAccountIds identificador de IntuneMAMEnrollmentManager objeto Entra.

Las aplicaciones también pueden reaccionar a los cambios de la allowedAccounts propiedad observando la IntuneMAMAllowedAccountsDidChangeNotification notificación. La notificación se publica cada vez que cambia el valor de la allowedAccounts propiedad.

Se necesitan los siguientes requisitos al usar las API para las cuentas permitidas:

  • La comparación de identidades no debe distinguir mayúsculas de minúsculas para UPN y OID.
  • La comparación de identidades debe admitir UPN y OID.
  • La aplicación debe tener un registro para diagnosticar cualquier discrepancia entre la cuenta especificada por el administrador y la cuenta especificada por el usuario.

Se requiere implementar el cifrado de archivos

La isFileEncryptionRequired API definida en informa a IntuneMAMPolicy.h las aplicaciones cuando el administrador de TI requiere que las aplicaciones usen el cifrado de Intune en cualquier archivo guardado en disco. Si isFileEncryptionRequired es verdadero, es responsabilidad de la aplicación asegurarse de que todos los archivos guardados en disco por la aplicación se cifren mediante las API de IntuneMAMFile.h, IntuneMAMFileProtectionManager.h, y IntuneMAMFDataProtectionManager.h.

Las aplicaciones pueden reaccionar a los cambios de esta directiva observando la IntuneMAMDataProtectionDidChangeNotification notificación definida en IntuneMAMFDataProtectionManager.h.

Implementar los controles guardar como y abrir desde

Intune permite a los administradores de TI seleccionar las ubicaciones de almacenamiento en las que una aplicación administrada puede guardar o abrir datos. Las aplicaciones pueden consultar el SDK de MAM de Intune para las ubicaciones de almacenamiento de guardado permitidas mediante la isSaveToAllowedForLocation:withAccountId: API, definida en IntuneMAMPolicy.h. Las aplicaciones también pueden consultar al SDK las ubicaciones de almacenamiento abiertas permitidas mediante la isOpenFromAllowedForLocation:withAccountId: API, también definida en IntuneMAMPolicy.h.

Además, las aplicaciones pueden comprobar que se permiten los datos entrantes de una extensión de recurso compartido consultando la API, definida en IntuneMAMPolicy.h.canReceiveSharedItemProvider: Las aplicaciones también pueden consultar la API para comprobar los canReceiveSharedFile: archivos entrantes de una llamada openURL, que también se define en IntuneMAMPolicy.h

Nota:

Se han realizado cambios en el comportamiento interno a partir de la versión 15.1.0 del SDK de MAM.

  • Una nil cuenta ya no se tratará como la cuenta actual para las ubicaciones de LocalDrive/LocalStorage. Al pasar una nil cuenta, se tratará como una cuenta no administrada. Dado que las aplicaciones pueden controlar cómo administran su almacenamiento de espacio aislado, se puede y debe asociar una identidad a esas ubicaciones.
  • Una nil cuenta ya no se tratará como la cuenta actual para aplicaciones de identidad única. Pasar una nil cuenta en una aplicación de identidad única ahora se tratará exactamente igual que si se pasara a una aplicación de identidades múltiples. Si está desarrollando una aplicación de identidad única, use las IntuneMAMPolicy's primaryUser para hacer referencia a la cuenta actual si está administrada y nil para hacer referencia a la cuenta actual si no está administrada.

Control de escenarios de guardado

Antes de mover datos a una nueva ubicación local o de almacenamiento en la nube, una aplicación debe comprobar con la isSaveToAllowedForLocation:withAccountId: API para saber si el administrador de TI ha permitido la transferencia de datos. Este método se llama en un IntuneMAMPolicy objeto. No es necesario comprobar los datos que se editan y guardan localmente con esta API.

Nota:

El IntuneMAMPolicy objeto debe representar las directivas del propietario de los datos que se guardan. Para obtener el IntuneMAMPolicy objeto de una identidad específica, llame IntuneMAMPolicyManageral método 's policyForAccountId: . Si el propietario es una cuenta no administrada sin identidad, nil se puede pasar a policyForAccountId:. Incluso si los datos que se guardan no son datos de la organización, isSaveToAllowedForLocation:withAccountId: se debe llamar. La cuenta propietaria de la ubicación de destino podría seguir teniendo directivas que restrinjan los datos entrantes no administrados.

El isSaveToAllowedForLocation:withAccountId: método toma dos argumentos. El primer argumento es un valor enumerado del tipo IntuneMAMSaveLocation definido en IntuneMAMPolicy.h. El segundo argumento es el UPN de la identidad propietaria de la ubicación. Si no se conoce el propietario, nil se puede usar en su lugar.

Ubicaciones de almacenamiento admitidas

El SDK de MAM de Intune proporciona compatibilidad con las siguientes ubicaciones de almacenamiento definidas enIntuneMAMPolicy.h:

  • IntuneMAMSaveLocationOneDriveForBusiness- Esta ubicación representa ubicaciones de OneDrive para la Empresa. La identidad asociada a la cuenta de OneDrive debe pasarse como segundo argumento.
  • IntuneMAMSaveLocationSharePoint- Esta ubicación representa tanto las ubicaciones locales de SharePoint Online como de Microsoft Entra Hybrid Modern Auth. La identidad asociada a la cuenta de SharePoint se debe pasar como segundo argumento.
  • IntuneMAMSaveLocationLocalDrive - Esta ubicación representa el almacenamiento de espacio aislado de la aplicación al que solo puede acceder la aplicación. Esta ubicación no se debe usar para guardar a través de un selector de archivos ni para guardar en archivos a través de una extensión de recurso compartido. Si se puede asociar una identidad con el almacenamiento del espacio aislado de la aplicación, se debe pasar como segundo argumento. Si no hay identidad, debe pasarse nil en su lugar. Por ejemplo, una aplicación puede usar contenedores de almacenamiento de espacio aislado de aplicaciones independientes para cuentas diferentes. En este caso, la cuenta propietaria del contenedor al que se accede debe usarse como segundo argumento.
  • IntuneMAMSaveLocationCameraRoll - Esta ubicación representa la biblioteca de fotos de iOS. Dado que no hay ninguna cuenta asociada a la biblioteca de fotos de iOS, solo nil debe pasarse como segundo argumento cuando se usa esta ubicación.
  • IntuneMAMSaveLocationAccountDocument - Esta ubicación representa cualquier ubicación de la organización que no haya estado en la lista anterior y que se pueda vincular a una cuenta administrada. La cuenta de organización asociada con la ubicación se debe pasar como segundo argumento. Por ejemplo, cargar una foto en el servicio en la nube de LOB de una organización que está vinculado a la cuenta de la organización.
  • IntuneMAMSaveLocationOther - Esta ubicación representa cualquier ubicación no organizativa, no incluida previamente en la lista o cualquier ubicación desconocida. Si una cuenta está asociada a la ubicación, se debe pasar como segundo argumento. De lo contrario, nil debe usarse en su lugar.
Consideraciones especiales para guardar ubicaciones

La IntuneMAMSaveLocationLocalDrive ubicación solo debe usarse para el almacenamiento de espacio aislado de la aplicación al que solo puede acceder la aplicación. Para comprobar si un archivo se puede guardar en el almacenamiento de un dispositivo iOS a través de un selector de archivos o algún otro método en el que se pueda acceder a los datos en la aplicación Files. IntuneMAMSaveLocationOther

Si la ubicación de destino no aparece en la lista, se debe usar uno o IntuneMAMSaveLocationAccountDocumentIntuneMAMSaveLocationOther dos. Si la ubicación contiene datos de la organización a los que se accede mediante la cuenta administrada (es decir, servicio en la nube de LOB para almacenar datos de la organización). IntuneMAMSaveLocationAccountDocument Si la ubicación no contiene datos de la organización, se debe usar la IntuneMAMSaveLocationOther ubicación.

Control de escenarios de apertura

Antes de importar datos desde una nueva ubicación local o de almacenamiento en la nube, una aplicación debe comprobar con la isOpenFromAllowedForLocation:withAccountId: API para saber si el administrador de TI ha permitido la transferencia de datos. Este método se llama en un IntuneMAMPolicy objeto. No es necesario comprobar los datos que se abren localmente con esta API.

Nota:

El IntuneMAMPolicy objeto debe representar las políticas de la identidad que recibe los datos. Para obtener el IntuneMAMPolicy objeto de una identidad específica, llame IntuneMAMPolicyManageral método 's policyForAccountId: . Si la cuenta receptora es una cuenta no administrada sin identidad, nil se puede pasar a policyForAccountId:. Incluso si los datos que se reciben no son datos de la organización, isOpenFromAllowedForLocation:withAccountId: se debe llamar. La cuenta propietaria de los datos podría seguir teniendo directivas que restrinjan los destinos de las transferencias de datos salientes.

El isOpenFromAllowedForLocation:withAccountId: método toma dos argumentos. El primer argumento es un valor enumerado del tipo IntuneMAMOpenLocation definido en IntuneMAMPolicy.h. El segundo argumento es el UPN de la identidad propietaria de la ubicación. Si no se conoce el propietario, nil se puede usar en su lugar.

Ubicaciones abiertas admitidas

El SDK de MAM de Intune proporciona compatibilidad con las siguientes ubicaciones abiertas definidas enIntuneMAMPolicy.h:

  • IntuneMAMOpenLocationOneDriveForBusiness- Esta ubicación representa ubicaciones de OneDrive para la Empresa. La identidad asociada a la cuenta de OneDrive debe pasarse como segundo argumento.
  • IntuneMAMOpenLocationSharePoint- Esta ubicación representa tanto las ubicaciones locales de SharePoint Online como de Microsoft Entra Hybrid Modern Auth. La identidad asociada a la cuenta de SharePoint se debe pasar como segundo argumento.
  • IntuneMAMOpenLocationCamera - Esta ubicación solo representa nuevas imágenes tomadas por la cámara. Dado que no hay ninguna cuenta asociada con la cámara de iOS, solo nil debe pasarse como segundo argumento cuando se usa esta ubicación. Para abrir datos de la biblioteca de fotos de iOS, use IntuneMAMOpenLocationPhotos.
  • IntuneMAMOpenLocationPhotos - Esta ubicación solo representa imágenes existentes en la biblioteca de fotos de iOS. Dado que no hay ninguna cuenta asociada a la biblioteca de fotos de iOS, solo nil debe pasarse como segundo argumento cuando se usa esta ubicación. Para abrir imágenes tomadas directamente desde la cámara de iOS, use IntuneMAMOpenLocationCamera.
  • IntuneMAMOpenLocationLocalStorage - Esta ubicación representa el almacenamiento de espacio aislado de la aplicación al que solo puede acceder la aplicación. Esta ubicación no se debe usar para abrir archivos de un selector de archivos ni para administrar archivos entrantes de una openURL. Si se puede asociar una identidad con el almacenamiento del espacio aislado de la aplicación, se debe pasar como segundo argumento. Si no hay identidad, debe pasarse nil en su lugar. Por ejemplo, una aplicación puede usar contenedores de almacenamiento de espacio aislado de aplicaciones independientes para cuentas diferentes. En este caso, la cuenta propietaria del contenedor al que se accede debe usarse como segundo argumento.
  • IntuneMAMOpenLocationAccountDocument - Esta ubicación representa cualquier ubicación de la organización que no haya estado en la lista anterior y que se pueda vincular a una cuenta administrada. La cuenta de organización asociada con la ubicación se debe pasar como segundo argumento. Por ejemplo, descargar una foto del servicio en la nube de LOB de una organización que está vinculado a la cuenta de la organización.
  • IntuneMAMOpenLocationOther - Esta ubicación representa cualquier ubicación no organizativa, no incluida en la lista anterior o cualquier ubicación desconocida. Si una cuenta está asociada a la ubicación, se debe pasar como segundo argumento. De lo contrario, nil debe usarse en su lugar.
Consideraciones especiales para ubicaciones abiertas

La IntuneMAMOpenLocationLocalStorage ubicación solo debe usarse para el almacenamiento de espacio aislado de la aplicación al que pueda acceder la aplicación. Para comprobar si se puede abrir un archivo desde el almacenamiento de un dispositivo iOS a través de un selector de archivos o algún otro método en el que también se pueda acceder a los datos en la aplicación Files. IntuneMAMOpenLocationOther

Si la ubicación de destino no aparece en la lista, se debe usar uno o IntuneMAMOpenLocationAccountDocumentIntuneMAMOpenLocationOther dos. Si la ubicación contiene datos de la organización a los que se accede mediante la cuenta administrada. Por ejemplo, IntuneMAMOpenLocationAccountDocument debe utilizarse el servicio en la nube de LOB para almacenar datos de la organización. Si la ubicación no contiene datos de la organización, se debe usar la IntuneMAMSaveLocationOther ubicación.

Control de NSItemProviders y Files entrantes

Para controlar NSItemProviders recibidos de una extensión de recurso compartido, se puede usar el IntuneMAMPolicymétodo 's canReceiveSharedItemProvider: en lugar de isOpenFromAllowedForLocation:withAccountId:. El canReceiveSharedItemProvider: método toma un NSItemProvider y devuelve si el administrador de TI permite que se abra en la IntuneMAMPolicy cuenta del objeto. El elemento debe cargarse antes de llamar a este método. Por ejemplo, llamando a loadItemForTypeIdentifier:options:completionHandler. Este método también se puede llamar desde el controlador de finalización pasado a la llamada de carga de NSItemProvider.

Para controlar los archivos entrantes, se puede usar el IntuneMAMPolicymétodo 's canReceiveSharedFile: en lugar de isOpenFromAllowedForLocation:withAccountId:. El canReceiveSharedFile: método toma una ruta de acceso NSString y devuelve si el administrador de TI permite que se abra en la IntuneMAMPolicy cuenta del objeto.

Alerta de uso compartido bloqueado

Se puede usar una función auxiliar de interfaz de usuario cuando se llama a la isSaveToAllowedForLocation:withAccountId: API or isOpenFromAllowedForLocation:withAccountId: y se encuentra para bloquear la acción de guardar/abrir. Si la aplicación quiere notificar al usuario que la acción se ha bloqueado, puede llamar a la API definida en IntuneMAMUIHelper.h para presentar una vista de showSharingBlockedMessage alerta con un mensaje genérico.

Compartir datos mediante UIActivityViewController

A partir de la versión 8.0.2, el SDK de aplicaciones de Intune puede filtrar acciones para que solo se puedan seleccionar UIActivityViewController las ubicaciones de recursos compartidos administrados por Intune. Este comportamiento se controlará mediante la directiva de transferencia de datos de la aplicación.

Acciones de "copiar en"

Al compartir documentos a través del UIActivityViewController y UIDocumentInteractionController, iOS muestra acciones "Copiar en" para cada aplicación que admita abrir el documento que se comparte. Las aplicaciones declaran los tipos de documento que admiten mediante la configuración de CFBundleDocumentTypes su Info.plist. Este tipo de uso compartido ya no estará disponible si la directiva prohíbe el uso compartido con aplicaciones no administradas. Como reemplazo, el usuario tendrá que agregar una extensión de acción que no sea de interfaz de usuario a su aplicación y vincularla al SDK de la aplicación de Intune. La extensión Action es simplemente un esbozo. El SDK implementará el comportamiento de uso compartido de archivos. Siga los pasos siguientes:

  1. La aplicación debe tener al menos un schemeURL definido en su Info.plist CFBundleURLTypes junto con su -intunemam homólogo. Por ejemplo:

    <key>CFBundleURLSchemes</key>
    <array>
        <string>launch-com.contoso.myapp</string>
          <string>launch-com.contoso.myapp-intunemam</string>
    </array>
    
  2. Tanto la aplicación como la extensión de acción deben compartir al menos un grupo de aplicaciones, y el grupo de aplicaciones debe aparecer en la AppGroupIdentifiers matriz debajo de los diccionarios IntuneMAMSettings de la aplicación y de la extensión.

  3. Tanto la aplicación como la extensión de acción deben tener la funcionalidad Uso compartido de llaveros y compartir el grupo de com.microsoft.intune.mam llaves.

  4. Asigne a la extensión de acción el nombre "Abrir en" seguido del nombre de la aplicación. Localice Info.plist según sea necesario.

  5. Proporcione un icono de plantilla para la extensión tal como se describe en la documentación para desarrolladores de Apple. Como alternativa, la herramienta IntuneMAMConfigurator se puede usar para generar estas imágenes desde el directorio de .app de la aplicación. Para comprobarlo, ejecute el siguiente comando:

    IntuneMAMConfigurator -generateOpenInIcons /path/to/app.app -o /path/to/output/directory
    
  6. En IntuneMAMSettings, en Info.plist de la extensión, agregue una configuración booleana denominada OpenInActionExtension con el valor YES.

  7. Configure la NSExtensionActivationRule para admitir un único archivo y todos los CFBundleDocumentTypes tipos de la aplicación con el prefijo com.microsoft.intune.mam. Por ejemplo, si la aplicación admite public.text y public.image, la regla de activación sería:

    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
    

Actualizar las extensiones de acción y recurso compartido existentes

Si la aplicación ya contiene extensiones de Compartir o Acción, deberán NSExtensionActivationRule modificarse para permitir los tipos de Intune. Para cada tipo admitido por la extensión, agregue un tipo adicional con el prefijo com.microsoft.intune.mam. Por ejemplo, si la regla de activación existente es:

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

Debe cambiarse a:

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

Nota:

La herramienta IntuneMAMConfigurator se puede usar para agregar los tipos de Intune a la regla de activación. Si la regla de activación existente usa las constantes de cadena predefinidas. Por ejemplo, NSExtensionActivationSupportsFileWithMaxCount, NSExtensionActivationSupportsText, etc., la sintaxis del predicado puede ser bastante compleja. La herramienta IntuneMAMConfigurator también se puede usar para convertir la regla de activación de las constantes de cadena en una cadena de predicado mientras se agregan los tipos de Intune.

Aspecto que debe tener la interfaz de usuario

Interfaz de usuario anterior:

Uso compartido de datos: interfaz de usuario de uso compartido anterior de iOS

Nueva interfaz de usuario:

Uso compartido de datos: nueva interfaz de uso compartido de iOS

Habilitación de la configuración de aplicaciones de destino para las aplicaciones iOS

La configuración dirigida de MAM (también conocida como configuración de aplicaciones MAM) permite que una aplicación reciba datos de configuración a través del SDK de Intune. El propietario o desarrollador de la aplicación debe definir y comunicar el formato y las variantes de estos datos a los clientes de Intune.

Intune administradores pueden dirigirse e implementar datos de configuración a través del Centro de administración de Microsoft Intune y Intune Graph API. A partir de la versión 7.0.1 del SDK de aplicaciones de Intune para iOS, las aplicaciones que participan en la configuración dirigida de MAM pueden recibir datos de configuración de destino de MAM a través del servicio MAM. Los datos de configuración de la aplicación se envían a través de nuestro servicio MAM directamente a la aplicación en lugar de a través del canal MDM. El SDK de la aplicación de Intune proporciona una clase para acceder a los datos recuperados de estas consolas. Los siguientes elementos son requisitos previos:

  • La aplicación debe inscribirse en el servicio MAM de Intune antes de acceder a la interfaz de usuario de configuración de destino de MAM. Para obtener más información, consulte Recibir directiva de protección de aplicaciones.

  • Incluir IntuneMAMAppConfigManager.h en el archivo de origen de la aplicación.

  • Llamada [[IntuneMAMAppConfigManager instance] appConfigForAccountId:] para obtener el objeto de configuración de la aplicación.

  • Llamar al selector adecuado en IntuneMAMAppConfig el objeto. Por ejemplo, si la clave de la aplicación es una cadena, querrá usar stringValueForKey o allStringsForKey. Consulte IntuneMAMAppConfig.h para obtener una descripción detallada sobre los valores devueltos y las condiciones de error.

Para obtener más información sobre las funcionalidades de la API de Graph, consulte Referencia de la Graph API.

Para obtener más información acerca de cómo crear una directiva de configuración de aplicaciones de destino de MAM en iOS, consulte la sección sobre la configuración de aplicaciones de destino de MAM en Cómo usar las directivas de configuración de aplicaciones de Microsoft Intune para iOS/iPadOS.

Telemetría

De forma predeterminada, el SDK de la aplicación de Intune para iOS recopila la telemetría en los siguientes tipos de eventos:

  • Inicio de la aplicación: para ayudar a Microsoft Intune a obtener información sobre el uso de aplicaciones habilitadas para MAM por tipo de administración (MAM con MDM, MAM sin inscripción de MDM, etc.).

  • Llamadas de inscripción: para ayudar a Microsoft Intune a obtener información sobre la tasa de éxito y otras métricas de rendimiento de las llamadas de inscripción iniciadas desde el lado cliente.

  • Acciones de Intune: para ayudar a diagnosticar problemas y garantizar la funcionalidad de Intune, recopilamos información sobre las acciones del SDK de Intune.

Nota:

Si decide no enviar datos de telemetría del SDK de aplicaciones de Intune a Microsoft Intune desde la aplicación móvil, debe deshabilitar la captura de telemetría del SDK de aplicación de Intune. Establezca la propiedad MAMTelemetryDisabled en YES en el diccionario IntuneMAMSettings.

Intenciones de Siri

Si tu aplicación se integra con Siri Intents o realiza donaciones de Siri Intent, asegúrate de leer los comentarios para areSiriIntentsAllowed obtener IntuneMAMPolicy.h instrucciones sobre cómo admitir este escenario.

Nota:

En iOS 16 y versiones posteriores, está disponible un nuevo marco de sistema de App Intents para crear Swift App Intents. Las aplicaciones que implementan una intención de aplicación deben comprobar primero la areSiriIntentsAllowed propiedad del objeto IntuneMAMPolicy para el usuario.

Clips de aplicación

Si tu aplicación incluye un destino de clip de la aplicación, asegúrate de comprobar que no se presenten datos administrados en el clip de la aplicación. El clip de aplicación debe considerarse una ubicación no administrada. Actualmente no se admite la integración del SDK en App Clips.

Impresión

Si la aplicación implementa la impresión y proporciona una acción de impresión personalizada en un menú personalizado, asegúrese de usarla UIPrintInteractionController.isPrintingAvailable() para determinar si debe agregar la acción de impresión al menú personalizado.

Bloqueo de capturas de pantalla

Para las aplicaciones que se hayan actualizado a la versión 19.7.6 o posterior para Xcode 15 y v20.2.1 o posterior para Xcode 16 del SDK, se aplicará el bloqueo de captura de pantalla si ha configurado Send Org data to other apps un valor distinto de "Todas las aplicaciones". Puede configurar la configuración de la directiva de configuración de la aplicación "com.microsoft.intune.mam.screencapturecontrol = Disabled" si desea permitir la captura de pantalla para los dispositivos iOS.

Notificaciones

Si tu aplicación recibe notificaciones, asegúrate de leer los comentarios para notificationPolicy obtener IntuneMAMPolicy.h instrucciones sobre cómo admitir este escenario. Se recomienda que las aplicaciones se registren IntuneMAMPolicyDidChangeNotification para descrito en IntuneMAMPolicyManager.h, y comuniquen este valor a ellos UNNotificationServiceExtension a través del llavero.

Extensiones web de Safari

Si la aplicación tiene una extensión web de Safari y admite el envío de datos entre la extensión y la aplicación principal, en algunos escenarios es posible que la aplicación necesite admitir el bloqueo de datos. Para bloquear los datos, en la aplicación principal, llame a la isAppSharingAllowed API en y, a IntuneMAMPolicy.hcontinuación, bloquee la extensión web.

Script posterior a la compilación

La herramienta de línea de comandos IntuneMAMFrameworkPatcher ya no se debe ejecutar como último paso del proceso de compilación de la aplicación. Sin embargo, esta herramienta está disponible como parte del SDK de aplicaciones de Intune para iOS en GitHub.

Importante

A partir de la versión 17.7.1 del SDK de MAM de Intune, este paso ya no es necesario. La herramienta de línea de comandos IntuneMAMFrameworkPatcher ya no es necesario ejecutarse.

Uso de la línea de comandos

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

Parámetros:

  • i, r, v: Este parámetro le permite elegir instalar, quitar o comprobar el herramienta de revisión de marco MAM de Intune para el proceso de compilación de la aplicación.
  • path: debe path ser la raíz del directorio .app de la aplicación.
  • resign: La resign opción indica a la herramienta que renuncie a los binarios que tenían una firma válida antes de parchear el binario. Esta opción debe usarse si el proyecto incluye dependencias de marco o complementos con la opción Embed and Sign , incluso cuando se ejecuta antes de la firma final de la aplicación, o si la herramienta se ejecuta después de la firma final de la aplicación.
  • verbose: La verbose opción hará que la herramienta genere información sobre cada binario que fue parcheado.

Otros usos:

  • Quitar el parche:

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

  • Compruebe el parche:

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

Script de ejemplo:

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

Para obtener más información sobre cómo empezar y descargar el SDK, consulte Introducción al SDK de aplicación de Microsoft Intune.

Criterios de salida

Validar las restricciones Guardar en/Abrir desde

Omitir si no lo hizo Implementar los controles de guardar como y abrir desde.

Vuelva a familiarizarse con todos los escenarios en los que la aplicación puede guardar datos en almacenamientos en la nube o ubicaciones locales y abrir datos desde almacenamientos en la nube o ubicaciones locales.

Para simplificar, estas pruebas asumirán que su aplicación solo incluye compatibilidad para guardar y abrir datos de OneDrive para la Empresa desde una única ubicación dentro de la aplicación. Sin embargo, debes validar cada combinación: cada ubicación de almacenamiento admitida en todos los lugares donde la aplicación permite guardar datos y cada ubicación abierta admitida en cada lugar donde la aplicación permite abrir datos.

Para estas pruebas, instale la aplicación, integre la aplicación con el SDK e inicie sesión con una cuenta administrada antes de iniciar la prueba.

Además:

  • Establece la directiva de la cuenta administrada como:
    • "Enviar datos de la organización a otras aplicaciones" a "Aplicaciones administradas por directivas".
    • "Recibir datos de otras aplicaciones" a "Aplicaciones administradas por directivas".
Escenario Condiciones previas Pasos
Guardar en, totalmente permitido Directiva "Guardar copias de datos de la organización" establecida en "Permitir" - Navegue hasta donde la aplicación puede guardar datos en OneDrive para la Empresa.
- Intente guardar un documento en OneDrive para la Empresa, en la misma cuenta administrada que ha iniciado sesión en la aplicación.
- Confirme que se permite el guardado.
Guardar en, exento - Directiva "Guardar copias de datos de la organización" establecida en "Bloquear"
- Solo la directiva "Permitir que los usuarios guarden copias en los servicios seleccionados" establecida en "OneDrive para la Empresa"
- Navegue hasta donde la aplicación puede guardar datos en OneDrive para la Empresa.
- Intente guardar un documento en OneDrive para la Empresa, en la misma cuenta administrada que ha iniciado sesión en la aplicación.
- Confirme que se permite el guardado.
- Si tu aplicación lo permite, intenta guardar el archivo en una ubicación de almacenamiento en la nube diferente y confirma que está bloqueado.
Guardar en, bloqueado Directiva "Guardar copias de datos de la organización" establecida en "Bloquear" - Navegue hasta donde la aplicación puede guardar datos en OneDrive para la Empresa.
- Intente guardar un documento en OneDrive para la Empresa, en la misma cuenta administrada que ha iniciado sesión en la aplicación.
- Confirma que el guardado está bloqueado.
- Si tu aplicación lo permite, intenta guardar el archivo en una ubicación de almacenamiento en la nube diferente y confirma que está bloqueado.
Abrir desde, totalmente permitido Directiva "Abrir datos en documentos de la organización" establecida en "Permitir" - Vaya a donde la aplicación puede abrir datos desde OneDrive para la Empresa.
- Intente abrir un documento desde OneDrive para la Empresa, desde la misma cuenta administrada que ha iniciado sesión en el almacenamiento de la aplicación.
- Confirme que se permite la apertura.
Abierto desde, exento - Directiva "Abrir datos en documentos de la organización" establecida en "Bloquear"
- Directiva "Permitir a los usuarios abrir datos de servicios seleccionados" establecida en Solo "OneDrive para la Empresa"
- Vaya a donde la aplicación puede abrir datos desde OneDrive para la Empresa.
- Intente abrir un documento desde OneDrive para la Empresa, desde la misma cuenta administrada que ha iniciado sesión en el almacenamiento de la aplicación.
- Confirme que se permite la apertura.
- Si tu aplicación lo permite, intenta abrir otro archivo desde una ubicación de almacenamiento en la nube diferente y confirma que está bloqueado.
Abrir desde, bloqueado Directiva "Abrir datos en documentos de la organización" establecida en "Bloquear" - Vaya a donde la aplicación puede abrir datos desde OneDrive para la Empresa.
- Intente abrir un documento desde OneDrive para la Empresa, desde la misma cuenta administrada que ha iniciado sesión en el almacenamiento de la aplicación.
- Confirme que la apertura está bloqueada.
- Si tu aplicación lo permite, intenta abrir otro archivo desde una ubicación de almacenamiento en la nube diferente y confirma que está bloqueado.

Validación de acciones de "Copiar en"

Omitir si no implementó las acciones "Copiar en".

Para simplificar, estas pruebas asumirán que la aplicación solo incluye compatibilidad para copiar datos a aplicaciones de Microsoft Office como Microsoft Word, Excel, etc. Sin embargo, debe validar cada combinación: cada ubicación de copia admitida en cada lugar al que la aplicación permita copiar datos.

Para estas pruebas, instale la aplicación, integre la aplicación con el SDK e inicie sesión con una cuenta administrada antes de iniciar la prueba.

Además:

  • Completó todos los pasos de integración de las acciones "Copiar en" con una extensión de acción para Microsoft Word y compiló y ejecutó la aplicación correctamente.
  • Establece la directiva de la cuenta administrada como:
    • "Enviar datos de la organización a otras aplicaciones" a "Aplicaciones administradas por directivas".
Escenario Condiciones previas Pasos
Seleccionar aplicaciones para excluir, Ninguna Directiva "Enviar datos de la organización a otras aplicaciones" establecida en "Aplicaciones administradas por directivas" - Navegue hasta donde la aplicación puede copiar datos a Microsoft Word e inicie la opción de uso compartido para esos datos.
- Confirme que en lugar de ver "Copiar a Word" como opción, puede ver "Abrir en Word".
- Presione "Abrir en Word" y confirme que el documento se copia y se ve correctamente, dado que Word también ha iniciado sesión con la misma cuenta administrada.

Validación de acciones de impresión

Omita si no implementó la impresión.

Para esta prueba, instale la aplicación, insértela con el SDK e inicie sesión con una cuenta administrada antes de iniciar la prueba.

Además:

  • Completamos todos los pasos de integración de Impresión y compilación y ejecución de la aplicación correctamente.
  • La aplicación ya implementa alertas/elementos de acción para controlar el caso cuando no se permite la impresión desde el administrador de TI de la aplicación. En esta prueba, suponiendo que la aplicación enviará una alerta a los usuarios finales cuando se bloquee la impresión.
Escenario Pasos
Impresión de datos de la organización, bloques - Vaya a donde su aplicación puede ver los datos e inicie la opción de uso compartido para esos datos.
- Presione "Imprimir".
- Confirmar que aparece una alerta de bloqueo y que no se permite imprimir.
Impresión de datos de la organización, Permitir - Vaya a donde su aplicación puede ver los datos e inicie la opción de uso compartido para esos datos.
- Presione "Imprimir".
- Confirme que aparece la vista "Imprimir" y puede seleccionar una impresora y completar la acción con éxito.

Validación de las configuraciones de la aplicación de recepción

Omitir si no lo hizo Habilite la configuración de aplicaciones de destino para las aplicaciones iOS.

Intune es responsable de entregar los valores de la directiva de configuración de aplicaciones a la aplicación; después, la aplicación es responsable de usar esos valores para cambiar el comportamiento o la interfaz de usuario dentro de la aplicación. Las pruebas exhaustivas de extremo a extremo deben cubrir ambos componentes.

Para validar que Intune entrega correctamente la directiva de configuración de aplicaciones:

  1. Configure una directiva de configuración de aplicaciones, que esté destinada a su aplicación y se implemente en su cuenta de prueba.
  2. Inicie sesión en la aplicación con su cuenta de prueba.
  3. Navegue por la aplicación para ejercitar cada ruta de appConfigForIdentitycódigo que llama a IntuneMAMAppConfigManager.
    • Registrar los resultados de las llamadas es appConfigForIdentity una forma sencilla de validar qué configuración se entrega. Sin embargo, como los administradores pueden introducir cualquier dato para las opciones de configuración de la aplicación, tenga cuidado de no registrar ningún dato privado de usuario.
  4. Consulte Validación de la directiva de configuración de aplicaciones aplicada.

Dado que las configuraciones de aplicaciones son específicas de la aplicación, solo usted sabe cómo validar cómo debe cambiar el comportamiento o la interfaz de usuario de la aplicación para cada opción de configuración de la aplicación.

Al realizar pruebas, ten en cuenta lo siguiente:

  • Para asegurarse de que todos los escenarios están cubiertos, cree una directiva de configuración de la aplicación de prueba diferente con cada valor que admita la aplicación.
  • Validar la lógica de resolución de conflictos de la aplicación mediante la creación de varias directivas de configuración de aplicaciones de prueba con valores diferentes para cada configuración.

Pasos siguientes

Si ha seguido esta guía en orden y ha completado todos los criterios de salida anteriores, enhorabuena, la aplicación ahora está totalmente integrada con el SDK de aplicaciones de Intune y puede aplicar directivas de protección de aplicaciones. Consulte otras características importantes de participación en la aplicación, como la Fase 5: Multiidentidad, la Fase 6: Protección de la aplicación, la compatibilidad con el acceso condicional y la Fase 7: Características de vista web para integrarlas en la aplicación.

La protección de aplicaciones es ahora un escenario central para la aplicación. Siga consultando esta guía y el Apéndice a medida que continúe desarrollando su aplicación.