Compartilhar via


SDK da Aplicação Intune para iOS – Funcionalidades de participação de aplicações

O SDK da Aplicação Microsoft Intune para iOS permite-lhe incorporar Intune políticas de proteção de aplicações (também conhecidas como políticas de APLICAÇÃO ou MAM) na sua aplicação iOS nativa. Uma aplicação gerida Intune é uma aplicação integrada no SDK da Aplicação Intune. Intune administradores podem facilmente implementar políticas de proteção de aplicações na sua aplicação gerida Intune quando Intune gere ativamente a aplicação.

Observação

Este guia está dividido em várias fases distintas. Comece por rever Planear a Integração.

Fase 4: Funcionalidades de participação de aplicações

Fase Goals

  • Saiba mais sobre as várias funcionalidades de participação da aplicação oferecidas pelo SDK da Aplicação Intune.
  • Integrar funcionalidades de participação de aplicações relevantes para a sua aplicação e utilizadores.
  • Teste a integração dessas funcionalidades.

O que são "Funcionalidades de Participação da Aplicação"?

Este processo de integração do SDK tenta minimizar a quantidade de código específico da aplicação que os programadores precisam de escrever. Ao concluir com êxito as fases anteriores da integração do SDK, a sua aplicação pode agora impor a maioria das definições de política de proteção de aplicações, tais como encriptação de ficheiros, restrições de cópia/colagem, bloqueio de captura de ecrã e restrições de transferência de dados.

No entanto, existem algumas definições que requerem código específico da aplicação para impor corretamente; são denominadas funcionalidades de participação de aplicações. Normalmente, o SDK não tem contexto suficiente sobre o código da aplicação ou o cenário do utilizador final para impor automaticamente estas definições e, por conseguinte, depende dos programadores para chamar adequadamente as APIs do SDK.

As funcionalidades de participação de aplicações não são necessariamente opcionais. Consoante as funcionalidades existentes da sua aplicação, estas funcionalidades podem ser necessárias.

As fases seguintes deste guia descreverão várias funcionalidades importantes de participação de aplicações:

O resto deste guia descreve o conjunto restante de funcionalidades de participação de aplicações:

  • Implementar Contas Permitidas
  • Implementar Encriptação de Ficheiros Necessária
  • Implementar controlos save as e open-from
  • Partilhar Dados através de UIActivityViewController
  • Ativar a configuração de destino (configuração da aplicação APP/MAM) para as suas aplicações iOS
  • Telemetria
  • Intenções da Siri
  • Clips de Aplicações
  • Impressão
  • Notificações
  • Publicar script de compilação

Personalizar o comportamento da sua aplicação com APIs

O SDK da Aplicação Intune tem várias APIs que pode chamar para obter informações sobre a política Intune APP implementada na aplicação. Pode utilizar estes dados para personalizar o comportamento da sua aplicação. A tabela seguinte fornece informações sobre algumas classes Intune essenciais que utiliza.

Classe Descrição
IntuneMAMPolicyManager.h A classe IntuneMAMPolicyManager expõe a política Intune APP implementada na aplicação. Nomeadamente, expõe APIs que são úteis para Ativar várias identidades.
IntuneMAMPolicy.h A classe IntuneMAMPolicy expõe algumas definições de política de MAM que se aplicam à aplicação. A maioria destas definições de política são expostas para que a aplicação possa personalizar a IU. A maioria das definições de política são impostas pelo SDK e não pela aplicação. No entanto, existem algumas exceções. Os programadores de aplicações devem rever os comentários neste cabeçalho para determinar que APIs são aplicáveis aos cenários da aplicação.
IntuneMAMFileProtectionManager.h A classe IntuneMAMFileProtectionManager expõe APIs que a aplicação pode utilizar para proteger explicitamente ficheiros e diretórios com base numa identidade fornecida. A identidade pode ser gerida por Intune ou não gerida e o SDK aplicará a política de MAM adequada. A utilização desta classe é opcional.
IntuneMAMDataProtectionManager.h A classe IntuneMAMDataProtectionManager expõe as APIs que a aplicação pode utilizar para proteger as memórias intermédias de dados com uma identidade fornecida. A identidade pode ser gerida por Intune ou não gerida e o SDK aplicará a encriptação adequadamente.

Implementar Contas Permitidas

Intune permite que os administradores de TI especifiquem as contas nas quais o utilizador pode iniciar sessão. As aplicações podem consultar o SDK da Aplicação Intune para obter a lista especificada de contas permitidas e, em seguida, garantir que apenas as contas permitidas têm sessão iniciada no dispositivo.

Para consultar contas permitidas, a Aplicação deve marcar a allowedAccounts propriedade em IntuneMAMEnrollmentManager. A allowedAccounts propriedade é uma matriz que contém as contas permitidas ou nula. Se a propriedade for nula, não foram especificadas contas permitidas. As aplicações ativadas para MSAL/OneAuth devem utilizar a allowedAccountIds propriedade na instância para consultar o IntuneMAMEnrollmentManager ID do objeto Entra.

