Microsoft Tunnel para MAM guia de desenvolvedor do SDK do iOS

Observação

Esse recurso está disponível quando você adiciona Microsoft Intune Plano 2 ou Microsoft Intune Suite como uma licença de complemento. Para obter mais informações, consulte Usar recursos de complemento do Intune Suite.

O Microsoft Tunnel para MAM guia de desenvolvedor do SDK do iOS é um recurso para desenvolvedores. Ele ajuda os desenvolvedores a integrar e configurar o SDK em um aplicativo iOS/iPadOS. Para obter uma visão geral do Microsoft Tunnel para MAM, acesse Microsoft Tunnel para MAM para iOS/iPadOS – Intune guia de administração.

Este guia aborda diferentes partes do processo de integração em seu projeto de aplicativo Xcode, incluindo a instalação das estruturas, a configuração do arquivo, as info.plist configurações de build, o compartilhamento de chaves e a implementação dos métodos delegados do SDK.

Esses componentes são críticos no desenvolvimento de um aplicativo iOS/iPadOS. Os desenvolvedores devem entender como navegar e configurar os componentes do SDK. Se você for novo no desenvolvimento de aplicativos Xcode e iOS/iPadOS, este guia poderá ajudar. Ele fornece uma visão geral de onde encontrar os diferentes componentes do SDK e como usar esses elementos em seus projetos de aplicativo.

Esse recurso aplica-se a:

  • iOS/iPadOS

O que está no Repositório SDK

O repositório SDK inclui as seguintes estruturas. Você adicionará essas estruturas ao seu projeto de aplicativo em uma etapa posterior:

  • crypto.xcframework
  • MCPCommon.xcframework
  • MCPCore.xcframework
  • MCPPluginUnencryptedFile.xcframework
  • MicrosoftTunnelApi.xcframework
  • MSTAPNextPluginSecurityOpenssl.xcframework
  • MSTAPNextPluginSwiftSupport.xcframework
  • MSTAPNextPluginVpnMicrosoftTunnel.xcframework
  • ssl.xcframework

Pré-requisitos

Para usar o SDK do iOS Microsoft Tunnel para MAM, os seguintes pré-requisitos são necessários:

  • Um computador macOS com xcode 14.0 ou mais recente instalado

  • Seu aplicativo iOS/iPadOS da linha de negócios (LOB) deve ser direcionado para iOS/iPadOS 14.0 ou mais recente.

  • Há dois SDKs do GitHub que você precisa baixar e integrar com seu aplicativo iOS no Xcode. Certifique-se de que os projetos a seguir são criados com êxito antes de continuar com o SDK do iOS Microsoft Tunnel para MAM:

    1. Intune SDK do Aplicativo para iOS (abre um site do GitHub): no mínimo, instale a versão 16.1.1.

      Neste site, examine também os Termos de Licença da Microsoft Intune SDK do Aplicativo para arquivo iOS.

      Para seus registros, mantenha uma cópia dos termos da licença. Ao baixar e usar o SDK do iOS Microsoft Tunnel para MAM, você concorda com os termos da licença. Se você não aceitar os termos da licença, não use o software.

    2. MSAL (Biblioteca de Autenticação da Microsoft) (abre um site do GitHub): no mínimo, instale a versão 1.2.3.

  • Instale e configure o SDK do iOS Microsoft Tunnel para MAM (abre um site do GitHub). Este SDK é o foco deste artigo.

    Importante

    Intune libera regularmente atualizações para o SDK do iOS Microsoft Tunnel para MAM. Regularmente, marcar o SDK do iOS Microsoft Tunnel para MAM para atualizações. Adicione essas atualizações ao seu ciclo de versão de desenvolvimento de software. Você deseja garantir que seus aplicativos dêem suporte às atualizações do Microsoft Tunnel Gateway e aprimoramentos de recursos.

Como funciona o SDK do iOS Microsoft Tunnel para MAM

