Inicio rápido: Inicialización de aplicaciones cliente para SDK de protección (C#)
Esta guía de inicio rápido le mostrará cómo implementar el patrón de inicialización del cliente, que usa el contenedor .NET del SDK de MIP en tiempo de ejecución.
Nota:
Los pasos descritos en esta guía de inicio rápido son necesarios para cualquier aplicación cliente que use el SDK de protección del contenedor .NET de MIP. Estos inicios rápidos deben realizarse en serie después de inicializar la aplicación e implementar las clases de delegado de autenticación y delegado de consentimiento.
Requisitos previos
Si aún no lo ha hecho:
- Completar los pasos de Instalación y configuración del SDK de Microsoft Information Protection (MIP). Este inicio rápido de configuración del perfil y motor de protección se basa en la instalación y configuración de SDK adecuados.
- Opcionalmente:
- Revise Objetos de perfil y motor. Los objetos de perfil y motor son conceptos universales, necesarios para los clientes que usan los SDK de archivos, directivas o 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, se crearán y configurarán la solución y el proyecto iniciales de Visual Studio, en los que se basan los demás inicios rápidos.
Abra Visual Studio 2017, seleccione el menú Archivo y, luego, Nuevo y 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 del centro, seleccione Aplicación de consola (.NET Framework).
En el panel inferior, actualice el Nombre y la Ubicación del proyecto, y el Nombre de la solución en la que se incluye, según corresponda.
Cuando termine, haga clic en el botón Aceptar en la esquina inferior derecha.
Agregue el paquete Nuget para el SDK de archivos de MIP al proyecto:
- En el Explorador de soluciones, haga clic con el botón derecho en el nodo del proyecto (directamente debajo del nodo principal o de la solución) 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:
- Seleccione Examinar.
- Escriba "Microsoft.InformationProtection" en el cuadro de búsqueda.
- Seleccione el paquete "Microsoft.InformationProtection.File".
- Haga clic en "Instalar" y después en "Aceptar" cuando se muestre el cuadro de diálogo de confirmación Vista previa de los cambios.
Repita los pasos anteriores para agregar el paquete del SDK de Protection de MIP, pero agregue "Microsoft.IdentityModel.Clients.ActiveDirectory" a la aplicación.
Implementación de un delegado de autenticación y un delegado de consentimiento
Si aún no está implementados, siga los pasos enumerados en Inicialización de la aplicación del SDK de archivo para implementar la autenticación y el delegado de consentimiento.
Inicialización del contenedor administrado del SDK de MIP
Con el Explorador de soluciones, abra el archivo .cs del proyecto que contiene la implementación del método
Main()
. De manera predeterminada, tiene el mismo nombre que el proyecto que lo contiene, que especificó al crear el proyecto.Quite la implementación generada de
main()
.El contenedor administrado incluye una clase estática,
Microsoft.InformationProtection.MIP
, que se usa para inicializar, crearMipContext
, cargar perfiles y liberar recursos. Para inicializar el contenedor para las operaciones del SDK de archivo, llame aMIP.Initialize()
, pasandoMipComponent.Protection
para cargar las bibliotecas necesarias para las operaciones de protección.En
Main()
, en Programa.cs, añada lo siguiente, sustituyendo <application-id> por el identificador del registro de aplicaciones de Microsoft Entra creado 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 Protection
Como ya se mencionó, los objetos de perfil y motor son necesarios para los clientes del SDK que usan las API de MIP. 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);
// 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;
}
}
}
Reemplace los valores de marcador de posición en el código fuente en el que se pegaron por los valores siguientes:
Marcador Valor 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). 0edbblll-8773-44de-b87c-b8c6276d41eb <friendly-name> Nombre descriptivo de la aplicación definido por el usuario. AppInitialization 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 inicio rápido siguiente, en el que empezará a experimentar el SDK de protección de MIP.