As aplicações também podem reagir às alterações da allowedAccounts propriedade observando a IntuneMAMAllowedAccountsDidChangeNotification notificação. A notificação é publicada sempre que a allowedAccounts propriedade for alterada no valor.

São necessários os seguintes requisitos ao utilizar APIs para contas permitidas:

  • A comparação de identidades tem de não ser sensível a maiúsculas e minúsculas para UPN e OID.
  • A comparação de identidades tem de suportar o UPN e o OID.
  • A aplicação tem de ter um registo para diagnosticar qualquer erro de correspondência entre a conta especificada pelo administrador e a conta introduzida pelo utilizador.

Implementar Encriptação de Ficheiros Necessária

A isFileEncryptionRequired API definida em IntuneMAMPolicy.h informa as aplicações quando o administrador de TI requer que as aplicações utilizem Intune encriptação em quaisquer ficheiros guardados no disco. Se isFileEncryptionRequired for verdade, é da responsabilidade da aplicação garantir que todos os ficheiros guardados no disco pela aplicação são encriptados com as APIs em IntuneMAMFile.h, IntuneMAMFileProtectionManager.he IntuneMAMFDataProtectionManager.h.

As aplicações podem reagir a alterações nesta política ao observar a IntuneMAMDataProtectionDidChangeNotification notificação definida em IntuneMAMFDataProtectionManager.h.

Implementar controlos save as e open-from

Intune permite que os administradores de TI selecionem as localizações de armazenamento onde uma aplicação gerida pode guardar ou abrir dados. As aplicações podem consultar o SDK de MAM Intune para localizações de armazenamento permitidas através da isSaveToAllowedForLocation:withAccountId: API, definida em IntuneMAMPolicy.h. As aplicações também podem consultar o SDK para localizações de armazenamento abertas permitidas com a isOpenFromAllowedForLocation:withAccountId: API, também definida em IntuneMAMPolicy.h.

Além disso, as aplicações podem verificar se os dados recebidos de uma extensão de partilha são permitidos ao consultar a canReceiveSharedItemProvider: API, definida em IntuneMAMPolicy.h. As aplicações também podem consultar a canReceiveSharedFile: API para verificar os ficheiros recebidos a partir de uma chamada openURL, também definida em IntuneMAMPolicy.h

Observação

Foram efetuadas alterações ao comportamento interno a partir do SDK MAM v15.1.0.

  • Uma nil conta deixará de ser tratada como a conta atual das localizações localDrive/LocalStorage. A transmissão de uma nil conta será tratada como uma conta não gerida. Uma vez que as aplicações podem controlar a forma como processam o armazenamento do sandbox, uma identidade pode e deve ser associada a essas localizações.
  • Uma nil conta deixará de ser tratada como a conta atual para aplicações de identidade única. A transmissão de uma nil conta numa aplicação de identidade única será agora tratada exatamente como se tivesse sido transmitida para uma aplicação de várias identidades. Se estiver a desenvolver uma aplicação de identidade única, utilize os IntuneMAMPolicy's primaryUser ' para fazer referência à conta atual, se for gerida, e nil para fazer referência à conta atual, se não for gerida.

Processar cenários de guardar em

Antes de mover dados para um novo armazenamento na cloud ou local, uma aplicação tem de marcar com a isSaveToAllowedForLocation:withAccountId: API para saber se o administrador de TI permitiu a transferência de dados. Este método é chamado num IntuneMAMPolicy objeto. Os dados que estão a ser editados e guardados no local não precisam de ser verificados com esta API.

Observação

O IntuneMAMPolicy objeto deve representar as políticas do proprietário dos dados que estão a ser guardados. Para obter o IntuneMAMPolicy objeto de uma identidade específica, chame IntuneMAMPolicyManagero método ' policyForAccountId: . Se o proprietário for uma conta não gerida sem identidade, nil pode ser transmitido para policyForAccountId:. Mesmo que os dados que estão a ser guardados não sejam dados organizacionais, isSaveToAllowedForLocation:withAccountId: ainda deve ser chamado. A conta proprietária da localização de destino ainda pode ter políticas que restringem os dados não geridos recebidos.

O isSaveToAllowedForLocation:withAccountId: método utiliza dois argumentos. O primeiro argumento é um valor de enumeração do tipo IntuneMAMSaveLocation definido em IntuneMAMPolicy.h. O segundo argumento é o UPN da identidade que detém a localização. Se o proprietário não for conhecido, nil pode ser utilizado.

Localizações de gravação suportadas

