Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O SDK do aplicativo do Microsoft Intune para iOS permite incorporar políticas de proteção do aplicativo do Intune (também conhecidas como políticas de APP ou MAM) em seu aplicativo iOS nativo. Um aplicativo gerenciado do Intune é aquele que é integrado ao SDK do aplicativo do Intune. Os administradores do Intune podem facilmente implantar políticas de proteção de aplicativo em seu aplicativo gerenciado pelo Intune quando o Intune gerencia ativamente o aplicativo.
Observação
Este guia é dividido em várias etapas distintas. Comece revisando Planeje a integração.
Etapa 4: Recursos de participação no aplicativo
Objetivos do Estágio
- Saiba mais sobre os vários recursos de participação no aplicativo oferecidos pelo SDK do Aplicativo do Intune.
- Integre recursos de participação no aplicativo relevantes para seu aplicativo e usuários.
- Teste a integração desses recursos.
O que são os "Recursos de Participação no Aplicativo"?
Esse processo de integração do SDK tenta minimizar a quantidade de código específico do aplicativo que os desenvolvedores precisam escrever. Ao concluir com êxito os estágios anteriores da integração do SDK, seu aplicativo agora pode impor a maioria das configurações de política de proteção do aplicativo, como criptografia de arquivo, restrições de copiar/colar, bloqueio de captura de tela e restrições de transferência de dados.
No entanto, existem algumas configurações que exigem código específico do aplicativo para serem aplicadas corretamente; Eles são chamados de recursos de participação no aplicativo. Normalmente, o SDK não tem contexto suficiente sobre o código do aplicativo ou o cenário do usuário final para impor automaticamente essas configurações e, portanto, depende dos desenvolvedores para chamar as APIs do SDK adequadamente.
Os recursos de participação no aplicativo não são necessariamente opcionais. Dependendo dos recursos existentes do seu aplicativo, esses recursos podem ser necessários.
As próximas etapas deste guia descreverão vários recursos importantes de participação no aplicativo:
- Várias identidades, conforme abordado no Estágio 5: Identidades Múltiplas.
- CA de Proteção de Aplicativo, conforme abordado no Estágio 6: Suporte de Acesso Condicional de Proteção de Aplicativo
- Recursos específicos do modo de exibição da Web abordados no Estágio 7: Recursos de modo de exibição da Web
O restante deste guia descreve o conjunto restante de recursos de participação no aplicativo:
- Implementar Contas Permitidas
- Implementar criptografia de arquivo necessária
- Implementar controles salvar como e abrir a partir
- Compartilhar dados via UIActivityViewController
- Habilitar configuração direcionada (configuração de aplicativo APP/MAM) para seus aplicativos iOS
- Telemetria
- Intenções da Siri
- Clipes de aplicativos
- Impressão
- Notificações
- Script pós-compilação
Personalizar o comportamento do seu aplicativo com APIs
O SDK do aplicativo do Intune tem várias APIs que você pode chamar para obter informações sobre as políticas de proteção do aplicativo do Intune implantadas no aplicativo. Você pode usar esses dados para personalizar o comportamento do seu aplicativo. A tabela a seguir fornece informações sobre algumas classes essenciais do Intune que você usa.
| Classe | Descrição |
|---|---|
| IntuneMAMPolicyManager.h | A classe IntuneMAMPolicyManager expõe as políticas de proteção do aplicativo Intune implantadas no aplicativo. Notavelmente, ele expõe APIs úteis para habilitar várias identidades. |
| IntuneMAMPolicy.h | A classe IntuneMAMPolicy expõe algumas configurações de política de MAM que se aplicam ao aplicativo. A maioria dessas configurações de política é exposta para que o aplicativo possa personalizar sua interface do usuário. A maioria das configurações de política é imposta pelo SDK e não pelo aplicativo. No entanto, existem algumas exceções. Os desenvolvedores de aplicativos devem examinar os comentários nesse cabeçalho para determinar quais APIs são aplicáveis aos cenários de seus aplicativos. |
| IntuneMAMFileProtectionManager.h | A classe IntuneMAMFileProtectionManager expõe APIs que o aplicativo pode usar para proteger explicitamente arquivos e diretórios com base em uma identidade fornecida. A identidade pode ser gerenciada pelo Intune ou não gerenciada, e o SDK aplicará a política de MAM apropriada. O uso dessa classe é opcional. |
| IntuneMAMDataProtectionManager.h | A classe IntuneMAMDataProtectionManager expõe APIs que o aplicativo pode usar para proteger buffers de dados dada uma identidade fornecida. A identidade pode ser gerenciada pelo Intune ou não gerenciada, e o SDK aplicará a criptografia adequadamente. |
Implementar Contas Permitidas
O Intune permite que os administradores de TI especifiquem em quais contas podem ser conectadas pelo usuário. Os aplicativos podem consultar o SDK do Aplicativo do Intune para obter a lista especificada de contas permitidas e, em seguida, garantir que apenas as contas permitidas estejam conectadas ao dispositivo.
Para consultar as contas permitidas, o aplicativo deve marcar a allowedAccounts propriedade no IntuneMAMEnrollmentManagercampo . A allowedAccounts propriedade é uma matriz contendo as contas permitidas ou nil. Se a propriedade for nil, nenhuma conta permitida foi especificada. Os aplicativos habilitados para MSAL/OneAuth devem usar a propriedade na instância para consultar a ID do allowedAccountIdsIntuneMAMEnrollmentManager objeto do Entra.
Os aplicativos também podem reagir a alterações da allowedAccounts propriedade observando a IntuneMAMAllowedAccountsDidChangeNotification notificação. A notificação é lançada sempre que a allowedAccounts propriedade muda de valor.
Os seguintes requisitos são necessários ao usar APIs para contas permitidas:
- A comparação de identidade não deve diferenciar maiúsculas de minúsculas para UPN e OID.
- A comparação de identidade deve dar suporte a UPN e OID.
- O aplicativo deve ter registro em log para diagnosticar qualquer incompatibilidade entre a conta especificada pelo administrador e a conta inserida pelo usuário.
Implementar criptografia de arquivo necessária
A isFileEncryptionRequired API definida no IntuneMAMPolicy.h informa os aplicativos quando o administrador de TI exige que os aplicativos usem a criptografia do Intune em todos os arquivos salvos no disco. Se isFileEncryptionRequired for true, será responsabilidade do aplicativo garantir que todos os arquivos salvos em disco pelo aplicativo sejam criptografados usando as APIs em IntuneMAMFile.h, IntuneMAMFileProtectionManager.h, e IntuneMAMFDataProtectionManager.h.
Os aplicativos podem reagir a alterações nesta política observando a IntuneMAMDataProtectionDidChangeNotification notificação definida no IntuneMAMFDataProtectionManager.h.
Implementar controles salvar como e abrir a partir
O Intune permite que os administradores de TI selecionem em quais locais de armazenamento um aplicativo gerenciado pode salvar dados ou abri-los. Os aplicativos podem consultar o SDK do MAM do Intune para obter locais de armazenamento de salvamento permitidos usando a isSaveToAllowedForLocation:withAccountId: API, definida no IntuneMAMPolicy.h. Os aplicativos também podem consultar o SDK para obter locais de armazenamento abertos permitidos usando a isOpenFromAllowedForLocation:withAccountId: API, também definida no IntuneMAMPolicy.h.
Além disso, os aplicativos podem verificar se os dados de entrada de uma extensão de compartilhamento são permitidos consultando a canReceiveSharedItemProvider: API, definida no IntuneMAMPolicy.h. Os aplicativos também podem consultar a API para verificar os canReceiveSharedFile: arquivos recebidos de uma chamada openURL, também definida no IntuneMAMPolicy.h
Observação
Foram feitas alterações no comportamento interno a partir do SDK do MAM v15.1.0.
- Uma
nilconta não será mais tratada como a conta atual para os locais LocalDrive/LocalStorage. A transmissão de umanilconta fará com que ela seja tratada como uma conta não gerenciada. Como os aplicativos podem controlar como lidam com o armazenamento de área restrita, uma identidade pode e deve ser associada a esses locais. - Uma
nilconta não será mais tratada como a conta atual para aplicativos de identidade única. A transmissão de umanilconta em um aplicativo de identidade única agora será tratada exatamente da mesma forma como se tivesse sido passada para um aplicativo de várias identidades. Se você estiver desenvolvendo um aplicativo de identidade única, use os 'sprimaryUserpara se referir à conta atual, se gerenciadaIntuneMAMPolicy, enilpara se referir à conta atual, se não gerenciada.
Tratamento de cenários de salvamento
Antes de mover dados para um novo armazenamento em nuvem ou local local, um aplicativo deve marcar com a isSaveToAllowedForLocation:withAccountId: API para saber se o administrador de TI permitiu a transferência de dados. Esse método é chamado em um IntuneMAMPolicy objeto. Os dados que estão sendo editados e salvos in-loco não precisam ser verificados com essa API.
Observação
O IntuneMAMPolicy objeto deve representar as políticas do proprietário dos dados que estão sendo salvos. Para obter o IntuneMAMPolicy objeto de uma identidade específica, chame IntuneMAMPolicyManagero método .policyForAccountId: Se o proprietário for uma conta não gerenciada sem identidade, nil poderá ser passado para policyForAccountId:. Mesmo que os dados que estão sendo salvos não sejam dados organizacionais, isSaveToAllowedForLocation:withAccountId: ainda devem ser chamados. A conta que possui o local de destino ainda pode ter políticas que restringem os dados não gerenciados de entrada.
O isSaveToAllowedForLocation:withAccountId: método usa dois argumentos. O primeiro argumento é um valor de enumeração do tipo IntuneMAMSaveLocation definido em IntuneMAMPolicy.h. O segundo argumento é o UPN da identidade proprietária do local. Se o proprietário não for conhecido, nil pode ser usado em vez disso.
Locais de salvamento com suporte
O SDK do Intune MAM fornece suporte para os seguintes locais de salvamento definidos emIntuneMAMPolicy.h:
-
IntuneMAMSaveLocationOneDriveForBusiness- Este local representa os locais do OneDrive for Business. A identidade associada à conta do OneDrive deve ser passada como o segundo argumento. -
IntuneMAMSaveLocationSharePoint- Este local representa os locais locais do SharePoint Online e do Microsoft Entra Hybrid Modern Auth SharePoint. A identidade associada à conta do SharePoint deve ser passada como o segundo argumento. -
IntuneMAMSaveLocationLocalDrive- Esse local representa o armazenamento da área restrita do aplicativo que só pode ser acessado pelo aplicativo. Esse local não deve ser usado para salvar por meio de um seletor de arquivos ou para salvar em arquivos por meio de uma extensão de compartilhamento. Se uma identidade puder ser associada ao armazenamento da área restrita do aplicativo, ela deverá ser passada como o segundo argumento. Se não houver identidade,nildeve ser passado em vez disso. Por exemplo, um aplicativo pode usar contêineres de armazenamento de área restrita de aplicativo separados para contas diferentes. Nesse caso, a conta proprietária do contêiner que está sendo acessado deve ser usada como o segundo argumento. -
IntuneMAMSaveLocationCameraRoll- Este local representa a Biblioteca de Fotos do iOS. Como não há nenhuma conta associada à Biblioteca de Fotos do iOS, sónildeve ser passado como segundo argumento quando esse local for usado. -
IntuneMAMSaveLocationAccountDocument- Esse local representa qualquer local da organização não listado anteriormente que possa ser vinculado a uma conta gerenciada. A conta da organização associada ao local deve ser passada como o segundo argumento. Por exemplo, carregar uma foto no serviço de nuvem LOB de uma organização vinculado à conta da organização. -
IntuneMAMSaveLocationOther- Este local representa qualquer local não organizacional, não listado anteriormente ou desconhecido. Se uma conta estiver associada ao local, ela deverá ser passada como o segundo argumento. Caso contrário,nildeve ser usado em vez disso.
Considerações especiais para locais de salvamento
O IntuneMAMSaveLocationLocalDrive local só deve ser usado para armazenamento da área restrita do aplicativo que só pode ser acessado pelo aplicativo. Para verificar se um arquivo pode ser salvo no armazenamento do dispositivo iOS por meio de um seletor de arquivos ou algum outro método em que os dados estarão acessíveis no aplicativo Files, IntuneMAMSaveLocationOther deve ser usado.
Se o local de destino não estiver listado, será IntuneMAMSaveLocationAccountDocument usado ou IntuneMAMSaveLocationOther deverá ser usado. Se o local contiver dados organizacionais que são acessados usando a conta gerenciada (ou seja, Serviço de nuvem LOB para armazenamento de dados organizacionais), IntuneMAMSaveLocationAccountDocument deve ser usado. Se o local não contiver dados organizacionais, o IntuneMAMSaveLocationOther local deverá ser usado.
Manipulando cenários de abrir a partir de
Antes de importar dados de um novo armazenamento em nuvem ou local local, um aplicativo deve marcar com a isOpenFromAllowedForLocation:withAccountId: API para saber se o administrador de TI permitiu a transferência de dados. Esse método é chamado em um IntuneMAMPolicy objeto. Os dados que estão sendo abertos in-loco não precisam ser verificados com essa API.
Observação
O IntuneMAMPolicy objeto deve representar as políticas da identidade que recebe os dados. Para obter o IntuneMAMPolicy objeto de uma identidade específica, chame IntuneMAMPolicyManagero método .policyForAccountId: Se a conta receptora for uma conta não gerenciada sem identidade, nil poderá ser passada para policyForAccountId:. Mesmo que os dados que estão sendo recebidos não sejam dados organizacionais, isOpenFromAllowedForLocation:withAccountId: ainda devem ser chamados. A conta que possui os dados ainda pode ter políticas que restringem os destinos das transferências de dados de saída.
O isOpenFromAllowedForLocation:withAccountId: método usa dois argumentos. O primeiro argumento é um valor de enumeração do tipo IntuneMAMOpenLocation definido em IntuneMAMPolicy.h. O segundo argumento é o UPN da identidade proprietária do local. Se o proprietário não for conhecido, nil pode ser usado em vez disso.
Locais abertos com suporte
O SDK do Intune MAM fornece suporte para os seguintes locais abertos definidos emIntuneMAMPolicy.h:
-
IntuneMAMOpenLocationOneDriveForBusiness- Este local representa os locais do OneDrive for Business. A identidade associada à conta do OneDrive deve ser passada como o segundo argumento. -
IntuneMAMOpenLocationSharePoint- Este local representa os locais locais do SharePoint Online e do Microsoft Entra Hybrid Modern Auth SharePoint. A identidade associada à conta do SharePoint deve ser passada como o segundo argumento. -
IntuneMAMOpenLocationCamera- Este local representa apenas novas imagens tiradas pela câmera. Como não há nenhuma conta associada à câmera iOS, sónildeve ser passado como segundo argumento quando esse local for usado. Para abrir dados da Biblioteca de Fotos do iOS, useIntuneMAMOpenLocationPhotos. -
IntuneMAMOpenLocationPhotos- Este local representa apenas imagens existentes na Biblioteca de fotos do iOS. Como não há nenhuma conta associada à Biblioteca de Fotos do iOS, sónildeve ser passado como segundo argumento quando esse local for usado. Para abrir imagens tiradas diretamente da câmera do iOS, useIntuneMAMOpenLocationCamera. -
IntuneMAMOpenLocationLocalStorage- Esse local representa o armazenamento da área restrita do aplicativo que só pode ser acessado pelo aplicativo. Esse local não deve ser usado para abrir arquivos de um seletor de arquivos ou manipular arquivos de entrada de um openURL. Se uma identidade puder ser associada ao armazenamento da área restrita do aplicativo, ela deverá ser passada como o segundo argumento. Se não houver identidade,nildeve ser passado em vez disso. Por exemplo, um aplicativo pode usar contêineres de armazenamento de área restrita de aplicativo separados para contas diferentes. Nesse caso, a conta proprietária do contêiner que está sendo acessado deve ser usada como o segundo argumento. -
IntuneMAMOpenLocationAccountDocument- Esse local representa qualquer local da organização não listado anteriormente que possa ser vinculado a uma conta gerenciada. A conta da organização associada ao local deve ser passada como o segundo argumento. Por exemplo, baixar uma foto do serviço de nuvem LOB de uma organização vinculado à conta da organização. -
IntuneMAMOpenLocationOther- Esse local representa qualquer local não organizacional, não listado anteriormente ou qualquer local desconhecido. Se uma conta estiver associada ao local, ela deverá ser passada como o segundo argumento. Caso contrário,nildeve ser usado em vez disso.
Considerações especiais para locais abertos
O IntuneMAMOpenLocationLocalStorage local só deve ser usado para o armazenamento da área restrita do aplicativo que pode ser acessado pelo aplicativo. Para verificar se um arquivo pode ser aberto a partir do armazenamento do dispositivo iOS por meio de um seletor de arquivos ou algum outro método em que os dados também possam ser acessados no aplicativo Files, IntuneMAMOpenLocationOther deve ser usado.
Se o local de destino não estiver listado, será IntuneMAMOpenLocationAccountDocument usado ou IntuneMAMOpenLocationOther deverá ser usado. Se o local contiver dados organizacionais que são acessados usando a conta gerenciada. Por exemplo, o serviço de nuvem LOB para armazenar dados IntuneMAMOpenLocationAccountDocument organizacionais deve ser usado. Se o local não contiver dados organizacionais, o IntuneMAMSaveLocationOther local deverá ser usado.
Manipulando NSItemProviders e Files de entrada
Para lidar com NSItemProviders recebidos de uma extensão de compartilhamento, o IntuneMAMPolicymétodo do canReceiveSharedItemProvider: pode ser usado em vez de isOpenFromAllowedForLocation:withAccountId:. O canReceiveSharedItemProvider: método usa um NSItemProvider e retorna se ele é permitido pelo administrador de TI a ser aberto na conta do IntuneMAMPolicy objeto. O item deve ser carregado antes de chamar esse método. Por exemplo, chamando loadItemForTypeIdentifier:options:completionHandler. Esse método também pode ser chamado do manipulador de conclusão passado para a chamada de carga NSItemProvider .
Para lidar com arquivos de entrada, o IntuneMAMPolicymétodo do canReceiveSharedFile: pode ser usado em vez de isOpenFromAllowedForLocation:withAccountId:. O canReceiveSharedFile: método usa um caminho NSString e retorna se ele é permitido pelo administrador de TI para ser aberto na conta do IntuneMAMPolicy objeto.
Alerta de compartilhamento bloqueado
Uma função auxiliar de interface do usuário pode ser usada quando a isSaveToAllowedForLocation:withAccountId: API ou isOpenFromAllowedForLocation:withAccountId: é chamada e encontrada para bloquear a ação salvar/abrir. Se o aplicativo quiser notificar o usuário de que a ação foi bloqueada, ele poderá chamar a showSharingBlockedMessage API definida no IntuneMAMUIHelper.h para apresentar uma exibição de alerta com uma mensagem genérica.
Compartilhar dados via UIActivityViewController
A partir da versão 8.0.2, o SDK do aplicativo do Intune pode filtrar UIActivityViewController ações para que somente os locais de compartilhamento gerenciado do Intune estejam disponíveis para seleção. Esse comportamento será controlado pela política de transferência de dados do aplicativo.
Ações "Copiar para"
Ao compartilhar documentos por meio do e UIDocumentInteractionController, o UIActivityViewController iOS exibe ações 'Copiar para' para cada aplicativo compatível com a abertura do documento que está sendo compartilhado. Os aplicativos declaram os tipos de documento aos quais dão suporte por meio da CFBundleDocumentTypes configuração em seu Info.plist. Esse tipo de compartilhamento não estará mais disponível se a política proibir o compartilhamento com aplicativos não gerenciados. Como substituição, o usuário terá que adicionar uma extensão de ação que não seja da interface do usuário ao aplicativo e vinculá-la ao SDK do aplicativo do Intune. A extensão Action é apenas um esboço. O SDK implementará o comportamento de compartilhamento de arquivos. Siga as etapas abaixo:
Seu aplicativo deve ter pelo menos um schemeURL definido em seu Info.plist
CFBundleURLTypesjunto com sua-intunemamcontraparte. Por exemplo:<key>CFBundleURLSchemes</key> <array> <string>launch-com.contoso.myapp</string> <string>launch-com.contoso.myapp-intunemam</string> </array>Tanto o aplicativo quanto a extensão de ação devem compartilhar pelo menos um Grupo de Aplicativos e o Grupo de Aplicativos deve ser listado
AppGroupIdentifiersna matriz nos dicionários IntuneMAMSettings do aplicativo e da extensão.O aplicativo e a extensão de ação devem ter o recurso de Compartilhamento de Conjunto de Chaves e compartilhar o grupo de
com.microsoft.intune.mamconjunto de chaves.Nomeie a extensão de ação "Open in" seguida pelo nome do aplicativo. Localize o Info.plist conforme necessário.
Forneça um ícone de modelo para a extensão, conforme descrito pela documentação do desenvolvedor da Apple. Como alternativa, a ferramenta IntuneMAMConfigurator pode ser usada para gerar essas imagens do diretório .app do aplicativo. Para isso, execute:
IntuneMAMConfigurator -generateOpenInIcons /path/to/app.app -o /path/to/output/directoryEm IntuneMAMSettings no Info.plist da extensão, adicione uma configuração booliana nomeada
OpenInActionExtensioncom o valor YES.Configure o
NSExtensionActivationRulepara dar suporte a um único arquivo e a todos os tipos do prefixoCFBundleDocumentTypesdo aplicativo comcom.microsoft.intune.mam. Por exemplo, se o aplicativo der suporte a public.text e public.image, a regra de ativação será: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
Atualizar as extensões de Compartilhamento e Ação existentes
Se o aplicativo já contiver as extensões Share ou Action, elas NSExtensionActivationRule precisarão ser modificadas para permitir os tipos do Intune. Para cada tipo compatível com a extensão, adicione um tipo adicional prefixado com com.microsoft.intune.mam. Por exemplo, se a regra de ativação existente for:
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
Deve ser alterada para:
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
Observação
A ferramenta IntuneMAMConfigurator pode ser usada para adicionar os tipos do Intune à regra de ativação. Se sua regra de ativação existente usa as constantes de cadeia de caracteres predefinidas. Por exemplo, NSExtensionActivationSupportsFileWithMaxCount, NSExtensionActivationSupportsText etc., a sintaxe do predicado pode ficar bastante complexa. A ferramenta IntuneMAMConfigurator também pode ser usada para converter a regra de ativação das constantes de cadeia de caracteres em uma cadeia de caracteres de predicado ao adicionar os tipos do Intune.
Como deve ser a aparência da interface do usuário
IU antiga:
Nova interface do usuário:
Habilitar a configuração de aplicativo direcionado para seus aplicativos iOS
A configuração direcionada do MAM (também conhecida como configuração do aplicativo MAM) permite que um aplicativo receba dados de configuração por meio do SDK do Intune. O formato e as variantes desses dados devem ser definidos e comunicados aos clientes do Intune pelo proprietário/desenvolvedor do aplicativo.
Intune administradores podem direcionar e implantar dados de configuração por meio do centro de administração do Microsoft Intune e do Intune API do Graph. A partir da versão 7.0.1 do SDK do Aplicativo do Intune para iOS, os aplicativos que participam da configuração direcionada ao MAM podem receber dados de configuração direcionada ao MAM por meio do Serviço MAM. Os dados de configuração do aplicativo são enviados por push por meio de nosso Serviço MAM diretamente para o aplicativo, em vez de por meio do canal MDM. O SDK do aplicativo do Intune fornece uma classe para acessar os dados recuperados desses consoles. Os seguintes itens são pré-requisitos:
O aplicativo precisa ser registrado no serviço Intune MAM antes de acessar a interface do usuário de configuração direcionada ao MAM. Para obter mais informações, consulte Receber política de proteção do aplicativo.
Incluir
IntuneMAMAppConfigManager.hno arquivo de origem do seu aplicativo.Chamada
[[IntuneMAMAppConfigManager instance] appConfigForAccountId:]para obter o objeto de configuração do aplicativo.Chame o seletor apropriado no
IntuneMAMAppConfigobjeto. Por exemplo, se a chave do aplicativo for uma cadeia de caracteres, você deseja usarstringValueForKeyouallStringsForKey. ConsulteIntuneMAMAppConfig.hpara obter uma descrição detalhada sobre valores retornados e condições de erro.
Para obter mais informações sobre os recursos da API do Graph, consulte Referência da API do Graph.
Para obter mais informações sobre como criar uma política de configuração de aplicativo direcionado ao MAM no iOS, consulte a seção sobre configuração de aplicativo direcionado ao MAM em Como usar as políticas de configuração de aplicativo do Microsoft Intune para iOS/iPadOS.
Telemetria
Por padrão, o SDK do aplicativo do Intune para iOS coleta telemetria nos seguintes tipos de eventos:
Lançamento do aplicativo: para ajudar o Microsoft Intune a saber mais sobre o uso de aplicativos habilitados para MAM por tipo de gerenciamento (MAM com MDM, MAM sem registro de MDM e assim por diante).
Chamadas de registro: para ajudar o Microsoft Intune a saber mais sobre a taxa de êxito e outras métricas de desempenho de chamadas de registro iniciadas do lado do cliente.
Ações do Intune: para ajudar a diagnosticar problemas e garantir a funcionalidade do Intune, coletamos informações sobre as ações do SDK do Intune.
Observação
Se você optar por não enviar dados de telemetria do SDK do Aplicativo do Intune para o Microsoft Intune do seu aplicativo móvel, deverá desabilitar a captura de telemetria do SDK do Aplicativo do Intune. Defina a propriedade MAMTelemetryDisabled como SIM no dicionário IntuneMAMSettings.
Intenções da Siri
Se o app se integrar ao Siri Intents ou fizer doações do Siri Intent, leia os comentários para areSiriIntentsAllowedIntuneMAMPolicy.h obter instruções sobre como dar suporte a esse cenário.
Observação
No iOS 16 e superior, uma nova estrutura do sistema App Intents está disponível para criar Swift App Intents. Os aplicativos que implementam uma intenção de aplicativo devem primeiro marcar a areSiriIntentsAllowed propriedade no objeto IntuneMAMPolicy para o usuário.
Clipes de aplicativos
Se seu aplicativo incluir um destino de clipe de aplicativo, verifique se nenhum dado gerenciado é apresentado no clipe de aplicativo. O clipe de aplicativo deve ser considerado um local não gerenciado. Atualmente, não há suporte para a integração do SDK com os App Clips.
Impressão
Se o aplicativo implementar a impressão e fornecer uma ação de impressão personalizada em um menu personalizado, certifique-se de utilizar UIPrintInteractionController.isPrintingAvailable() para determinar se você deve adicionar sua ação de impressão ao menu personalizado.
Bloqueio de captura de tela
Para aplicativos que foram atualizados para v19.7.6 ou posterior para Xcode 15 e v20.2.1 ou posterior para Xcode 16 do SDK, o bloqueio de captura de tela será aplicado se você tiver configurado Send Org data to other apps como um valor diferente de "Todos os aplicativos". Você pode definir a configuração de política de configuração do aplicativo "com.microsoft.intune.mam.screencapturecontrol = Disabled" se desejar permitir a captura de tela para seus dispositivos iOS.
Notificações
Se o aplicativo receber notificações, leia os comentários para notificationPolicyIntuneMAMPolicy.h obter instruções sobre como dar suporte a esse cenário. É recomendável que os aplicativos se registrem para IntuneMAMPolicyDidChangeNotification descrito em IntuneMAMPolicyManager.he comuniquem esse valor aos seus UNNotificationServiceExtension por meio do conjunto de chaves.
Extensões da Web do Safari
Se o aplicativo tiver uma extensão da web Safari e der suporte ao envio de dados entre a extensão e o aplicativo pai, em alguns cenários, talvez seja necessário dar suporte ao bloqueio dos dados. Para bloquear os dados, no aplicativo pai, chame a isAppSharingAllowed API IntuneMAMPolicy.he bloqueie a extensão da Web.
Script pós-compilação
A ferramenta de linha de comando IntuneMAMFrameworkPatcher não deve mais ser executada como a última etapa do processo de build do aplicativo. No entanto, essa ferramenta está disponível como parte do SDK do Aplicativo do Intune para iOS no GitHub.
Importante
A partir da versão 17.7.1 do SDK do Intune MAM, esta etapa não é mais necessária. A ferramenta de linha de comando IntuneMAMFrameworkPatcher não precisa mais ser executada.
Uso da linha de comando
IntuneMAMFrameworkPatcher -i /path/to/directory_or_binary [-resign] [-verbose]
Parâmetros:
-
i,r,v: Esse parâmetro permite que você opte por instalar, remover ou verificar o Patcher do Intune MAM Framework para o processo de compilação do aplicativo. -
path: devepathser a raiz do diretório .app do aplicativo. -
resign: Aresignopção instrui a ferramenta a renunciar a binários que tinham uma assinatura válida antes de corrigir o binário. Essa opção deverá ser usada se o projeto incluir dependências de estrutura ou plug-ins com a opção Incorporar e Assinar , mesmo quando executado antes da assinatura final do aplicativo ou se a ferramenta for executada após a assinatura final do aplicativo. -
verbose: Averboseopção fará com que a ferramenta produza informações sobre cada binário que foi corrigido.
Outros usos:
Remova o patch:
IntuneMAMFrameworkPatcher -r /path/to/directory_or_binary [-resign] [-verbose]Verifique o patch:
IntuneMAMFrameworkPatcher -v /path/to/directory_or_binary [-verbose]
Exemplo de script:
IntuneMAMFrameworkPatcher -i $BUILT_PRODUCTS_DIR/$EXECUTABLE_FOLDER_PATH -resign -verbose
Para obter mais informações sobre como começar e baixar o SDK, confira Introdução ao SDK do Aplicativo do Microsoft Intune.
Critérios de Saída
Validando salvar em / abrir de restrições
Ignore se você não tiver Implemente os controles salvar como e abrir de.
Familiarize-se novamente com todos os cenários em que seu aplicativo pode salvar dados em armazenamentos em nuvem ou locais e abrir dados de armazenamentos em nuvem ou locais locais.
Para simplificar, esses testes assumirão que seu aplicativo inclui apenas suporte para salvar e abrir dados do OneDrive for Business de um único local dentro do aplicativo. No entanto, você deve validar todas as combinações: todos os locais de salvamento com suporte em todos os lugares em que seu aplicativo permite salvar dados e todos os locais abertos com suporte em todos os lugares em que seu aplicativo permite abrir dados.
Para esses testes, instale seu aplicativo, integre-o ao SDK e faça login com uma conta gerenciada antes de iniciar o teste.
Além disso:
- Defina a política da conta gerenciada como:
- "Enviar dados da organização para outros aplicativos" para "Aplicativos gerenciados por política".
- "Receber dados de outros aplicativos" para "Aplicativos gerenciados por política".
| Cenário | Condições prévias | Etapas |
|---|---|---|
| Salvar em, totalmente permitido | Política "Salvar cópias de dados da organização" definida como "Permitir" | - Navegue até onde seu aplicativo pode salvar dados no OneDrive for Business. - Tente salvar um documento no OneDrive for Business, na mesma conta gerenciada conectada ao seu aplicativo. - Confirme se o salvamento é permitido. |
| Salvar em, isento | - Política "Salvar cópias dos dados da organização" definida como "Bloquear" - Política "Permitir que o usuário salve cópias em serviços selecionados" definida apenas como "OneDrive for Business" |
- Navegue até onde seu aplicativo pode salvar dados no OneDrive for Business. - Tente salvar um documento no OneDrive for Business, na mesma conta gerenciada conectada ao seu aplicativo. - Confirme se o salvamento é permitido. - Se o aplicativo permitir, tente salvar o arquivo em um local de armazenamento em nuvem diferente e confirme se ele está bloqueado. |
| Salvar em, bloqueado | Política "Salvar cópias de dados da organização" definida como "Bloquear" | - Navegue até onde seu aplicativo pode salvar dados no OneDrive for Business. - Tente salvar um documento no OneDrive for Business, na mesma conta gerenciada conectada ao seu aplicativo. - Confirme se o salvamento está bloqueado. - Se o aplicativo permitir, tente salvar o arquivo em um local de armazenamento em nuvem diferente e confirme se ele está bloqueado. |
| Aberto de, totalmente permitido | Política "Abrir dados em documentos da organização" definida como "Permitir" | - Navegue até onde seu aplicativo pode abrir dados do OneDrive for Business. - Tente abrir um documento do OneDrive for Business, da mesma conta gerenciada conectada ao armazenamento do seu aplicativo. - Confirme se a abertura é permitida. |
| Aberto de, isento | - Política "Abrir dados em documentos da organização" definida como "Bloquear" - Política "Permitir que os usuários abram dados de serviços selecionados" definida apenas como "OneDrive for Business" |
- Navegue até onde seu aplicativo pode abrir dados do OneDrive for Business. - Tente abrir um documento do OneDrive for Business, da mesma conta gerenciada conectada ao armazenamento do seu aplicativo. - Confirme se a abertura é permitida. - Se o aplicativo permitir, tente abrir outro arquivo de um local de armazenamento em nuvem diferente e confirme se ele está bloqueado. |
| Abrir de, bloqueado | Política "Abrir dados em documentos da organização" definida como "Bloquear" | - Navegue até onde seu aplicativo pode abrir dados do OneDrive for Business. - Tente abrir um documento do OneDrive for Business, da mesma conta gerenciada conectada ao armazenamento do seu aplicativo. - Confirme se a abertura está bloqueada. - Se o aplicativo permitir, tente abrir outro arquivo de um local de armazenamento em nuvem diferente e confirme se ele está bloqueado. |
Validando ações "Copiar para"
Ignore se você não implementou as ações "Copiar para".
Para simplificar, esses testes assumirão que seu aplicativo inclui apenas suporte para copiar dados para aplicativos do Microsoft Office, como Microsoft Word, Excel etc. No entanto, você deve validar todas as combinações: todos os locais de cópia com suporte em todos os locais para os quais seu aplicativo permite copiar dados.
Para esses testes, instale seu aplicativo, integre-o ao SDK e faça login com uma conta gerenciada antes de iniciar o teste.
Além disso:
- Concluídas todas as etapas de integração das ações 'Copiar para' com uma Extensão de Ação para o Microsoft Word e compilamos e executamos o aplicativo com êxito.
- Defina a política da conta gerenciada como:
- "Enviar dados da organização para outros aplicativos" para "Aplicativos gerenciados por política".
| Cenário | Condições prévias | Etapas |
|---|---|---|
| Selecionar aplicativos para isentar, Nenhum | Política "Enviar dados da organização para outros aplicativos" definida como "Aplicativos gerenciados por política" | - Navegue até onde seu aplicativo pode copiar dados para o Microsoft Word e inicie a opção de compartilhamento para esses dados. - Confirme em vez de ver "Copiar para o Word" como uma opção, você pode ver "Abrir no Word". - Pressione "Abrir no Word" e confirme se o documento foi copiado e visualizado com êxito, desde que o Word também esteja conectado com a mesma conta gerenciada. |
Validando ações de impressão
Ignore se você não implementou a impressão.
Para este teste, instale seu aplicativo, integre-o ao SDK e faça login com uma conta gerenciada antes de iniciar o teste.
Além disso:
- Concluídas todas as etapas de integração da impressão e compilação e execução do aplicativo com êxito.
- Seu aplicativo já implementa alertas/itens de ação para lidar com o caso quando a impressão não é permitida a partir do administrador de TI do APP. Neste teste, supondo que seu aplicativo exibirá um alerta aos usuários finais quando a impressão for bloqueada.
| Cenário | Etapas |
|---|---|
| Imprimindo dados da organização, bloquear | - Navegue até onde seu aplicativo pode visualizar os dados e inicie a opção de compartilhamento para esses dados. - Pressione "Imprimir". - Confirme se um alerta de bloqueio aparece e a impressão não é permitida. |
| Imprimir dados da organização, Permitir | - Navegue até onde seu aplicativo pode visualizar os dados e inicie a opção de compartilhamento para esses dados. - Pressione "Imprimir". - Confirme se a exibição "Imprimir" aparece e você pode selecionar uma impressora e concluir a ação com êxito. |
Validando configurações de aplicativos de recebimento
Ignore se você não fizer Habilite a configuração de aplicativo direcionado para seus aplicativos iOS.
O Intune é responsável por fornecer os valores da política de configuração de aplicativo para seu aplicativo. Posteriormente, seu aplicativo é responsável por usar esses valores para alterar o comportamento ou a interface do usuário dentro do aplicativo. Testes completos de ponta a ponta devem abranger ambos os componentes.
Para validar se o Intune está fornecendo corretamente a política de configuração de aplicativo:
- Configure uma política de configuração de aplicativo, que seja direcionada ao seu aplicativo e implantada em sua conta de teste.
- Se o aplicativo der suporte à configuração de aplicativo para dispositivos gerenciados, consulte políticas de configuração de aplicativo para dispositivos iOS Enterprise gerenciados.
- Se o aplicativo der suporte à configuração de aplicativo para aplicativos gerenciados, consulte políticas de configuração de aplicativo para aplicativos gerenciados.
- Se o aplicativo der suporte a ambos os tipos de configuração de aplicativo, crie os dois tipos de política para teste.
- Faça logon no aplicativo com sua conta de teste.
- Navegue pelo seu aplicativo para exercitar cada codepath que chama
IntuneMAMAppConfigManager.appConfigForIdentity- Registrar os resultados das chamadas para
appConfigForIdentityé uma maneira simples de validar quais configurações são entregues. No entanto, como os administradores podem inserir qualquer dado para as definições de configuração do aplicativo, tenha cuidado para não registrar nenhum dado privado do usuário.
- Registrar os resultados das chamadas para
- Consulte Validar a política de configuração de aplicativo aplicada.
Como as configurações de aplicativo são específicas do aplicativo, somente você sabe como validar como seu aplicativo deve alterar o comportamento ou a interface do usuário para cada definição de configuração do aplicativo.
Ao testar, considere o seguinte:
- Garantir que todos os cenários sejam cobertos criando uma política de configuração de aplicativo de teste diferente com cada valor ao qual seu aplicativo dá suporte.
- Validar a lógica de resolução de conflitos do seu aplicativo criando várias políticas de configuração de aplicativo de teste com valores diferentes para cada configuração.
Próximas etapas
Se você seguiu este guia na ordem e concluiu todos os Critérios de Saída acima, parabéns, seu aplicativo agora está totalmente integrado ao SDK do Aplicativo do Intune e pode impor políticas de proteção do aplicativo! Marque outros recursos importantes de participação no aplicativo, como o Estágio 5: Identidade Múltipla, o Estágio 6: suporte ao Acesso Condicional de Proteção do Aplicativo e o Estágio 7: recursos de exibição da Web para integrá-los ao seu aplicativo.
Proteção de aplicativos agora é um cenário central para seu aplicativo. Continue a consultar este guia e o Apêndice à medida que desenvolve seu aplicativo.