Compartir a través de


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

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 de APLICACIÓN o MAM) en la aplicación iOS nativa. Una aplicación administrada por Intune es una que se integra con el SDK de aplicaciones 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 fases distintas. Para empezar, revise Planear la integración.

Fase 4: Características de participación de aplicaciones

Objetivos de fase

  • 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 aplicaciones relevantes para la aplicación y los usuarios.
  • Pruebe la integración de esas características.

¿Qué son las "características de participación de aplicaciones"?

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

Sin embargo, hay algunas configuraciones que requieren código específico de la aplicación para aplicarlo correctamente; estas se denominan características 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, se basa en que los desarrolladores llamen a las API del SDK correctamente.

Las características de participación de aplicaciones no son necesariamente opcionales. En función de las características existentes de la aplicación, es posible que estas características sean necesarias.

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

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

  • Implementar cuentas permitidas
  • Implementación del cifrado de archivos necesario
  • Implementación de controles guardar como y abrir desde
  • Uso compartido de datos a través de UIActivityViewController
  • Habilitación de la configuración de destino (configuración de aplicaciones app/MAM) para las aplicaciones de iOS
  • Telemetría
  • Intenciones de Siri
  • Clips de aplicación
  • Impresión
  • Notificaciones
  • Script posterior a la compilación

Personalización del comportamiento de la aplicación con las API

El SDK de aplicaciones de Intune tiene varias API a las que puede llamar para obtener información sobre la directiva de aplicación de Intune implementada 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 esenciales de Intune que se usan.

Clase Descripción
IntuneMAMPolicyManager.h La clase IntuneMAMPolicyManager expone la directiva de aplicación de Intune implementada en la aplicación. En particular, expone las API que son útiles para habilitar varias identidades.
IntuneMAMPolicy.h La clase IntuneMAMPolicy expone algunas opciones de configuración de directiva mam que se aplican a la aplicación. La mayoría de estas opciones de configuración de directiva se exponen para que la aplicación pueda personalizar su interfaz de usuario. La mayoría de la configuración de directiva la 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 su aplicación.
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 administrado, y el SDK aplicará la directiva 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 los búferes de datos dada una identidad proporcionada. La identidad se puede administrar mediante Intune o no administrado, y el SDK aplicará el cifrado correctamente.

Implementar cuentas permitidas

Intune permite a los administradores de TI especificar 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 IntuneMAMEnrollmentManager. La allowedAccounts propiedad es una matriz que contiene las cuentas permitidas o nil. Si la propiedad es nula, no se ha especificado ninguna cuenta permitida. Las aplicaciones habilitadas para MSAL/OneAuth deben usar la allowedAccountIds propiedad de la instancia para consultar el IntuneMAMEnrollmentManager identificador de 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 la allowedAccounts propiedad cambia de valor.

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

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

Implementación del cifrado de archivos necesario

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

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

Implementación de controles guardar como y abrir desde

Intune permite a los administradores de TI seleccionar las ubicaciones de almacenamiento desde 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 el SDK para las ubicaciones de almacenamiento abiertas permitidas mediante la isOpenFromAllowedForLocation:withAccountId: API, también definida en IntuneMAMPolicy.h.

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

Nota:

Se han realizado cambios en el comportamiento interno a partir del SDK de MAM v15.1.0.

  • Una nil cuenta ya no se tratará como la cuenta actual para las ubicaciones LocalDrive/LocalStorage. Si se pasa una nil cuenta, se tratará como una cuenta no administrada. Dado que las aplicaciones pueden controlar cómo controlan su almacenamiento de espacio aislado, una identidad puede y debe asociarse a esas ubicaciones.
  • Una nil cuenta ya no se tratará como la cuenta actual de las 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 varias identidades. Si está desarrollando una aplicación de identidad única, use las IntuneMAMPolicyprimaryUser para hacer referencia a la cuenta actual si se administra y nil para hacer referencia a la cuenta actual si no está administrada.

Control de escenarios de guardado en

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. Se llama a este método en un IntuneMAMPolicy objeto . No es necesario comprobar los datos que se editan y guardan en contexto 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 al IntuneMAMPolicyManagermétodo de .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 seguir llamando a . 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 de enumeración 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 guardado admitidas