O SDK de MAM Intune fornece suporte para as seguintes localizações de gravação definidas em IntuneMAMPolicy.h:

  • IntuneMAMSaveLocationOneDriveForBusiness- Esta localização representa OneDrive for Business localizações. A identidade associada à conta do OneDrive deve ser transmitida como segundo argumento.
  • IntuneMAMSaveLocationSharePoint- Esta localização representa o SharePoint online e Microsoft Entra localizações do SharePoint de Autenticação Moderna Híbrida no local. A identidade associada à conta do SharePoint deve ser transmitida como segundo argumento.
  • IntuneMAMSaveLocationLocalDrive - Esta localização representa o armazenamento de sandbox de aplicações que só pode ser acedido pela aplicação. Esta localização não deve ser utilizada para guardar através de um seletor de ficheiros ou para guardar em ficheiros através de uma extensão de partilha. Se uma identidade puder ser associada ao armazenamento app-sandbox, deve ser transmitida como o segundo argumento. Se não existir nenhuma identidade, nil deve ser transmitida. Por exemplo, uma aplicação pode utilizar contentores de armazenamento app-sandbox separados para contas diferentes. Neste caso, a conta que detém o contentor a ser acedido deve ser utilizada como segundo argumento.
  • IntuneMAMSaveLocationCameraRoll - Esta localização representa a Biblioteca de Fotografias do iOS. Uma vez que não existe nenhuma conta associada à Biblioteca de Fotografias do iOS, só nil deve ser transmitida como o segundo argumento quando esta localização é utilizada.
  • IntuneMAMSaveLocationAccountDocument - Esta localização representa qualquer localização da organização não listada anteriormente que possa ser associada a uma conta gerida. A conta da organização associada à localização deve ser transmitida como segundo argumento. Por exemplo, carregar uma fotografia para o serviço cloud LOB de uma organização associada à conta da organização.
  • IntuneMAMSaveLocationOther - Esta localização representa qualquer localização não organizacional, não listada anteriormente ou qualquer localização desconhecida. Se uma conta estiver associada à localização, deve ser transmitida como o segundo argumento. Caso contrário, nil deve ser utilizado.
Considerações especiais sobre localizações para guardar

A IntuneMAMSaveLocationLocalDrive localização só deve ser utilizada para o armazenamento de sandbox de aplicações que só pode ser acedido pela aplicação. Para verificar se um ficheiro pode ser guardado no armazenamento de dispositivos iOS através de um seletor de ficheiros ou de outro método em que os dados serão acessíveis na aplicação Ficheiros, IntuneMAMSaveLocationOther deve ser utilizado.

Se a localização de destino não estiver listada, IntuneMAMSaveLocationAccountDocument ou IntuneMAMSaveLocationOther deve ser utilizada. Se a localização contiver dados organizacionais acedidos com a conta gerida (ou seja, O serviço cloud LOB para armazenar dados organizacionais) IntuneMAMSaveLocationAccountDocument deve ser utilizado. Se a localização não contiver dados organizacionais, a IntuneMAMSaveLocationOther localização deverá ser utilizada.

Lidar com cenários open-from

Antes de importar dados de um novo armazenamento na cloud ou local, uma aplicação tem de marcar com a isOpenFromAllowedForLocation:withAccountId: API para saber se o administrador de TI permitiu a transferência de dados. Este método é chamado num IntuneMAMPolicy objeto. Os dados que estão a ser abertos no local não precisam de ser verificados com esta 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 de receção for uma conta não gerida sem identidade, nil pode ser transmitida para policyForAccountId:. Mesmo que os dados recebidos não sejam dados organizacionais, isOpenFromAllowedForLocation:withAccountId: ainda deve ser chamado. A conta proprietária dos dados ainda pode ter políticas que restringem os destinos das transferências de dados de saída.

O isOpenFromAllowedForLocation:withAccountId: método utiliza dois argumentos. O primeiro argumento é um valor de enumeração do tipo IntuneMAMOpenLocation definido em IntuneMAMPolicy.h. O segundo argumento é o UPN da identidade que detém a localização. Se o proprietário não for conhecido, nil pode ser utilizado.

Localizações abertas suportadas

