Compartilhar via


Enlaces Xamarin do SDK da Aplicação Microsoft Intune

Importante

Xamarin. Forms evoluiu para a IU da Aplicação multiplataformas (MAUI) do .NET. Os projetos Xamarin existentes devem ser migrados para o .NET MAUI. Para obter mais informações sobre como atualizar projetos Xamarin para .NET, veja a documentação Atualizar do Xamarin para o .NET & .NET MAUI .

O suporte do Xamarin terminou a 1 de maio de 2024 para todos os SDKs Xamarin, incluindo Xamarin. Enlaces Xamarin do SDK da Aplicação Forms e Intune. Para obter Intune suporte em plataformas Android e iOS, veja SDK da Aplicação Intune para .NET MAUI – Androide SDK da Aplicação Microsoft Intune para MAUI.iOS.

Visão Geral

Os Enlaces Xamarin do SDK da Aplicação Intune permitem Intune política de proteção de aplicações em aplicações iOS e Android criadas com Xamarin. Os enlaces permitem aos programadores criar facilmente Intune funcionalidades de proteção de aplicações na respetiva aplicação baseada em Xamarin.

Os Enlaces Xamarin do SDK da Aplicação Microsoft Intune permitem-lhe incorporar Intune políticas de proteção de aplicações (também conhecidas como políticas de APLICAÇÃO ou MAM) nas suas aplicações desenvolvidas com Xamarin. Uma aplicação com MAM ativada é uma que está integrada no SDK da Aplicação Intune. Os administradores de TI podem implementar políticas de proteção de aplicações na sua aplicação móvel quando Intune gere ativamente a aplicação.

O que é suportado?

Máquinas para programadores

  • Windows (versão 15.7 e superior do Visual Studio)
  • macOS

Plataformas de aplicações móveis

  • Android
  • iOS

Intune cenários de Gestão de Aplicações Móveis

  • Intune MAM
  • Intune dispositivos inscritos na MDM
  • Dispositivos inscritos em EMM de terceiros

As aplicações Xamarin criadas com os Enlaces Xamarin do SDK da Aplicação Intune podem agora receber Intune políticas de proteção de aplicações em dispositivos inscritos Intune gestão de dispositivos móveis (MDM) e dispositivos não inscritos.

Pré-requisitos

Reveja os termos de licenciamento. Imprima e retenha uma cópia dos termos de licenciamento dos seus registos. Ao transferir e utilizar os Enlaces Xamarin do SDK da Aplicação Intune, concorda com esses termos de licenciamento. Se não os aceitar, não utilize o software.

O SDK Intune baseia-se na Biblioteca de Autenticação da Microsoft (MSAL) para os seus cenários de autenticação e iniciação condicional, que exigem que as aplicações sejam configuradas com Microsoft Entra ID.

Se a sua aplicação já estiver configurada para utilizar a MSAL e tiver o seu próprio ID de cliente personalizado utilizado para autenticar com Microsoft Entra ID, certifique-se de que são seguidos os passos para conceder permissões de Aplicação Xamarin ao serviço Intune Mobile Application Management (MAM). Utilize as instruções na secção "Conceder acesso à sua aplicação ao serviço de Gestão de Aplicações Móveis Intune" da introdução ao guia do SDK Intune.

Considerações sobre segurança

Para impedir potenciais ataques de spoofing, divulgação de informações e elevação de privilégios:

  • Certifique-se de que o desenvolvimento de aplicações Xamarin é realizado numa estação de trabalho segura.
  • Certifique-se de que os enlaces provêm de uma origem válida da Microsoft:
  • Configure a configuração do NuGet para o seu projeto confiar em pacotes NuGet assinados e não modificados. Veja instalar pacotes assinados para obter mais informações.
  • Proteja o diretório de saída que contém a aplicação Xamarin. Considere utilizar um diretório ao nível do utilizador para a saída.

Ativar Intune políticas de proteção de aplicações na sua aplicação móvel iOS

Importante

