Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este inicio rápido se muestra cómo usar el SDK de protección de MIP para enumerar las plantillas de protección disponibles para el usuario.
Prerrequisitos
Complete los siguientes requisitos previos antes de continuar:
- Complete primero Inicio rápido: Inicialización de aplicaciones cliente para SDK de Protection (C++), que compila una solución de inicio de Visual Studio. Este inicio rápido de "Plantillas de protección de listas" se basa en el inicio rápido anterior para crear correctamente la solución de inicio.
- Opcional: revise los conceptos de las plantillas de RMS .
Agregar lógica para enumerar las plantillas de protección
Agregue lógica para enumerar las plantillas de protección disponibles para un usuario mediante el objeto del motor de protección.
Abra la solución de Visual Studio que creó en el artículo anterior "Inicio rápido: inicialización de aplicaciones cliente - SDK de protección (C++)".
En Explorador de soluciones, abra el archivo .cpp en el proyecto que contiene la implementación del
main()método . El valor predeterminado es el mismo nombre que el proyecto que lo contiene, que especificó durante la creación del proyecto.Agregue la siguiente directiva
usingdespués deusing mip::ProtectionEngine;, cerca de la parte superior del archivo:using std::endl;Hacia el final del cuerpo
main(), debajo de la llave de cierre}del último bloquecatchy encima dereturn 0;(donde lo dejó en la guía de inicio rápido anterior), inserte el siguiente código:// List protection templates const shared_ptr<ProtectionEngineObserver> engineObserver = std::make_shared<ProtectionEngineObserver>(); // Create a context to pass to 'ProtectionEngine::GetTemplateListAsync'. That context will be forwarded to the // corresponding ProtectionEngine::Observer methods. In this case, we use promises/futures as a simple way to detect // the async operation completes synchronously. auto loadPromise = std::make_shared<std::promise<vector<shared_ptr<mip::TemplateDescriptor>>>>(); std::future<vector<shared_ptr<mip::TemplateDescriptor>>> loadFuture = loadPromise->get_future(); engine->GetTemplatesAsync(engineObserver, loadPromise); auto templates = loadFuture.get(); cout << "*** Template List: " << endl; for (const auto& protectionTemplate : templates) { cout << "Name: " << protectionTemplate->GetName() << " : " << protectionTemplate->GetId() << endl; }
Creación de un script de PowerShell para generar tokens de acceso
Use el siguiente script de PowerShell para generar tokens de acceso que solicita el SDK en la AuthDelegateImpl::AcquireOAuth2Token implementación. El script usa el cmdlet Get-MsalToken del módulo MSAL.PS que instaló anteriormente, en «Instalación y configuración de MIP SDK».
Cree un archivo de script de PowerShell (.ps1 extensión) y copie y pegue el siguiente script en el archivo:
-
$authorityy$resourceUrlse actualizan más adelante, en la sección siguiente. - Actualice
$appIdy$redirectUripara que coincida con los valores especificados en el registro de aplicación de Microsoft Entra.
$authority = '<authority-url>' # Specified when SDK calls AcquireOAuth2Token() $resourceUrl = '<resource-url>' # Specified when SDK calls AcquireOAuth2Token() $appId = '<app-ID>' # App ID of the Microsoft Entra app registration $redirectUri = '<redirect-uri>' # Redirect URI of the Microsoft Entra app registration $scope = $resourceUrl + "/.default" $response = Get-MsalToken -ClientId $appId -Authority $authority -RedirectUri $redirectUri -Scopes $scope -Interactive $response.AccessToken | clip # Copy the access token text to the clipboard-
Guarde el archivo de script para que pueda ejecutarlo más adelante, cuando lo solicite la aplicación cliente.
Crear y probar la aplicación
Compile y pruebe la aplicación cliente.
Usa Ctrl+Mayús+B (Compilar solución) para compilar la aplicación cliente. Si la compilación no tiene errores, use F5 (Iniciar depuración) para ejecutar la aplicación.
Si el proyecto se compila y se ejecuta correctamente, la aplicación solicita un token de acceso cada vez que el SDK llama al
AcquireOAuth2Token()método . Puede reutilizar un token generado anteriormente si se le solicita varias veces y los valores solicitados son los mismos:Para generar un token de acceso para el mensaje, vuelva al script de PowerShell y:
Actualice las
$authorityvariables y$resourceUrl. Deben coincidir con los valores especificados en la salida de la consola en el paso 2.Ejecute el script de PowerShell. El
Get-MsalTokencmdlet desencadena un mensaje de autenticación Microsoft Entra, similar al ejemplo siguiente. Especifique la misma cuenta proporcionada en la salida de la consola en el paso 2. Después de iniciar sesión correctamente, PowerShell coloca el token de acceso en el Portapapeles.Es posible que también tenga que dar su consentimiento para permitir que la aplicación acceda a las API de MIP mientras se ejecuta en la cuenta de inicio de sesión. Esto sucede cuando el registro de la aplicación Microsoft Entra no tiene consentimiento previo (como se describe en "Configuración y configuración del SDK de MIP"), o si inicia sesión con una cuenta de un inquilino diferente (distinto del que se registra la aplicación). Seleccione Aceptar para registrar el consentimiento.
Después de pegar el token de acceso en el indicador del paso 2, la salida de la consola debería mostrar las plantillas de protección, como en el ejemplo siguiente:
*** Template List: Name: Confidential \ All Employees : a74f5027-f3e3-4c55-abcd-74c2ee41b607 Name: Highly Confidential \ All Employees : bb7ed207-046a-4caf-9826-647cff56b990 Name: Confidential : 174bc02a-6e22-4cf2-9309-cb3d47142b05 Name: Contoso Employees Only : 667466bf-a01b-4b0a-8bbf-a79a3d96f720 C:\MIP Sample Apps\ProtectionQS\Debug\ProtectionQS.exe (process 8252) exited with code 0. To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops. Press any key to continue . . .Nota:
Copie y guarde el identificador de una o varias de las plantillas de protección (por ejemplo,
f42a3342-8706-4288-bd31-ebb85995028z), al usarlo en el siguiente inicio rápido.
Solución de problemas
Problemas durante la ejecución de la aplicación de C++
| Resumen | Mensaje de error | Solución |
|---|---|---|
| Token de acceso incorrecto |
Se produjo una excepción... ¿El token de acceso es incorrecto o ha expirado? Llamada a la API fallida: profile_add_engine_async. Error: [class mip::PolicySyncException]. No se ha podido obtener la directiva. La solicitud ha fallado con el código de estado HTTP: 401, x-ms-diagnostics: [2000001;reason=No se puede analizar el token de OAuth enviado con la solicitud.; error_category=invalid_token], correlationId:[aaaa0000-bb11-2222-33cc-444444dddddd]' C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe (proceso 29924) salió con el código 0. Presione cualquier tecla para cerrar esta ventana . . . |
Si el proyecto se compila correctamente, pero ves una salida similar a lo mostrado a la izquierda, es probable que tengas un token no válido o expirado en el método AcquireOAuth2Token(). Vuelva a Creación de un script de PowerShell para generar tokens de acceso y vuelva a generar el token de acceso, actualice AcquireOAuth2Token() nuevamente y vuelva a generarlo o a probarlo. También puede examinar y comprobar el token y sus reclamaciones mediante la aplicación web de página única jwt.ms. |
Pasos siguientes
Ahora que ha aprendido a enumerar las plantillas de protección disponibles para un usuario autenticado, pruebe el siguiente inicio rápido:
- Explore el ejemplo de C++ del SDK de protección de MIP en GitHub.