O Intune SDK de MAM fornece suporte para as seguintes localizações abertas definidas em IntuneMAMPolicy.h:

  • IntuneMAMOpenLocationOneDriveForBusiness- Esta localização representa OneDrive for Business localizações. A identidade associada à conta do OneDrive deve ser transmitida como segundo argumento.
  • IntuneMAMOpenLocationSharePoint- Esta localização representa o SharePoint online e Microsoft Entra localizações do SharePoint de Autenticação Moderna Híbrida no local. A identidade associada à conta do SharePoint deve ser transmitida como segundo argumento.
  • IntuneMAMOpenLocationCamera - Esta localização representa apenas novas imagens tiradas pela câmara. Uma vez que não existe nenhuma conta associada à câmara iOS, apenas nil deve ser transmitida como segundo argumento quando esta localização é utilizada. Para abrir dados da Biblioteca de Fotografias do iOS, utilize IntuneMAMOpenLocationPhotos.
  • IntuneMAMOpenLocationPhotos - Esta localização representa apenas imagens existentes na Biblioteca de Fotografias do iOS. Uma vez que não existe nenhuma conta associada à Biblioteca de Fotografias do iOS, só nil deve ser transmitida como o segundo argumento quando esta localização é utilizada. Para abrir imagens tiradas diretamente da câmara iOS, utilize IntuneMAMOpenLocationCamera.
  • IntuneMAMOpenLocationLocalStorage - Esta localização representa o armazenamento de sandbox de aplicações que só pode ser acedido pela aplicação. Esta localização não deve ser utilizada para abrir ficheiros a partir de um seletor de ficheiros ou processar ficheiros recebidos a partir de um openURL. Se uma identidade puder ser associada ao armazenamento app-sandbox, deve ser transmitida como o segundo argumento. Se não existir nenhuma identidade, nil deve ser transmitida. Por exemplo, uma aplicação pode utilizar contentores de armazenamento app-sandbox separados para contas diferentes. Neste caso, a conta que detém o contentor a ser acedido deve ser utilizada como segundo argumento.
  • IntuneMAMOpenLocationAccountDocument - Esta localização representa qualquer localização da organização não listada anteriormente que possa ser associada a uma conta gerida. A conta da organização associada à localização deve ser transmitida como segundo argumento. Por exemplo, transferir uma fotografia do serviço cloud LOB de uma organização associada à conta da organização.
  • IntuneMAMOpenLocationOther - Esta localização representa qualquer localização não organizacional, não listada anteriormente ou qualquer localização desconhecida. Se uma conta estiver associada à localização, deve ser transmitida como o segundo argumento. Caso contrário, nil deve ser utilizado.
Considerações especiais sobre localizações abertas

A IntuneMAMOpenLocationLocalStorage localização só deve ser utilizada para o armazenamento de sandbox de aplicações que pode ser acedido pela aplicação. Para verificar se um ficheiro pode ser aberto a partir do armazenamento de dispositivos iOS através de um seletor de ficheiros ou de outro método em que os dados também estão acessíveis na aplicação Ficheiros, IntuneMAMOpenLocationOther deve ser utilizado.

Se a localização de destino não estiver listada, IntuneMAMOpenLocationAccountDocument ou IntuneMAMOpenLocationOther deve ser utilizada. Se a localização contiver dados organizacionais que são acedidos com a conta gerida. Por exemplo, deve ser utilizado o serviço cloud LOB para armazenar dados IntuneMAMOpenLocationAccountDocument organizacionais. Se a localização não contiver dados organizacionais, a IntuneMAMSaveLocationOther localização deverá ser utilizada.

Processar NSItemProviders e Ficheiros recebidos

Para processar NSItemProviders recebidos de uma extensão de partilha, o IntuneMAMPolicymétodo 's canReceiveSharedItemProvider: ' pode ser utilizado em vez de isOpenFromAllowedForLocation:withAccountId:. O canReceiveSharedItemProvider: método utiliza um NSItemProvider e devolve se é permitido pelo administrador de TI ser aberto na IntuneMAMPolicy conta do objeto. O item tem de ser carregado antes de chamar este método. Por exemplo, ao chamar loadItemForTypeIdentifier:options:completionHandler. Este método também pode ser chamado a partir do processador de conclusão transmitido para a chamada de carga NSItemProvider.

Para processar ficheiros recebidos, o IntuneMAMPolicymétodo de canReceiveSharedFile: entrada pode ser utilizado em vez de isOpenFromAllowedForLocation:withAccountId:. O canReceiveSharedFile: método utiliza um caminho NSString e devolve se é permitido pelo administrador de TI ser aberto na IntuneMAMPolicy conta do objeto.

Partilhar alerta bloqueado

Uma função auxiliar de IU pode ser utilizada quando a isSaveToAllowedForLocation:withAccountId: API ou isOpenFromAllowedForLocation:withAccountId: é chamada e encontrada para bloquear a ação guardar/abrir. Se a aplicação quiser notificar o utilizador de que a ação foi bloqueada, pode chamar a showSharingBlockedMessage API definida em IntuneMAMUIHelper.h para apresentar uma vista de alerta com uma mensagem genérica.

Partilhar Dados através de UIActivityViewController

A partir da versão 8.0.2, o SDK da Aplicação Intune pode filtrar UIActivityViewController ações para que apenas Intune localizações de partilha geridas estejam disponíveis para selecionar. Este comportamento será controlado pela política de transferência de dados da aplicação.

Ações "Copiar Para"