O SDK do Tunnel for MAM iOS permite que aplicativos iOS/iPadOS estabeleçam uma conexão VPN "no aplicativo". A conexão VPN só existe dentro do aplicativo.

Para resumir, essas conexões VPN no aplicativo são:

  • Conexões VPN discretas, não no nível do dispositivo
  • Escopo somente para a camada de rede do aplicativo

Quando um aplicativo faz uma chamada de rede, o SDK intercepta a chamada de rede e estabelece a conexão VPN. Essa conexão VPN no aplicativo não é mostrada no aplicativo Configurações no dispositivo iOS/iPadOS.

Arquitetura: Túnel para SDK do iOS do MAM

A imagem a seguir descreve o fluxo de um aplicativo gerenciado integrado com êxito ao SDK do Tunnel for MAM iOS:

Desenho do Gateway do Microsoft Tunnel para MAM na arquitetura iOS/iPadOS no Microsoft Intune.

  1. Após o início inicial do aplicativo, uma conexão é feita usando o SDK Microsoft Tunnel para MAM para iOS.

  2. O túnel obtém um token de autenticação de dispositivo de Microsoft Entra ID.

    Se o dispositivo entrou em outro aplicativo habilitado para MAM, como Outlook, Edge ou aplicativo móvel microsoft 365, o dispositivo pode já ter um token de autenticação Microsoft Entra. Se um token de autenticação válido já existir, o token existente será usado.

  3. Acontece um TCP Connect, que é um Aperto de Mão TLS entre o token e o servidor de túnel.

  4. Se o UDP estiver habilitado no Gateway do Microsoft Tunnel, uma conexão de canal de dados usando DTLS será feita. Se o UDP estiver desabilitado, o TCP estabelecerá o canal de dados para o gateway tunnel.

    Para obter mais informações, acesse as anotações TCP e UDP na visão geral do Microsoft Tunnel – arquitetura.

  5. Quando o aplicativo móvel faz uma conexão com um recurso corporativo local:

    1. Um Microsoft Tunnel para MAM solicitações de API para se conectar ao recurso da empresa.
    2. Uma solicitação Web criptografada é criada e enviada para o recurso corporativo.

Tarefas Xcode

Esta seção lista e descreve as tarefas do Xcode que você deve concluir, incluindo:

  • Adicionar as estruturas e bibliotecas
  • Examine e atualize os seguintes recursos:
    • info.plistArquivo
    • Configurações de build
    • Compartilhamento de chaveiro
  • Use os exemplos para atualizar o projeto Xcode AppDelegate e adicionar um arquivo delegado do Microsoft Tunnel

Etapa 1 – Adicionar as estruturas e bibliotecas

As estruturas a seguir incluem as APIs necessárias e os métodos delegados para se comunicar com o Intune Microsoft Tunnel Gateway. Eles implementam os recursos de VPN do Microsoft Tunnel no aplicativo.