Intune lança regularmente atualizações para o SDK da Aplicação Intune. Marcar regularmente os Enlaces Xamarin do SDK da Aplicação Intune para atualizações e incorporar no ciclo de lançamento de desenvolvimento de software para garantir que as suas aplicações suportam as definições mais recentes da Política de Proteção de Aplicações.

  1. Adicione o Microsoft.Intune. MAM. Pacote NuGet Xamarin.iOS para o seu projeto Xamarin.iOS.

  2. Siga os passos gerais necessários para integrar o SDK da Aplicação Intune numa aplicação móvel iOS. Pode começar com o passo 3 das instruções de integração do Guia para Programadores do SDK da Aplicação Intune para iOS. Pode ignorar o passo final nessa secção de execução do IntuneMAMConfigurator, uma vez que esta ferramenta está incluída na Microsoft. Intune. MAM. Pacote Xamarin.iOS e será executado automaticamente no momento da criação. Importante: ativar keychain partilha para uma aplicação é ligeiramente diferente no Visual Studio a partir do Xcode. Abra o plist de Elegibilidades da aplicação e certifique-se de que a opção "Ativar Keychain" está ativada e que os grupos de partilha keychain adequados são adicionados nessa secção. Em seguida, certifique-se de que a lista de Elegibilidades está especificada no campo "Elegibilidades Personalizadas" das opções de "Assinatura de Pacotes iOS" do projeto para todas as combinações de Configuração/Plataforma adequadas.

  3. Assim que os enlaces forem adicionados e a aplicação estiver configurada corretamente, a aplicação pode começar a utilizar o Intune APIs do SDK. Para tal, tem de incluir o seguinte espaço de nomes:

    using Microsoft.Intune.MAM;
    
  4. Para começar a receber políticas de proteção de aplicações, a sua aplicação tem de se inscrever no serviço Intune MAM. Se a sua aplicação não utilizar a Biblioteca de Autenticação da Microsoft (MSAL) para autenticar utilizadores e quiser que o SDK de Intune processe a autenticação, a sua aplicação deve fornecer o UPN do utilizador ao método LoginAndEnrollAccount do IntuneMAMEnrollmentManager:

     IntuneMAMEnrollmentManager.Instance.LoginAndEnrollAccount([NullAllowed] string identity);
    

    As aplicações podem passar nulas se o UPN do utilizador for desconhecido no momento da chamada. Neste caso, será pedido aos utilizadores que introduzam o respetivo endereço de e-mail e palavra-passe.

    Se a sua aplicação já utilizar a MSAL para autenticar utilizadores, pode configurar uma experiência de início de sessão único (SSO) entre a aplicação e o SDK Intune. Primeiro, terá de substituir as predefinições de Microsoft Entra utilizadas pelo SDK Intune com as da sua aplicação. Pode fazê-lo através do dicionário IntuneMAMSettings no info.plist da aplicação, conforme mencionado no Guia para Programadores do SDK da Aplicação Intune para iOS ou pode fazê-lo em código através do Microsoft Entra ID substituir propriedades da classe IntuneMAMSettings. A abordagem Info.plist é recomendada para aplicações cujas definições MSAL são estáticas, enquanto as propriedades de substituição são recomendadas para aplicações que determinam esses valores no runtime. Assim que todas as definições do SSO tiverem sido configuradas, a sua aplicação deve fornecer o UPN do utilizador ao método RegisterAndEnrollAccount do IntuneMAMEnrollmentManager depois de ter sido autenticado com êxito:

    IntuneMAMEnrollmentManager.Instance.RegisterAndEnrollAccount(string identity);
    

    As aplicações podem determinar o resultado de uma tentativa de inscrição ao implementar o método EnrollmentRequestWithStatus numa subclasse do IntuneMAMEnrollmentDelegate e ao definir a propriedade Delegate do IntuneMAMEnrollmentManager para uma instância dessa classe.

    Após uma inscrição bem-sucedida, as aplicações podem determinar o UPN da conta inscrita (se anteriormente desconhecido) ao consultar a seguinte propriedade:

     string enrolledAccount = IntuneMAMEnrollmentManager.Instance.EnrolledAccount;
    

