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:
- Varias identidades, tal como se describe en Fase 5: Multi-Identity.
- Ca de App Protection, tal como se describe en la fase 6: Compatibilidad con el acceso condicional de App Protection
- Características específicas de la vista web que se tratan en la fase 7: Características de vista web
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.h
y 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 unanil
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 unanil
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 lasIntuneMAMPolicy
primaryUser
para hacer referencia a la cuenta actual si se administra ynil
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 IntuneMAMPolicyManager
mé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, solonil
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 IntuneMAMPolicyManager
mé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, solonil
se debe pasar como segundo argumento cuando se usa esta ubicación. Para abrir datos de la biblioteca de fotos de iOS, useIntuneMAMOpenLocationPhotos
. -
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, solonil
se debe pasar como segundo argumento cuando se usa esta ubicación. Para abrir imágenes tomadas directamente desde la cámara de iOS, useIntuneMAMOpenLocationCamera
. -
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 IntuneMAMPolicy
mé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 IntuneMAMPolicy
mé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:
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>
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.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.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.
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
En IntuneMAMSettings en info.plist de la extensión, agregue una configuración booleana denominada
OpenInActionExtension
con el valor SÍ.Configure para
NSExtensionActivationRule
admitir un único archivo y todos los tipos de la aplicaciónCFBundleDocumentTypes
concom.microsoft.intune.mam
el 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.mam
el 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:
Nueva interfaz de usuario:
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á usarstringValueForKey
oallStringsForKey
. ConsulteIntuneMAMAppConfig.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.h
y 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.h
y, 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
: laresign
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
: laverbose
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:
- Configure una directiva de configuración de aplicaciones destinada a la aplicación e implementada en la cuenta de prueba.
- Si la aplicación admite la configuración de aplicaciones para dispositivos administrados, consulte Directivas de configuración de aplicaciones para dispositivos iOS Enterprise administrados.
- Si la aplicación admite la configuración de aplicaciones para aplicaciones administradas, consulte Directivas de configuración de aplicaciones para aplicaciones administradas.
- Si la aplicación admite ambos tipos de configuración de la aplicación, cree ambos tipos de directiva para realizar pruebas.
- Inicie sesión en la aplicación con su cuenta de prueba.
- Navegue por la aplicación para ejercer cada ruta de código que llama a
IntuneMAMAppConfigManager
appConfigForIdentity
.- 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.
- Registrar los resultados de las llamadas a
- 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.