Início Rápido: Inicialização do aplicativo cliente para SDKs de Proteção (C#)

Este início rápido mostrará como implementar o padrão de inicialização do cliente, usado pelo wrapper .NET do SDK da MIP em runtime.

Observação

As etapas descritas nesta introdução rápida são necessárias para qualquer aplicativo cliente que utilize o SDK de Proteção do wrapper MIP para .NET. Esses guias de início rápido devem ser feitos serialmente após a inicialização do aplicativo e a implementação de classes delegadas de autenticação e de delegado de consentimento.

Pré-requisitos

Caso ainda não tenha feito isso, certifique-se de:

Criar uma solução e um projeto do Visual Studio

Primeiro, criamos e configuramos a solução e o projeto iniciais do Visual Studio, nos quais os outros Inícios Rápidos serão criados.

  1. Abra o Visual Studio 2022 ou posterior, selecione o menu Arquivo , Novo, Projeto. Na caixa de diálogo Novo Projeto :

    • No painel esquerdo, em Instalado, Visual C#, selecione Área de Trabalho do Windows.

    • No painel central, selecione Aplicativo de Console (.NET Framework)

    • No painel inferior, atualize o nome do projeto, o local e o nome da solução que contém adequadamente.

    • Quando terminar, clique no botão OK no canto inferior direito.

      Criação de solução do Visual Studio

  2. Adicione o pacote NuGet para o SDK de Arquivo MIP ao seu projeto:

    • No Gerenciador de Soluções, clique com o botão direito do mouse no nó do projeto (diretamente no nó superior/solução) e selecione Gerenciar pacotes NuGet...:
    • Quando a guia Gerenciador de Pacotes NuGet é aberta na área de guias Grupo do Editor:
      • Selecione Procurar.
      • Insira "Microsoft.InformationProtection" na caixa de pesquisa.
      • Selecione o pacote "Microsoft.InformationProtection.Protection".
      • Clique em "Instalar" e, em seguida, clique em "OK" quando a caixa de diálogo de confirmação Visualizar alterações for exibida.
  3. Repita as etapas acima, mas adicione "Microsoft.Identity.Client" (MSAL) ao aplicativo.

Se ainda não estiver implementado, siga as etapas listadas na inicialização do aplicativo SDK de Arquivo para implementar a autenticação e o delegado de consentimento.

Inicializar o Wrapper Gerenciado do SDK do MIP

  1. No Gerenciador de Soluções, abra o arquivo .cs em seu projeto que contém a implementação do Main() método. Ele usa como padrão o mesmo nome do projeto que o contém, que você especificou durante a criação do projeto.

  2. Remova a implementação gerada de main().

  3. O wrapper gerenciado inclui uma classe estática, Microsoft.InformationProtection.MIP usada para inicialização, criando um MipContext, carregamento de perfis e liberação de recursos. Para inicializar o wrapper para operações do SDK de arquivos, chame MIP.Initialize(), passando MipComponent.Protection para carregar as bibliotecas necessárias às operações de proteção.

  4. No Main()Program.cs adicione o seguinte, substituindo <a ID> do aplicativo pela ID do Registro de Aplicativo do Microsoft Entra criado anteriormente.

using System;
using System.Threading.Tasks;
using Microsoft.InformationProtection;
using Microsoft.InformationProtection.Exceptions;
using Microsoft.InformationProtection.Protection;

namespace mip_sdk_dotnet_quickstart
{
    class Program
    {
        private const string clientId = "<application-id>";
        private const string appName = "<friendly-name>";

        static void Main(string[] args)
        {
            //Initialize Wrapper for Protection SDK operations
            MIP.Initialize(MipComponent.Protection);
        }
    }
}

Construir um Perfil de Proteção e Mecanismo

Conforme mencionado, os objetos de perfil e mecanismo são necessários para clientes do SDK usando APIs de MIP. Conclua a parte de codificação deste Início Rápido adicionando código para carregar as DLLs nativas e instanciar o perfil e os objetos do mecanismo.

using System;
using System.Threading.Tasks;
using Microsoft.InformationProtection;
using Microsoft.InformationProtection.Exceptions;
using Microsoft.InformationProtection.Protection;

namespace mip_sdk_dotnet_quickstart
{
     class Program
     {
          private const string clientId = "<application-id>";
          private const string appName = "<friendly-name>";

          static void Main(string[] args)
          {
               // Initialize Wrapper for Protection SDK operations.
               MIP.Initialize(MipComponent.Protection);

               // Create ApplicationInfo, setting the clientID from Azure AD App Registration as the ApplicationId.
               ApplicationInfo appInfo = new ApplicationInfo()
               {
                    ApplicationId = clientId,
                    ApplicationName = appName,
                    ApplicationVersion = "1.0.0"
               };

               // Instantiate the AuthDelegateImpl object, passing in AppInfo.
               AuthDelegateImplementation authDelegate = new AuthDelegateImplementation(appInfo);

               // Create MipConfiguration Object
               MipConfiguration mipConfiguration = new MipConfiguration(appInfo, "mip_data", LogLevel.Trace, false);

               // Create MipContext using Configuration
               mipContext = MIP.CreateMipContext(mipConfiguration);
                
               // Initialize and instantiate the ProtectionProfile.
               // Create the ProtectionProfileSettings object.
               // Initialize protection profile settings to create/use local state.
               var profileSettings = new ProtectionProfileSettings(mipContext,
                                        CacheStorageType.OnDiskEncrypted,                                        
                                        new ConsentDelegateImplementation());

               // Load the Profile async and wait for the result.
               var protectionProfile = Task.Run(async () => await MIP.LoadProtectionProfileAsync(profileSettings)).Result;

               // Create a ProtectionEngineSettings object, then use that to add an engine to the profile.
               var engineSettings = new ProtectionEngineSettings("user1@tenant.com", authDelegate, "", "en-US");
               engineSettings.Identity = new Identity("user1@tenant.com");
               var protectionEngine = Task.Run(async () => await protectionProfile.AddEngineAsync(engineSettings)).Result;

               // Application Shutdown
               // handler = null; // This will be used in later quick starts.
               protectionEngine = null;
               protectionProfile = null;
               mipContext = null;
          }
     }
}
  1. Substitua os valores de espaço reservado no código-fonte que você coleu usando os seguintes valores:

    Placeholder Value Example
    <application-id> O ID do Aplicativo Microsoft Entra atribuído ao aplicativo registrado em "Configuração do SDK do MIP" (2 instâncias). 0edbblll-8773-44de-b87c-b8c6276d41eb
    <nome amigável> Um nome amigável definido pelo usuário para seu aplicativo. Inicialização do Aplicativo
  2. Agora, faça um build final do aplicativo e resolva quaisquer erros. Seu código deve ser construído com sucesso.

Próximas etapas

Agora que o código de inicialização está concluído, você está pronto para o próximo início rápido, no qual começará a experimentar os SDKs de Proteção MIP.