Ativar Intune políticas de proteção de aplicações na sua aplicação móvel Android

  1. Adicione o Microsoft.Intune. MAM. Pacote NuGet Xamarin.Android para o seu projeto Xamarin.Android.
    1. Para um Xamarin. Forms aplicação, adicione o microsoft.Intune. MAM. Remapper.Tasks Pacote NuGet também para o seu projeto Xamarin.Android.
  2. Siga os passos gerais necessários para integrar o SDK da Aplicação Intune numa aplicação móvel Android ao consultar este documento para obter detalhes adicionais.

Integração do Xamarin.Android

Pode encontrar uma descrição geral completa para integrar o SDK da Aplicação Intune no guia para programadores do SDK da Aplicação Microsoft Intune para Android. À medida que lê o guia e integra o SDK da Aplicação Intune com a sua aplicação Xamarin, as secções seguintes destinam-se a realçar as diferenças entre a implementação de uma aplicação Android nativa desenvolvida em Java e uma aplicação Xamarin desenvolvida em C#. Estas secções devem ser tratadas como suplementares e não podem servir de substituto para ler o guia na sua totalidade.

Remapper

A partir da versão 1.4428.1, o Microsoft.Intune.MAM.Remapper pacote pode ser adicionado a uma aplicação Xamarin.Android como ferramentas de compilação para efetuar substituições de serviços de classe, método e sistemas de MAM. Se o Remapper estiver incluído, as partes de substituição equivalentes à MAM das secções Métodos Mudados e Aplicação MAM serão executadas automaticamente quando a aplicação for criada.

Para excluir uma classe da MAM-ification pelo Remapper, a seguinte propriedade pode ser adicionada no ficheiro de projetos .csproj .

  <PropertyGroup>
    <ExcludeClasses>Semicolon separated list of relative class paths to exclude from MAM-ification</ExcludeClasses>
  </PropertyGroup>

Observação

Atualmente, o Remapper impede a depuração em aplicações Xamarin.Android. Recomenda-se a integração manual para depurar a sua aplicação.

Métodos com Nome Mudado

Em muitos casos, um método disponível na classe Android foi marcado como final na classe de substituição MAM. Neste caso, a classe de substituição MAM fornece um método com o mesmo nome (sufixo com MAM) que deve substituir. Por exemplo, ao derivar de MAMActivity, em vez de substituir OnCreate() e chamar base.OnCreate(), Activity tem de substituir OnMAMCreate() e chamar base.OnMAMCreate().

Aplicação MAM