Ao partilhar documentos através do e UIDocumentInteractionController, o UIActivityViewController iOS apresenta as ações "Copiar para" para cada aplicação que suporta a abertura do documento que está a ser partilhado. As aplicações declaram os tipos de documento que suportam através da CFBundleDocumentTypes definição no respetivo ficheiro Info.plist. Este tipo de partilha deixará de estar disponível se a política proibir a partilha para aplicações não geridas. Como substituição, o utilizador terá de adicionar uma extensão de Ação não IU à respetiva aplicação e ligá-la ao SDK da Aplicação Intune. A extensão Ação é apenas um stub. O SDK implementará o comportamento de partilha de ficheiros. Siga os passos abaixo:

  1. A aplicação tem de ter, pelo menos, um schemeURL definido no respetivo Info.plist CFBundleURLTypes , juntamente com o respetivo -intunemam equivalente. Por exemplo:

    <key>CFBundleURLSchemes</key>
     <array>
     	<string>launch-com.contoso.myapp</string>
     	<string>launch-com.contoso.myapp-intunemam</string>
     </array>
    
  2. Tanto a aplicação como a extensão de ação têm de partilhar pelo menos um Grupo de Aplicações e o Grupo de Aplicações tem de estar listado na AppGroupIdentifiers matriz nos dicionários da aplicação e do IntuneMAMSettings da extensão.

  3. Tanto a aplicação como a extensão de ação têm de ter a capacidade Partilha de Keychain e partilhar o com.microsoft.intune.mam grupo keychain.

  4. Atribua o nome "Abrir em" à extensão de ação, seguido do nome da aplicação. Localize o ficheiro Info.plist conforme necessário.

  5. Forneça um ícone de modelo para a extensão, conforme descrito pela documentação do programador da Apple. Em alternativa, a ferramenta IntuneMAMConfigurator pode ser utilizada para gerar estas imagens a partir da aplicação .app diretório. Para isso, execute:

    IntuneMAMConfigurator -generateOpenInIcons /path/to/app.app -o /path/to/output/directory
    
  6. Em IntuneMAMSettings, no ficheiro Info.plist da extensão, adicione uma definição booleana chamada OpenInActionExtension com o valor SIM.

  7. Configure o NSExtensionActivationRule para suportar um único ficheiro e todos os tipos do prefixo da CFBundleDocumentTypes aplicação com com.microsoft.intune.mam. Por exemplo, se a aplicação suportar 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 extensões de Partilha e Ação existentes

Se a sua aplicação já contiver extensões de Partilha ou Ação, NSExtensionActivationRule terá de modificar as mesmas para permitir os tipos de Intune. Para cada tipo suportado pela extensão, adicione um tipo adicional com com.microsoft.intune.mamo prefixo . 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 utilizada para adicionar os tipos de Intune à regra de ativação. Se a regra de ativação existente utilizar as constantes de cadeia predefinidas. Por exemplo, NSExtensionActivationSupportsFileWithMaxCount, NSExtensionActivationSupportsText, etc., a sintaxe predicado pode ficar bastante complexa. A ferramenta IntuneMAMConfigurator também pode ser utilizada para converter a regra de ativação das constantes de cadeia para uma cadeia de predicado ao adicionar os tipos de Intune.

Como deve ser a IU

IU antiga:

Partilhar dados – IU de partilha antiga do iOS

Nova IU:

Partilhar dados – nova IU de partilha do iOS

Ativar a configuração de aplicações direcionadas para as suas aplicações iOS

A configuração de MAM direcionada (também conhecido como configuração da aplicação MAM) permite que uma aplicação receba dados de configuração através do SDK Intune. O formato e as variantes destes dados têm de ser definidos e comunicados aos clientes Intune pelo proprietário/programador da aplicação.

Intune administradores podem direcionar e implementar dados de configuração através do centro de administração do Microsoft Intune e Intune API do Graph. A partir da versão 7.0.1 do SDK da Aplicação Intune para iOS, as aplicações que participam na configuração de MAM direcionada podem ser fornecidas dados de configuração de MAM direcionados através do Serviço MAM. Os dados de configuração da aplicação são enviados através do nosso Serviço MAM diretamente para a aplicação em vez de através do canal MDM. O SDK da Aplicação Intune fornece uma classe para aceder aos dados obtidos a partir destas consolas. Os seguintes itens são pré-requisitos:

  • A aplicação tem de ser inscrita no serviço Intune MAM antes de aceder à IU de configuração de MAM direcionada. Para obter mais informações, veja Receber política de proteção de aplicações.

  • Inclua IntuneMAMAppConfigManager.h no ficheiro de origem da sua aplicação.

  • Chame [[IntuneMAMAppConfigManager instance] appConfigForAccountId:] para obter o Objeto de Configuração da Aplicação.

  • Chame o seletor adequado no IntuneMAMAppConfig objeto. Por exemplo, se a chave da aplicação for uma cadeia, deverá utilizar stringValueForKey ou allStringsForKey. Veja IntuneMAMAppConfig.h para obter uma descrição detalhada sobre os valores devolvidos e as condições de erro.