El SDK de MAM de Intune proporciona compatibilidad con las siguientes ubicaciones de guardado definidas en IntuneMAMPolicy.h:

  • IntuneMAMSaveLocationOneDriveForBusiness - Esta ubicación representa las ubicaciones de OneDrive para la Empresa. La identidad asociada a la cuenta de OneDrive debe pasarse como segundo argumento.
  • IntuneMAMSaveLocationSharePoint - Esta ubicación representa las ubicaciones locales de SharePoint online y Microsoft Entra Hybrid Modern Auth SharePoint. La identidad asociada a la cuenta de SharePoint debe pasarse 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 una identidad se puede asociar al almacenamiento de espacio aislado de la aplicación, debe pasarse como segundo argumento. Si no hay ninguna identidad, nil se debe pasar en su lugar. Por ejemplo, una aplicación podría usar contenedores de almacenamiento de espacio aislado de aplicaciones independientes para diferentes cuentas. En este caso, la cuenta propietaria del contenedor al que se tiene acceso 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 se debe pasar como segundo argumento cuando se usa esta ubicación.
  • IntuneMAMSaveLocationAccountDocument - Esta ubicación representa cualquier ubicación de la organización no enumerada anteriormente que se pueda asociar a una cuenta administrada. La cuenta de la organización asociada a la ubicación debe pasarse como segundo argumento. Por ejemplo, cargar una foto en el servicio en la nube 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 enumerada anteriormente o cualquier ubicación desconocida. Si una cuenta está asociada a la ubicación, debe pasarse como segundo argumento. De lo contrario, nil se debe usar 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 dispositivos 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 Archivos, IntuneMAMSaveLocationOther debe usarse.

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

Control de escenarios abiertos desde

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

Nota:

El IntuneMAMPolicy objeto debe representar las directivas de la identidad que recibe los datos. Para obtener el IntuneMAMPolicy objeto de una identidad específica, llame al IntuneMAMPolicyManagermétodo de .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 seguir llamando a . 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 de enumeración 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 en IntuneMAMPolicy.h:

  • IntuneMAMOpenLocationOneDriveForBusiness - Esta ubicación representa las ubicaciones de OneDrive para la Empresa. La identidad asociada a la cuenta de OneDrive debe pasarse como segundo argumento.
  • IntuneMAMOpenLocationSharePoint - Esta ubicación representa las ubicaciones locales de SharePoint online y Microsoft Entra Hybrid Modern Auth SharePoint. La identidad asociada a la cuenta de SharePoint debe pasarse como segundo argumento.
  • IntuneMAMOpenLocationCamera - Esta ubicación solo representa nuevas imágenes tomadas por la cámara. Dado que no hay ninguna cuenta asociada a la cámara de iOS, solo nil se debe pasar 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 dentro de la biblioteca de fotos de iOS. Dado que no hay ninguna cuenta asociada a la biblioteca de fotos de iOS, solo nil se debe pasar 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 debe usarse para abrir archivos desde un selector de archivos ni controlar los archivos entrantes desde un openURL. Si una identidad se puede asociar al almacenamiento de espacio aislado de la aplicación, debe pasarse como segundo argumento. Si no hay ninguna identidad, nil se debe pasar en su lugar. Por ejemplo, una aplicación podría usar contenedores de almacenamiento de espacio aislado de aplicaciones independientes para diferentes cuentas. En este caso, la cuenta propietaria del contenedor al que se tiene acceso debe usarse como segundo argumento.
  • IntuneMAMOpenLocationAccountDocument - Esta ubicación representa cualquier ubicación de la organización no enumerada anteriormente que se pueda asociar a una cuenta administrada. La cuenta de la organización asociada a la ubicación debe pasarse como segundo argumento. Por ejemplo, descargar una foto del servicio en la nube 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 enumerada anteriormente o cualquier ubicación desconocida. Si una cuenta está asociada a la ubicación, debe pasarse como segundo argumento. De lo contrario, nil se debe usar en su lugar.
Consideraciones especiales para las ubicaciones abiertas

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

Si la ubicación de destino no aparece en la lista, se IntuneMAMOpenLocationAccountDocument debe usar o IntuneMAMOpenLocationOther . Si la ubicación contiene datos de la organización a los que se accede mediante la cuenta administrada. Por ejemplo, se debe usar el servicio en la nube LOB para almacenar datos IntuneMAMOpenLocationAccountDocument 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 archivos 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. También se puede llamar a este método desde el controlador de finalización pasado a la llamada de carga NSItemProvider.

Para controlar los archivos entrantes, se puede usar el IntuneMAMPolicymétodo del canReceiveSharedFile: objeto 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.

Uso compartido de alertas bloqueadas

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

Uso compartido de datos a través de UIActivityViewController

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