Para habilitar o SDK do Tunnel for MAM iOS, use as seguintes etapas:

  1. Baixe e extraia o SDK do Tunnel for MAM iOS para uma pasta em um computador macOS. Essa tarefa também está listada nos Pré-requisitos.

    Copie as nove estruturas a seguir para a pasta estruturas de projeto do aplicativo Xcode:

    • crypto.xcframework
    • MCPCommon.xcframework
    • MCPCore.xcframework
    • MCPPluginUnencryptedFile.xcframework
    • MicrosoftTunnelApi.xcframework
    • MSTAPNextPluginSecurityOpenssl.xcframework
    • MSTAPNextPluginSwiftSupport.xcframework
    • MSTAPNextPluginVpnMicrosoftTunnel.xcframework
    • ssl.xcframework
  2. No projeto Xcode, selecione seu projeto >de aplicativo Adicionar arquivos. No exemplo a seguir, os arquivos são adicionados a um projeto de aplicativo chamado "Flash Chat":

    Tela que mostra como adicionar arquivos ao projeto do aplicativo no Xcode em um dispositivo macOS.

  3. Em DESTINOS DO PROJETO>, selecione Criar Estruturas de Inserção> deFases. Adicione (+) todas as nove estruturas:

    Captura de tela que mostra estruturas de inserção no Xcode em um dispositivo macOS.

    O exemplo a seguir mostra todas as nove estruturas adicionadas:

    Captura de tela que mostra todas as estruturas do Microsoft Tunnel inseridas no Xcode em um dispositivo macOS.

  4. Em DESTINOS DO PROJETO>, selecione Criar Fases>Vincular Binário com Bibliotecas. Na lista, somente a MicrosoftTunnelApi.xcframework estrutura deve ser adicionada. Se outras estruturas estiverem listadas, remova-as usando o menos (-):

    Captura de tela que mostra como remover estruturas no Link Binary com Bibliotecas no Xcode em um dispositivo macOS.

Etapa 2 – Atualizar o info.plist arquivo

No para o projeto do info.plist aplicativo Xcode, confirme as seguintes configurações:

  • ID do pacote: verifique se a mesma ID do pacote listada no Microsoft Entra Registro de aplicativo para o aplicativo móvel iOS é a mesma ID do pacote em seu projeto de aplicativo:

    Para marcar a ID do pacote:

    1. Vá para PROJECT>TARGETS>General.

    2. SelecioneIdentificador de Pacote deIdentidade>:

      Captura de tela que mostra a seleção de projeto, destinos, geral e identidade para adicionar a ID do pacote no Xcode em um dispositivo macOS.

  • Tipos de URL: emDESTINOS DEPROJETO>, selecione Informações.

    Em Tipos de URL, confirme se a $(PRODUCT_BUNDLE_IDENTIFIER) variável está lá. Quando você integrou o SDK do aplicativo Intune para iOS com seu projeto de aplicativo (um pré-requisito necessário), essa variável deveria ter sido criada.

    Se a variável não estiver lá, você precisará adicioná-la:

    1. Usando o SDK do aplicativo Intune para iOS (um pré-requisito necessário), crie uma info.plist propriedade Array e nomeie-a como Esquemas de URL consultados.

      Adicione os itens de cadeia de caracteres listados no SDK do aplicativo Intune para o guia de desenvolvedor do iOS – Etapa 5. Essa etapa cria os esquemas de URL do SDK do MAM Intune.

      O exemplo a seguir mostra o info.plist usando esquemas de URL consultados:

      Captura de tela que mostra a seleção de valores de projetos, destinos, informações, esquemas de URL consultados no Xcode em um dispositivo macOS.

    2. Adicione a $(PRODUCT_BUNDLE_IDENTIFIER) variável.

      O exemplo a seguir mostra a $(PRODUCT_BUNDLE_IDENTIFIER) variável em Tipos de URL:

      Captura de tela que mostra a seleção de projetos, destinos, informações, tipos de URL no Xcode em um dispositivo macOS.

  • IntuneMAMSettings: confirme se as seguintes configurações do MSAL estão configuradas com os valores de registro de aplicativo Microsoft Entra apropriados:

    1. AcesseInformações deDESTINOS DO>PROJETO>.

    2. Selecione IntuneMAMSettings. Confirme suas configurações:

      • ADALAuthority: insira a ID do locatário Microsoft Entra, como https://login.microsoftonline.com/USE_YOUR_ Directory (tenant) ID.
      • ADALClientId: insira a ID do cliente do aplicativo.
      • ADALRedirectUri: Insira msauth.$(PRODUCT_BUNDLE_IDENTIFIER):/auth.

    Quando você integrou o SDK do aplicativo Intune para iOS com seu projeto de aplicativo (um pré-requisito necessário), essas configurações deveriam ter sido configuradas.

    Se essas configurações não estiverem configuradas, você precisará configurá-las. Para criar a propriedade Dicionário IntuneMAMSettings info.plist e as cadeias de caracteres associadas da Biblioteca de Autenticação da Microsoft, siga o guia de desenvolvedor Intune SDK do Aplicativo para iOS (um pré-requisito necessário) em Configurar as configurações do MSAL para Intune diretrizes do SDK do Aplicativo.

    O exemplo a seguir mostra esses valores configurados:

    Captura de tela que mostra a seleção de projeto, destinos, informações, IntuneMAMSetting em Xcode em um dispositivo macOS.