Para obter mais informações sobre as capacidades do API do Graph, veja Referência do API do Graph.

Para obter mais informações sobre como criar uma política de configuração de aplicações direcionadas para MAM no iOS, veja a secção sobre a configuração da aplicação de MAM direcionada em Como utilizar Microsoft Intune políticas de configuração de aplicações para iOS/iPadOS.

Telemetria

Por predefinição, o SDK da Aplicação Intune para iOS recolhe telemetria sobre os seguintes tipos de eventos:

  • Iniciação da aplicação: para ajudar a Microsoft Intune saber mais sobre a utilização de aplicações com MAM ativada por tipo de gestão (MAM com MDM, MAM sem inscrição MDM, etc.).

  • Chamadas de inscrição: para ajudar Microsoft Intune saber mais sobre a taxa de sucesso e outras métricas de desempenho das chamadas de inscrição iniciadas a partir do lado do cliente.

  • Intune ações: para ajudar a diagnosticar problemas e garantir Intune funcionalidade, recolhemos informações sobre Intune ações do SDK.

Observação

Se optar por não enviar dados telemétricos do SDK da Aplicação Intune para Microsoft Intune a partir da sua aplicação móvel, tem de desativar Intune captura de telemetria do SDK da Aplicação. Defina a propriedade MAMTelemetryDisabled como SIM no dicionário IntuneMAMSettings.

Intenções da Siri

Se a sua aplicação se integrar com a Siri Intents ou fizer Doações de Intenções da Siri, certifique-se de que lê os comentários para areSiriIntentsAllowed obter IntuneMAMPolicy.h instruções sobre como suportar este cenário.

Observação

No iOS 16 e superior, está disponível uma nova arquitetura de sistema de Intenções de Aplicação para a criação de Intenções da Aplicação Swift. As aplicações que implementam uma Intenção de Aplicação devem primeiro marcar a areSiriIntentsAllowed propriedade no objeto IntuneMAMPolicy do utilizador.

Clips de Aplicações

Se a sua aplicação incluir um destino de clip de aplicação, certifique-se de que verifica se não são apresentados dados geridos no clip da aplicação. O clip da aplicação deve ser considerado uma localização não gerida. A integração do SDK nos Clips de Aplicações não é atualmente suportada.

Impressão

Se a sua aplicação implementar a impressão e fornecer uma ação de impressão personalizada num menu personalizado, certifique-se de que utiliza UIPrintInteractionController.isPrintingAvailable() para determinar se deve adicionar a ação de impressão ao menu personalizado.

Bloqueio de captura de ecrã

Para aplicações que tenham sido atualizadas para v19.7.6 ou posterior para Xcode 15 e v20.2.1 ou posterior para xcode 16 do SDK, o bloco de captura de ecrã será aplicado se tiver configurado Send Org data to other apps um valor diferente de "Todas as aplicações". Pode configurar a definição da política de configuração da aplicação "com.microsoft.intune.mam.screencapturecontrol = Desativado" se pretender permitir a captura de ecrã para os seus dispositivos iOS.

Notificações

Se a sua aplicação receber notificações, certifique-se de que lê os comentários para notificationPolicy obter IntuneMAMPolicy.h instruções sobre como suportar este cenário. Recomenda-se que as aplicações se registem para IntuneMAMPolicyDidChangeNotification o descrito no IntuneMAMPolicyManager.he comuniquem UNNotificationServiceExtension este valor ao mesmo através do keychain.

Extensões Web do Safari

Se a sua aplicação tiver uma extensão Web do Safari e suportar o envio de dados entre a extensão e a aplicação principal, em alguns cenários, a aplicação poderá ter de suportar o bloqueio dos dados. Para bloquear os dados, na aplicação principal, chame a isAppSharingAllowed API em e, em IntuneMAMPolicy.hseguida, bloqueie a extensão Web.

Publicar script de compilação

A ferramenta de linha de comandos IntuneMAMFrameworkPatcher já não tem de ser executada como o último passo do processo de compilação da aplicação. No entanto, esta ferramenta está disponível como parte do SDK da Aplicação Intune para iOS no GitHub.

Importante

A partir da versão 17.7.1 do SDK Intune MAM, este passo já não é necessário. A ferramenta de linha de comandos IntuneMAMFrameworkPatcher já não tem de ser executada.

Utilização da linha de comandos

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

