Inicio rápido: Inicialización de aplicaciones cliente para 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 que usa el contenedor de .NET del SDK de MIP en tiempo de ejecución.

Nota:

Cualquier aplicación cliente que use el SDK de protección del contenedor de MIP .NET requiere los pasos descritos en este inicio rápido. Complete estos inicios rápidos en serie después de la inicialización de la aplicación y la implementación de clases de delegado de autenticación y delegados de consentimiento.

Prerrequisitos

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

  • Complete los pasos descritos en Configuración y configuración del SDK de Microsoft Information Protection (MIP). Esta guía de inicio rápido de "Protection profile and engine setup" requiere una instalación y configuración correctas del SDK.
  • Opcionalmente:
    • Revise Objetos de perfil y motor. Los objetos de perfil y motor son conceptos universales, requeridos por los clientes que usan los SDK de archivo/política/protección de MIP.
    • Revise Conceptos de autenticación para obtener información sobre cómo el SDK y la aplicación cliente implementan la autenticación y el consentimiento.

Creación de una solución y un proyecto de Visual Studio

En primer lugar, cree y configure la solución y el proyecto iniciales de Visual Studio en los que se basan las otras guías de inicio rápido.

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

    • En el panel de la izquierda, 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 del proyecto, la ubicación y el nombre de la solución contenedora en consecuencia.

    • Cuando termine, seleccione Aceptar en la esquina inferior derecha.

      Creación de soluciones de Visual Studio.

  2. Agregue el paquete NuGet para el SDK de protección de MIP al proyecto:

    • En Explorador de soluciones, haga clic con el botón derecho en el nodo del proyecto directamente en el 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 de editores:
      • Selecciona Examinar.
      • Escriba Microsoft.InformationProtection en el cuadro de búsqueda.
      • Seleccione el Microsoft.InformationProtection.Protection paquete.
      • Seleccione Instalar y, a continuación, seleccione Aceptar cuando aparezca el cuadro de diálogo de confirmación Vista previa de cambios .
  3. Repita los pasos anteriores, pero agregue Microsoft.Identity.Client (MSAL) a la aplicación.

Si aún no se ha implementado, siga los pasos indicados en Inicialización de la aplicación del SDK de archivos para implementar la autenticación y el delegado de consentimiento.

Inicialice el envoltorio administrado del SDK de MIP

  1. Con el Explorador de soluciones, abra el archivo .cs del proyecto que contiene la implementación del método Main(). El valor predeterminado es el mismo nombre que el proyecto que lo contiene, que especificó durante la creación del proyecto.

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

  3. El envoltorio administrado incluye una clase estática, Microsoft.InformationProtection.MIP, para la inicialización, la creación de un MipContext, la carga de perfiles y la liberación de recursos. Para inicializar el envoltorio para las operaciones del SDK de protección, llame a MIP.Initialize() y pase MipComponent.Protection como argumento para cargar las bibliotecas necesarias para las operaciones de protección.

  4. En Main()Program.cs, agregue el código siguiente, reemplazando <application-id> por el identificador del registro de aplicación de Microsoft Entra que 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);
        }
    }
}

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

Como se mencionó, los clientes del SDK que usan api de MIP requieren objetos de perfil y motor. Complete la parte de codificación de este inicio rápido agregando código para cargar los archivos DLL nativos y, a continuación, cree una 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, CacheStorageType.OnDiskEncrypted);

               // Create MipContext using Configuration
               MipContext 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. Sustituya los valores de los marcadores de posición en el código fuente que ha pegado por los siguientes valores:

    Marcador de posición Importancia Ejemplo
    <application-id> El identificador de aplicaciones de Microsoft Entra asignado a la aplicación registrada en “Instalación y configuración del SDK de MIP” (2 instancias). 00001111-aaaa-2222-bbbb-3333cccc4444
    <nombre fácil de usar> Nombre fácil de reconocer definido por el usuario para su aplicación. AppInitialization
  2. Ahora realice una compilación final de la aplicación y resuelva los errores. El código debe crearse correctamente.

Pasos siguientes

Ahora que el código de inicialización está completo, ya está listo para el siguiente inicio rápido, donde comienza a experimentar los SDK de protección de MIP.