Etapa 3 – Desativar Bitcode

  1. Vá paraconfigurações de buildPROJECT>TARGETS>.
  2. Selecione Opções de> buildHabilitar Bitcode.
  3. Selecione Não.

Captura de tela que mostra a seleção de projetos, destinos, configurações de build, opções de build e desabilitação do código bit no Xcode em um dispositivo macOS.

Etapa 4 – Adicionar compartilhamento de keychain

O compartilhamento de chaveiro pode ou não estar presente no projeto do aplicativo. Se ela não estiver lá, adicione-a:

  1. Acesse Recursosde & de assinatura do PROJECT>TARGETS>.
  2. Selecione Compartilhamento de chave.
  3. Na lista Grupos de Chaves , adicione (+) com.microsoft.workplacejoin.

Captura de tela que mostra a seleção de projetos, destinos, Assinatura & Recursos, compartilhamento de keychain e a adição de um grupo keychain no Xcode em um dispositivo macOS.

Etapa 5 – Integrar o SDK ao seu aplicativo

✔️ Use o TunnelMAMTestApp2.xcproject aplicativo de exemplo.

Dependendo do aplicativo LOB e de sua implementação/finalidade pretendida, o uso do MicrosoftTunnelApi pode variar. Há algumas funcionalidades principais para saber, pois você está integrando o SDK ao seu aplicativo:

  • Todas as interações com o SDK do iOS Microsoft Tunnel para MAM são manipuladas por meio de um MicrosoftTunnelAPI objeto singleton.
  • O MicrosoftTunnelAPI objeto interage com o aplicativo usando um delegado que implementa uma MicrosoftTunnelDelegate interface. 

Para entender como escrever o delegado do Microsoft Tunnel e como inicializar o MicrosoftTunnelAPI, use o Microsoft Tunnel para MAM aplicativos de exemplo do SDK do iOS (abre um site do GitHub).

Nos aplicativos de exemplo, o appDelegate do projeto Xcode mostra:

  • Como lidar com retornos de chamada de URL MSAL
  • Como iniciar o processo de registro e inicialização necessário para o Túnel

Para começar, abra o TunnelMAMTestApp2.xcproject aplicativo de exemplo e examine o AppDelegate & MicrosoftTunnelDelegate no projeto do aplicativo.

Aplicativos de exemplo

✔️ Baixe em Microsoft Tunnel para MAM aplicativos de exemplo do SDK do iOS (abre um site do GitHub).

Esses aplicativos de exemplo podem ajudá-lo a começar e cobrir diferentes cenários.

Métodos MicrosoftTunnelAPI