Parâmetros:

  • i, r, v: este parâmetro permite-lhe optar por instalar, remover ou verificar o Intune Patcher do MAM Framework para o processo de compilação da aplicação.
  • path path: deve ser a raiz do diretório .app da aplicação.
  • resign: a resign opção indica à ferramenta para renunciar aos binários que tinham uma assinatura válida antes de aplicar patches ao binário. Esta opção deve ser utilizada se o projeto incluir dependências de arquitetura ou plug-ins com a opção Incorporar e Assinar , mesmo quando executado antes da assinatura final da aplicação ou se a ferramenta for executada após a assinatura final da aplicação.
  • verbose: a verbose opção fará com que a ferramenta produza informações sobre cada binário que foi corrigido.

Outras utilizações:

  • Remova o patch:

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

  • Verifique o patch:

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

Script de exemplo:

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

Para obter mais informações sobre como começar e transferir o SDK, veja Introdução ao SDK da Aplicação Microsoft Intune.

Critérios de Saída

Validar guardar em/abrir a partir de restrições

Ignore se não implementou controlos guardar como e abrir a partir de.

Refamiliarize-se em todos os cenários em que a sua aplicação pode guardar dados em armazenamentos na cloud ou localizações locais e abrir dados a partir de armazenamentos na cloud ou localizações locais.

Para simplificar, estes testes pressupõem que a sua aplicação inclui apenas suporte para guardar e abrir dados de OneDrive for Business a partir de uma única localização na aplicação. No entanto, tem de validar todas as combinações: cada localização de gravação suportada em todos os locais onde a sua aplicação permite guardar dados e todas as localizações abertas suportadas em todos os locais onde a sua aplicação permite abrir dados.

Para estes testes, instale a sua aplicação, integre-a com o SDK e inicie sessão com uma conta gerida antes de iniciar o teste.

Além disso:

  • Defina a política da conta gerida como:
    • "Enviar dados da organização para outras aplicações" para "Aplicações geridas por políticas".
    • "Receber dados de outras aplicações" para "Aplicações geridas por políticas".
Cenário Pré-condições Etapas
Guardar em, totalmente permitido Política "Guardar cópias dos dados da organização" definida como "Permitir" - Navegue para onde a sua aplicação pode guardar dados para OneDrive for Business.
- Tente guardar um documento no OneDrive for Business, na mesma conta gerida com sessão iniciada na sua aplicação.
- Confirme que a opção guardar é permitida.
Guardar em, excluído - Política "Guardar cópias dos dados da organização" definida como "Bloquear"
- Política "Permitir que o utilizador guarde cópias nos serviços selecionados" definida como "OneDrive for Business" apenas
- Navegue para onde a sua aplicação pode guardar dados para OneDrive for Business.
- Tente guardar um documento no OneDrive for Business, na mesma conta gerida com sessão iniciada na sua aplicação.
- Confirme que a opção guardar é permitida.
- Se a sua aplicação o permitir, tente guardar o ficheiro numa localização de armazenamento na nuvem diferente e confirme que está bloqueado.
Guardar em, bloqueado Política "Guardar cópias dos dados da organização" definida como "Bloquear" - Navegue para onde a sua aplicação pode guardar dados para OneDrive for Business.
- Tente guardar um documento no OneDrive for Business, na mesma conta gerida com sessão iniciada na sua aplicação.
- Confirme que a gravação está bloqueada.
- Se a sua aplicação o permitir, tente guardar o ficheiro numa localização de armazenamento na nuvem diferente e confirme que está bloqueado.
Aberto a partir de, totalmente permitido Política "Abrir dados em documentos da organização" definida como "Permitir" - Navegue para onde a sua aplicação pode abrir dados a partir de OneDrive for Business.
- Tente abrir um documento a partir de OneDrive for Business, a partir da mesma conta gerida com sessão iniciada no armazenamento da sua aplicação.
- Confirme que a abertura é permitida.
Aberto a partir de, excluído - Política "Abrir dados em documentos da organização" definida como "Bloquear"
- Política "Permitir que os utilizadores abram dados de serviços selecionados" definida como "OneDrive for Business" apenas
- Navegue para onde a sua aplicação pode abrir dados a partir de OneDrive for Business.
- Tente abrir um documento a partir de OneDrive for Business, a partir da mesma conta gerida com sessão iniciada no armazenamento da sua aplicação.
- Confirme que a abertura é permitida.
- Se a aplicação o permitir, tente abrir outro ficheiro a partir de uma localização de armazenamento na cloud diferente e confirme que está bloqueada.
Abrir a partir de, bloqueado Política "Abrir dados em documentos da organização" definida como "Bloquear" - Navegue para onde a sua aplicação pode abrir dados a partir de OneDrive for Business.
- Tente abrir um documento a partir de OneDrive for Business, a partir da mesma conta gerida com sessão iniciada no armazenamento da sua aplicação.
- Confirme que a abertura está bloqueada.
- Se a aplicação o permitir, tente abrir outro ficheiro a partir de uma localização de armazenamento na cloud diferente e confirme que está bloqueada.

Validar ações "Copiar Para"

Ignore se não implementou as ações "Copiar Para".

