Inicio rápido: Inicialización de la aplicación cliente para los SDK de protección (C#)

En esta guía de inicio rápido, se muestra cómo implementar el patrón de inicialización del cliente usado por el contenedor .NET del SDK de MIP.

Nota

Los pasos que se describen en este inicio rápido son obligatorios para cualquier aplicación cliente que use el SDK de protección del contenedor de .NET de MIP. Este inicio rápido debe realizarse en serie después de la inicialización de la aplicación y la implementación de las clases de delegado de autorización y delegado de consentimiento.

Requisitos previos

Si aún no lo ha hecho, asegúrese de:

Crear un proyecto y una solución de Visual Studio

Primero, crearemos y configuraremos el proyecto y la solución de Visual Studio iniciales en los que se basan el resto de las guías de inicio rápido.

  1. Abra Visual Studio 2017, seleccione el menú Archivo, Nuevo, Proyecto. En el cuadro de diálogo Nuevo proyecto:

    • En el panel izquierdo, en Instalados, Visual C#, seleccione Escritorio de Windows.

    • En el panel central, seleccione Aplicación de consola (.NET Framework).

    • En el panel inferior, actualice el Nombre y la Ubicación del proyecto, así como el Nombre de la solución que lo contiene.

    • Cuando haya terminado, haga clic en el botón Aceptar de la parte inferior derecha.

      Crear la solución de Visual Studio

  2. Agregue al proyecto el paquete NuGet para el SDK de archivo de MIP:

    • En el Explorador de soluciones, haga clic con el botón derecho en el nodo de proyecto (justo debajo del nodo de la solución superior) y seleccione Administrar paquetes NuGet…:
    • Cuando se abra la pestaña Administrador de paquetes NuGet en el área de pestañas del grupo del editor:
      • Seleccione Examinar.
      • Escriba “Microsoft.InformationProtection” en el cuadro de búsqueda.
      • Seleccione el paquete “Microsoft.InformationProtection.File”.
      • Haga clic en “Instalar” y, cuando se muestre el cuadro de diálogo de confirmación Vista previa de los cambios, haga clic en “Aceptar”.
  3. Repita los pasos anteriores para agregar el paquete del SDK de protección de MIP, pero, en su lugar, agregue "Microsoft.IdentityModel.Clients.ActiveDirectory" a la aplicación.

Si aún no se han implementado los delegados de autenticación y consentimiento, siga los pasos indicados en Inicialización de la aplicación de SDK de archivo.

Inicializar el contenedor administrado del SDK de MIP

  1. Desde el Explorador de soluciones, abra el archivo .cs en el proyecto que contiene la implementación del método . El valor predeterminado es el mismo nombre que el proyecto que lo contiene, el cual ha especificado al crear el proyecto.

  2. Quite la implementación generada de main().

  3. El contenedor administrado incluye una clase estática, Microsoft.InformationProtection.MIP, utilizada para la inicialización, la creación de MipContext, la carga de perfiles y la liberación de los recursos. A fin de inicializar el contenedor para las operaciones de SDK de archivo, llame a MIP.Initialize() y pase MipComponent.Protection para cargar las bibliotecas necesarias para las operaciones de protección.

  4. Agregue lo siguiente en Main() (en Main()), pero sustituyendo application-id> por el id. del registro de aplicación de Azure AD que se creó 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);
        }
    }
}

Construcción de un motor y un perfil de protección

Como se ha indicado anteriormente, los objetos de motor y perfil son necesarios para los clientes del SDK que usen las API de MIP. Complete el fragmento de código siguiente de este inicio rápido: agregue código para cargar las DLL nativas y luego cree la instancia de los objetos de perfil y motor.

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. Reemplace los valores de marcador de posición en el código fuente que ha pegado por los valores siguientes:

    Marcador Valor Ejemplo
    <application-id> El identificador de aplicación de Azure AD asignado a la aplicación registrada en “Instalación y configuración del SDK de MIP” (dos instancias). 0edbblll-8773-44de-b87c-b8c6276d41eb
    <friendly-name> Nombre descriptivo definido por el usuario para la aplicación. AppInitialization
  2. Ahora, realice una compilación final de la aplicación y solucione los posibles errores. El código debe compilarse correctamente.

Pasos siguientes

Después de completar el código de inicialización, puede pasar al inicio rápido siguiente, donde empezará a probar el SDK de protección de MIP.