O MicrosoftTunnelAPI inclui os seguintes métodos:

  • Initialize – Verifica e define as configurações de VPN, configura o log e configura a MicrosoftTunnelAPI instância.

  • Connect – Obtém a instância e habilita a MicrosoftTunnelAPI interceptação de tráfego de rede. Se a API não for uninitializada, um erro será mostrado.

  • Disconnect - Obtém a instância e desabilita a MicrosoftTunnelAPI interceptação de tráfego de rede. Se a API não for uninitializada, um erro será mostrado.

  • onTokenRequired –Opcional. Se seu aplicativo já se integrar ao IntuneMAM OU MSAL, você precisará implementar esse onTokenRequired método. Esse método usa o e o IntuneMAMSettings MSAL para obter um token de autenticação válido para se conectar ao Gateway do Microsoft Tunnel.

  • Logging – Há algumas classes de log diferentes, denotadas por k. Por exemplo, kLoggingClassConnect cria a saída de log no console do Xcode. Essas chaves de configuração de log podem ser adicionadas à configuração do delegado. Há alguns exemplos dessas classes de registro em log nos aplicativos de exemplo.

    • kLoggingClassInternal
    • kLoggingClassConnect
    • kLoggingClassPacket
    • kLoggingClassSocket
    • kLoggingClassHttp
    • kLoggingClassIntune
    • kLoggingClassMobileAccess
    • kLoggingSeverityDebug
    • kLoggingSeverityInfo
    • kLoggingSeverityWarn
    • kLoggingSeverityMinor
    • kLoggingSeverityMajor
    • kLoggingSeverityCrit

Aviso

Não use chaves de depuração em aplicativos implantados. As chaves podem fazer log e mostrar informações identificáveis pelo usuário e dados de segurança.

Fazer logon em aplicativos LOB iOS/iPadOS

A integração do SDK não habilita automaticamente o log. O desenvolvedor deve adicionar o código apropriado para implementar a estrutura de delegado de registro em log e fazer as chamadas de log apropriadas. A implementação específica varia dependendo do SDK e dos requisitos do desenvolvedor.

O desenvolvedor deve:

  • Verifique se eles não incluem dados pessoais identificáveis ou de usuário final do cliente em seu log. Eles devem estar em conformidade com as regulamentações de privacidade.

  • Consulte e trabalhe com a equipe de privacidade da empresa/organização da organização. A equipe de privacidade pode fornecer diretrizes sobre os dados apropriados que podem ser registrados e as formas apropriadas de lidar com dados confidenciais.

Aviso

Consulte o Microsoft Tunnel para MAM documentação de privacidade do SDK do iOS (abre um arquivo PDF no GitHub) para obter diretrizes específicas sobre registro em log e privacidade de dados.

MAM-Tunnel exemplo de método de delegado de log

Captura de tela que mostra um método de delegado de log do Microsoft Tunnel de exemplo no Xcode em um dispositivo macOS.

Captura de tela que mostra uma saída de log do Microsoft Tunnel de exemplo no Xcode em um dispositivo macOS.

Informações de privacidade do Microsoft Tunnel for Mobile Application Management

Sua privacidade é importante para nós. Examine a seguinte documentação online relacionada à privacidade:

Ao integrar o SDK do iOS Microsoft Tunnel para MAM em aplicativos móveis, os seguintes dados são coletados quando um desenvolvedor:

  • Habilita o módulo de telemetria MAM Intune no aplicativo

Os dados coletados podem incluir as seguintes áreas:

  • Microsoft Tunnel para MAM versão do SDK
  • Informações de usuário geradas pela Microsoft
    • ID do Dispositivo
  • Informações de hardware e software
    • Marca do dispositivo
    • Modelo do dispositivo
    • Versão do sistema operacional do dispositivo
  • Informações do administrador e da conta
    • ID do locatário Intune
    • Microsoft Entra ID do locatário
  • Medida de uso:
    • Inicialização de VPN
    • Eventos de conexão e desconexão de VPN
  • Informações do erro
    • Erros relacionados à falha de conexão VPN

Nenhuma informação identificável do usuário é coletada.

Importante

Como desenvolvedor, ao integrar o SDK, é importante não incluir nenhum dado identificável do usuário ao usar o código para endereçar e capturar mensagens em seu aplicativo.

Problemas conhecidos

Para problemas mais conhecidos, acesse o guia Microsoft Tunnel para MAM para iOS/iPadOS – Intune administrador.

Próximas etapas

Microsoft Tunnel para MAM para iOS/iPadOS – guia de administração Intune