A sua aplicação tem de definir uma Android.App.Application classe. Se integrar manualmente a MAM, tem de herdar de MAMApplication. Certifique-se de que a subclasse está devidamente decorada com o [Application] atributo e substitui o (IntPtr, JniHandleOwnership) construtor.

    [Application]
    class TaskrApp : MAMApplication
    {
    public TaskrApp(IntPtr handle, JniHandleOwnership transfer)
        : base(handle, transfer) { }

Observação

Um problema com os enlaces de MAM Xamarin pode fazer com que a aplicação falhe quando implementada no modo de Depuração. Como solução, o Debuggable=false atributo tem de ser adicionado à Application classe e o android:debuggable="true" sinalizador tem de ser removido do manifesto se tiver sido definido manualmente.

Ativar funcionalidades que requerem a participação da aplicação

Exemplo: Determinar se o PIN é necessário para a aplicação

MAMPolicyManager.GetPolicy(currentActivity).IsPinRequired;

Exemplo: Determinar o utilizador principal Intune

IMAMUserInfo info = MAMComponents.Get<IMAMUserInfo>();
return info?.PrimaryUser;

Exemplo: Determinar se é permitido guardar no dispositivo ou no armazenamento na cloud

MAMPolicyManager.GetPolicy(currentActivity).GetIsSaveToLocationAllowed(SaveLocation service, String username);

Registar-se para receber notificações do SDK

A aplicação tem de se registar para receber notificações do SDK ao criar um MAMNotificationReceiver e registá-lo no MAMNotificationReceiverRegistry. Isto é feito ao fornecer o recetor e o tipo de notificação pretendido em App.OnMAMCreate, como ilustra o exemplo abaixo:

public override void OnMAMCreate()
{
    // Register the notification receivers
    IMAMNotificationReceiverRegistry registry = MAMComponents.Get<IMAMNotificationReceiverRegistry>();
    foreach (MAMNotificationType notification in MAMNotificationType.Values())
    {
        registry.RegisterReceiver(new ToastNotificationReceiver(this), notification);
    }
    ...

Gestor de Inscrição de MAM

IMAMEnrollmentManager mgr = MAMComponents.Get<IMAMEnrollmentManager>();

Xamarin. integração do Forms

Para Xamarin.Forms aplicações, o Microsoft.Intune.MAM.Remapper pacote efetua automaticamente a substituição da classe MAM ao injetar MAM classes na hierarquia de classes de classes utilizadas Xamarin.Forms frequentemente.

Observação

O Xamarin. Forms integração tem de ser feita para além da integração Xamarin.Android detalhada acima. O Remapper comporta-se de forma diferente para o Xamarin. Forms aplicações, pelo que as substituições manuais de MAM ainda têm de ser efetuadas.

Assim que o Remapper for adicionado ao seu projeto, terá de efetuar as substituições equivalentes de MAM. Por exemplo, FormsAppCompatActivity e FormsApplicationActivity pode continuar a ser utilizado na sua aplicação, as substituições fornecidas para OnCreate e OnResume são substituídas pelos equivalentes OnMAMCreate de MAM e OnMAMResume respetivamente.

    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        protected override void OnMAMCreate(Bundle savedInstanceState)
        {
            base.OnMAMCreate(savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
            LoadApplication(new App());
        }

Se as substituições não forem efetuadas, poderá encontrar os seguintes erros de compilação até efetuar as substituições:

  • Erro CS0239 do Compilador. Este erro é geralmente visto neste formulário 'MainActivity.OnCreate(Bundle)': cannot override inherited member 'MAMAppCompatActivityBase.OnCreate(Bundle)' because it is sealed. Tal é esperado porque, quando o Remapper modifica a herança de classes Xamarin, serão criadas sealed determinadas funções e é adicionada uma nova variante de MAM para substituir.
  • Erro CS0507 do Compilador: este erro é normalmente visto neste formulário 'MyActivity.OnRequestPermissionsResult()' cannot change access modifiers when overriding 'public' inherited member .... Quando o Remapper altera a herança de algumas das classes Xamarin, determinadas funções de membro serão alteradas para public. Se substituir qualquer uma destas funções, terá de alterar os modificadores de acesso para que essas substituições também sejam public .

Observação

O Remapper escreve novamente uma dependência que o Visual Studio utiliza para a conclusão automática do IntelliSense. Por conseguinte, poderá ter de recarregar e reconstruir o projeto quando o Remapper for adicionado para o IntelliSense reconhecer corretamente as alterações.

Solução de problemas

  • Se encontrar um ecrã branco em branco na sua aplicação ao iniciar, poderá ter de forçar a execução das chamadas de navegação no thread main.
  • Os Enlaces Xamarin do SDK Intune não suportam aplicações que estejam a utilizar uma arquitetura de várias plataformas, como o MvvmCross, devido a conflitos entre classes MvvmCross e Intune MAM. Embora alguns clientes possam ter tido sucesso com a integração depois de moverem as suas aplicações para o Xamarin simples. Forms, não fornecemos orientações ou plug-ins explícitos para programadores de aplicações que utilizem o MvvmCross.

Aplicativo do Portal da Empresa

Os Enlaces Xamarin do SDK Intune dependem da presença da aplicação Portal da Empresa Android no dispositivo para ativar as políticas de proteção de aplicações. O Portal da Empresa obtém as políticas de proteção de aplicações do serviço Intune. Quando a aplicação inicializa, carrega a política e o código para impor essa política a partir do Portal da Empresa. O utilizador não precisa de ter sessão iniciada.

Observação

Quando a aplicação Portal da Empresa não está no dispositivo Android, uma aplicação gerida por Intune comporta-se da mesma forma que uma aplicação normal que não suporta Intune políticas de proteção de aplicações.

Para a proteção de aplicações sem inscrição de dispositivos, o utilizador não é obrigado a inscrever o dispositivo através da aplicação Portal da Empresa.

Suporte

Se a sua organização for um cliente Intune existente, trabalhe com o seu representante de suporte da Microsoft para abrir um pedido de suporte e criar um problema na página de problemas do GitHub. Ajudaremos assim que pudermos.