Para simplificar, estes testes pressupõem que a sua aplicação inclui apenas suporte para copiar dados para aplicações do Microsoft Office, como o Microsoft Word, Excel, etc. No entanto, tem de validar todas as combinações: todas as localizações de cópia para locais suportadas em cada local para onde a sua aplicação permite copiar dados.

Para estes testes, instale a sua aplicação, integre-a com o SDK e inicie sessão com uma conta gerida antes de iniciar o teste.

Além disso:

  • Foram concluídos todos os passos de integração das ações "Copiar Para" com uma Extensão de Ação para a Microsoft Word e compilar e executar a aplicação com êxito.
  • Defina a política da conta gerida como:
    • "Enviar dados da organização para outras aplicações" para "Aplicações geridas por políticas".
Cenário Pré-condições Etapas
Selecionar aplicações a isentar, Nenhuma Política "Enviar dados da organização para outras aplicações" definida como "Aplicações geridas por políticas" - Navegue para onde a sua aplicação pode copiar dados para o Microsoft Word e inicie a opção de partilha para esses dados.
- Confirme em vez de ver "Copiar para Word" como uma opção, pode ver "Abrir no Word".
- Prima "Abrir no Word" e confirme se o documento foi copiado e visualizado com êxito, dado Word também tem sessão iniciada com a mesma conta gerida.

Validar ações de Impressão

Ignore se não implementou a Impressão.

Para este teste, instale a aplicação, integre-a com o SDK e inicie sessão com uma conta gerida antes de iniciar o teste.

Além disso:

  • Foram concluídos todos os passos de integração em Imprimir e compilar e executar a aplicação com êxito.
  • A sua aplicação já implementa alertas/itens de ação para processar o caso quando a impressão não é permitida pelo administrador de TI da APLICAÇÃO. Neste teste, partindo do princípio de que a sua aplicação irá pedir um alerta aos utilizadores finais quando a impressão for bloqueada.
Cenário Etapas
Imprimir dados da organização, Bloquear - Navegue para onde a sua aplicação pode ver dados e inicie a opção de partilha para esses dados.
- Prima "Imprimir".
- Confirme que é apresentado um alerta de bloqueio e que a impressão não é permitida.
Imprimir dados da organização, Permitir - Navegue para onde a sua aplicação pode ver dados e inicie a opção de partilha para esses dados.
- Prima "Imprimir".
- Confirme que a vista "Imprimir" é apresentada e pode selecionar uma impressora e concluir a ação com êxito.

Validar a receção de Configurações de Aplicações

Ignore se não tiver ativado a configuração da aplicação de destino para as suas aplicações iOS.

Intune é responsável por fornecer os valores da política de configuração da aplicação à sua aplicação. Posteriormente, a sua aplicação é responsável por utilizar esses valores para alterar o comportamento ou a IU dentro da aplicação. Os testes completos ponto a ponto devem abranger ambos os componentes.

Para validar que Intune está a fornecer corretamente a política de configuração de aplicações:

  1. Configure uma política de configuração de aplicações direcionada para a sua aplicação e implementada na sua conta de teste.
  2. Inicie sessão na sua aplicação com a sua conta de teste.
  3. Navegue pela sua aplicação para exercer cada caminho de código que chama IntuneMAMAppConfigManagerde appConfigForIdentity.
    • Registar os resultados das chamadas para appConfigForIdentity é uma forma simples de validar as definições que são entregues. No entanto, uma vez que os administradores podem introduzir quaisquer dados para as definições de configuração da aplicação, tenha cuidado para não registar quaisquer dados de utilizador privado.
  4. Veja Validar a política de configuração da aplicação aplicada.

Uma vez que as configurações da aplicação são específicas da aplicação, apenas o utilizador sabe como validar a forma como a sua aplicação deve alterar o comportamento ou a IU para cada definição de configuração da aplicação.

Ao testar, considere o seguinte:

  • Garantir que todos os cenários são abrangidos pela criação de diferentes políticas de configuração de aplicações de teste com todos os valores suportados pela sua aplicação.
  • Validar a lógica de resolução de conflitos da aplicação ao criar várias políticas de configuração de aplicações de teste com valores diferentes para cada definição.

Próximas etapas

Se seguiu este guia por ordem e concluiu todos os Critérios de Saída acima, parabéns, a sua aplicação está agora totalmente integrada no SDK da Aplicação Intune e pode impor políticas de proteção de aplicações! Marcar outras funcionalidades importantes de participação de aplicações, como a Fase 5: Identidade Múltipla, Fase 6: Suporte de Acesso Condicional da Proteção de Aplicações e Fase 7: funcionalidades de vista Web para integrá-las na sua aplicação.

Proteção de aplicativos é agora um cenário essencial para a sua aplicação. Continue a referir-se a este guia e ao Apêndice à medida que continua a desenvolver a sua aplicação.