Acciones "Copiar en"

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

  1. La aplicación debe tener al menos un esquemaURL 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 en 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 De uso compartido de cadenas de claves y compartir el com.microsoft.intune.mam grupo de cadenas de claves.

  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, se puede usar la herramienta IntuneMAMConfigurator 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 SÍ.

  7. Configure para NSExtensionActivationRule admitir un único archivo y todos los tipos de la aplicación CFBundleDocumentTypes con com.microsoft.intune.mamel prefijo . 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
    

Actualización de extensiones de acciones y recursos compartidos existentes

Si la aplicación ya contiene extensiones De recurso compartido o Acción, NSExtensionActivationRule tendrá que modificarse para permitir los tipos de Intune. Para cada tipo admitido por la extensión, agregue un tipo adicional con com.microsoft.intune.mamel prefijo . 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, etcetera., 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 al agregar los tipos de Intune.

Qué aspecto debe tener la interfaz de usuario

Interfaz de usuario antigua:

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

Nueva interfaz de usuario:

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

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

La configuración de destino de MAM (también conocido como configuración de la aplicación 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 a los clientes de Intune el formato y las variantes de estos datos.

Los administradores de Intune pueden dirigirse e implementar datos de configuración a través del Centro de administración de Microsoft Intune y Graph API de Intune. 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 de destino mam pueden proporcionar datos de configuración de destino de MAM a través del servicio MAM. Los datos de configuración de la aplicación se insertan a través de nuestro servicio MAM directamente a la aplicación en lugar de a través del canal MDM. El SDK de aplicaciones 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 con 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 Recepción de directivas de protección de aplicaciones.

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

  • Llame [[IntuneMAMAppConfigManager instance] appConfigForAccountId:] a para obtener el objeto app config.

  • Llame al selector adecuado en el IntuneMAMAppConfig 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 Graph API, consulte Referencia de Graph API.

Para obtener más información sobre 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 la aplicación 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 aplicaciones de Intune para iOS recopila telemetría sobre 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 aplicaciones de Intune. Establezca la propiedad MAMTelemetryDisabled en SÍ en el diccionario IntuneMAMSettings.

Intenciones de Siri

Si la aplicación se integra con Intenciones de Siri o realiza donaciones de intenciones de Siri, asegúrese de leer los comentarios de areSiriIntentsAllowed en IntuneMAMPolicy.h para obtener instrucciones sobre cómo admitir este escenario.

Nota:

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

Clips de aplicación

Si la aplicación incluye un destino de clip de aplicación, asegúrese de comprobar que no se presenta ningún dato administrado en el clip de la aplicación. El clip de la 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 usar UIPrintInteractionController.isPrintingAvailable() para determinar si debe agregar la acción de impresión al menú personalizado.

Notificaciones

Si la aplicación recibe notificaciones, asegúrese de leer los comentarios de notificationPolicy en IntuneMAMPolicy.h para obtener instrucciones sobre cómo admitir este escenario. Se recomienda que las aplicaciones se registren para IntuneMAMPolicyDidChangeNotification lo descrito en IntuneMAMPolicyManager.hy comuniquen este valor a su UNNotificationServiceExtension a través de la cadena de claves.

Extensiones web de Safari

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

Script posterior a la compilación

La herramienta de línea de comandos IntuneMAMFrameworkPatcher ya no debe ejecutarse 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. Ya no se debe ejecutar la herramienta de línea de comandos IntuneMAMFrameworkPatcher .

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 patcher de Intune MAM Framework para el proceso de compilación de la aplicación.
  • path path: debe ser la raíz del directorio .app de la aplicación.
  • resign: la resign opción indica a la herramienta que resigne los archivos binarios que tenían una firma válida antes de aplicar revisiones al binario. Esta opción se debe usar si el proyecto incluye dependencias o complementos del marco con la opción Insertar y firmar , 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 se ha revisado.

Otros usos:

  • Quite la revisión:

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

  • Compruebe la revisión:

    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 aplicaciones de Microsoft Intune.

Criterios de salida

Validación de guardar en o abrir desde restricciones

Omita si no implementó los controles guardar como y abrir desde.

Familiarícese 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.

Por motivos de simplicidad, estas pruebas suponen que la aplicación solo incluye compatibilidad para guardar y abrir datos desde OneDrive para la Empresa desde una sola ubicación dentro de la aplicación. Sin embargo, debes validar cada combinación: cada ubicación de guardado admitida en cada lugar en el que la aplicación permite guardar datos y todas las ubicaciones abiertas admitidas en cada lugar donde la aplicación permite abrir datos.

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

Además:

  • Establezca 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" - Vaya a 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 guardar.
Guardar en, exento - Directiva "Guardar copias de datos de la organización" establecida en "Bloquear"
- Directiva "Permitir que el usuario guarde copias en los servicios seleccionados" establecida solo en "OneDrive para la Empresa"
- Vaya a 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 guardar.
- Si la aplicación lo permite, intente guardar el archivo en otra ubicación de almacenamiento en la nube y confirmar que está bloqueado.
Guardar en, bloqueado Directiva "Guardar copias de datos de la organización" establecida en "Bloquear" - Vaya a 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 el guardado está bloqueado.
- Si la aplicación lo permite, intente guardar el archivo en otra ubicación de almacenamiento en la nube y confirmar 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 abrir.
Abierto desde, exento - Directiva "Abrir datos en documentos de la organización" establecida en "Bloquear"
- Directiva "Permitir que los usuarios abran datos de servicios seleccionados" establecida solo en "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 abrir.
- Si la aplicación lo permite, intente abrir otro archivo desde otra ubicación de almacenamiento en la nube y confirme 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 la aplicación lo permite, intente abrir otro archivo desde otra ubicación de almacenamiento en la nube y confirme que está bloqueado.

Validación de acciones de "Copiar en"

Omita si no implementó acciones de "Copiar a".

Por motivos de simplicidad, estas pruebas suponen que la aplicación solo incluye compatibilidad para copiar datos en aplicaciones de Microsoft Office, como Microsoft Word, Excel, etcetera. Sin embargo, debes validar cada combinación: cada ubicación de copia a compatible en cada lugar en el que la aplicación permite copiar datos.

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

Además:

  • Complete todos los pasos de integración de las acciones "Copiar a" con una extensión de acción para Microsoft Word y compile y ejecute la aplicación correctamente.
  • Establezca 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 las aplicaciones que se van a excluir, Ninguna Directiva "Enviar datos de la organización a otras aplicaciones" establecida en "Aplicaciones administradas por directivas" - Vaya a donde la aplicación puede copiar datos en Microsoft Word e iniciar la opción de uso compartido de esos datos.
- Confirme en lugar de ver "Copiar a Word" como una opción, puede ver "Abrir en Word".
- Presione "Abrir en Word" y confirme que el documento se ha copiado y visto 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, intégrela con el SDK e inicie sesión con una cuenta administrada antes de iniciar la prueba.

Además:

  • Ha completado todos los pasos de integración de Impresión y compilación y ejecución correcta de la aplicación.
  • La aplicación ya implementa alertas o 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 solicitará una alerta a los usuarios finales cuando se bloquee la impresión.
Escenario Pasos
Impresión de datos de la organización, Bloquear - Vaya a donde la aplicación puede ver los datos e iniciar la opción de uso compartido para esos datos.
- Presione "Imprimir".
- Confirme que aparece una alerta de bloque y no se permite la impresión.
Impresión de datos de la organización, Permitir - Vaya a donde la aplicación puede ver los datos e iniciar 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 correctamente.

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

Omita si no ha habilitado la configuración de la aplicación de destino para las aplicaciones de iOS.

Intune es responsable de entregar los valores de directiva de configuración de la aplicación a la aplicación; posteriormente, 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 un extremo a otro deben abarcar ambos componentes.

Para validar que Intune está entregando correctamente la directiva de configuración de aplicaciones:

  1. Configure una directiva de configuración de aplicaciones destinada a la aplicación e implementada en la cuenta de prueba.
  2. Inicie sesión en la aplicación con su cuenta de prueba.
  3. Navegue por la aplicación para ejercer cada ruta de código que llama a IntuneMAMAppConfigManagerappConfigForIdentity.
    • Registrar los resultados de las llamadas a appConfigForIdentity es una manera sencilla de validar qué configuración se entrega. Sin embargo, dado que los administradores pueden escribir cualquier dato para la configuración de la aplicación, tenga cuidado de no registrar ningún dato de usuario privado.
  4. Consulte Validación de la directiva de configuración de la aplicación 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 configuración de la aplicación.

Al realizar pruebas, tenga en cuenta lo siguiente:

  • Asegúrese de que todos los escenarios están cubiertos mediante la creación de diferentes directivas de configuración de aplicaciones de prueba 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 de aplicaciones, como Fase 5: Multi-Identity, Fase 6: Compatibilidad con el acceso condicional de App Protection y Fase 7: Características de vista web para integrarlas en la aplicación.

La protección de aplicaciones es ahora un escenario básico para la aplicación. Siga haciendo referencia a esta guía y al Apéndice mientras continúa desarrollando la aplicación.