Inicio rápido: mostrar etiquetas de confidencialidad (C++)

En este inicio rápido, se muestra cómo usar el SDK de archivo de MIP para crear una lista de las etiquetas de confidencialidad configuradas para su organización.

Requisitos previos

Si aún no lo ha hecho, asegúrese de completar los siguientes requisitos previos antes de continuar:

Agregar una lógica para mostrar una lista de las etiquetas de confidencialidad

Agregue una lógica para mostrar una lista de las etiquetas de confidencialidad de la organización con el objeto del motor de archivo.

  1. Abra la solución de Visual Studio que ha creado en el artículo anterior “Inicio rápido: inicialización de la aplicación cliente (C++)”.

  2. Mediante el Explorador de soluciones, abra el archivo .cpp 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.

  3. Agregue la siguiente directiva de using después de using mip::FileEngine;, cerca de la parte superior del archivo:

    using std::endl;
    
  4. Cerca del final del cuerpo de main(), debajo de la llave de cierre } del último bloque catch y encima de return 0; (donde haya terminado en la guía de inicio rápido anterior), inserte el código siguiente:

    // List sensitivity labels
    cout << "\nSensitivity labels for your organization:\n";
    auto labels = engine->ListSensitivityLabels();
    for (const auto& label : labels)
    {
       cout << label->GetName() << " : " << label->GetId() << endl;
    
       for (const auto& child : label->GetChildren())
       {
         cout << "->  " << child->GetName() << " : " << child->GetId() << endl;
       }
    }
    system("pause");
    

Crear un script de PowerShell para generar tokens de acceso

Use el siguiente script de PowerShell para generar los tokens de acceso que solicite el SDK en su implementación de AuthDelegateImpl::AcquireOAuth2Token. El script usa el cmdlet Get-ADALToken del módulo ADAL.PS que ha instalado anteriormente en “Instalación y configuración del SDK de MIP”.

  1. Cree un archivo de script de PowerShell (extensión .ps1) y, después, copie y pegue el script siguiente en el archivo:

    • $authority y $resourceUrl se actualizan más tarde en la sección siguiente.
    • Actualice $appId y $redirectUri para que coincidan con los valores especificados en el registro de la aplicación de Azure AD.
    $authority = '<authority-url>'                   # Specified when SDK calls AcquireOAuth2Token()
    $resourceUrl = '<resource-url>'                  # Specified when SDK calls AcquireOAuth2Token()
    $appId = '0edbblll-8773-44de-b87c-b8c6276d41eb'  # App ID of the Azure AD app registration
    $redirectUri = 'bltest://authorize'              # Redirect URI of the Azure AD app registration
    $response = Get-ADALToken -Resource $resourceUrl -ClientId $appId -RedirectUri $redirectUri -Authority $authority -PromptBehavior:RefreshSession
    $response.AccessToken | clip                     # Copy the access token text to the clipboard
    
  2. Guarde el archivo de script para poder ejecutarlo más tarde cuando lo solicite la aplicación cliente.

Compilar y probar la aplicación

Compile y pruebe la aplicación cliente.

  1. Presione F6 (Compilar solución) para compilar la aplicación cliente. Si no aparece ningún error de compilación, presione F5 (Iniciar depuración) para ejecutar la aplicación.

  2. Si el proyecto se compila y se ejecuta correctamente, la aplicación solicita un token de acceso cada vez que el SDK llama al método AcquireOAuth2Token(). Puede reutilizar un token generado anteriormente si se le pide varias veces y los valores solicitados son los mismos.

  3. Para generar un token de acceso para la petición, vuelva al script de PowerShell y haga lo siguiente:

    • Actualice las variables $authority y $resourceUrl. Tienen que coincidir con los valores especificados en la salida de la consola del paso 2. El SDK de MIP proporciona estos valores en el parámetro challenge de AcquireOAuth2Token():

    • Ejecute el script de PowerShell. El cmdlet Get-ADALToken desencadena una petición de autenticación de Azure AD similar al ejemplo siguiente. Especifique la misma cuenta proporcionada en la salida de la consola del paso 2. Después de iniciar sesión correctamente, el token de acceso se copiará en el Portapapeles.

      Inicio de sesión para la obtención del token por Visual Studio

    • Puede que también necesite conceder permiso para que la aplicación acceda a las API de MIP mientras se ejecuta con la cuenta de inicio de sesión. Esto ocurre cuando no se concede de forma previa el registro de la aplicación de Azure AD (como se indica en “Instalación y configuración del SDK de MIP”), o bien si ha iniciado sesión con una cuenta desde otro inquilino (un inquilino donde no se ha registrado la aplicación). Solo tiene que hacer clic en Aceptar para registrar el consentimiento.

      Consentimiento de Visual Studio

  4. Después de pegar el token de acceso en la petición del paso 2, en la salida de la consola se mostrarán las etiquetas de confidencialidad, de forma similar al ejemplo siguiente:

    Non-Business : 87ba5c36-17cf-14793-bbc2-bd5b3a9f95cz
    Public : 83867195-f2b8-2ac2-b0b6-6bb73cb33afz
    General : f42a3342-8706-4288-bd31-ebb85995028z
    Confidential : 074e457c-5848-4542-9a6f-34a182080e7z
    Highly Confidential : f55c2dea-db0f-47cd-8520-a52e1590fb6z
    
    Press any key to continue . . .
    

    Nota

    Copie y guarde el identificador de una o más de las etiquetas de confidencialidad (por ejemplo, f42a3342-8706-4288-bd31-ebb85995028z), ya que las usará en la próxima guía de inicio rápido.

Solución de problemas

Problemas durante la ejecución de la aplicación en C++

Resumen Mensaje de error Solución
Token de acceso incorrecto Se ha producido una excepción... ¿El token de acceso es incorrecto o ha expirado?

Error de llamada API: profile_add_engine_async Error con: [class mip::PolicySyncException] Error en la adquisición de la directiva, Error en la solicitud web 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:[35bc0023-3727-4eff-8062-000006d5d672]'

C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe (proceso 29924) se cerró con el código 0.

Presione cualquier tecla para cerrar esta ventana. . .
Si el proyecto se compila correctamente, pero se muestra un resultado similar al que aparece a la izquierda, es probable que tenga un token no válido o expirado en el método AcquireOAuth2Token(). Regrese a Crear un script de PowerShell para generar tokens de acceso, genere de nuevo un token de acceso, actualice otra vez y repita la compilación o las pruebas. También puede examinar y verificar el token y sus notificaciones con la aplicación web de una página jwt.ms.
Las etiquetas de confidencialidad no se han configurado n/a Si el proyecto se compila correctamente, pero no se muestra ningún resultado en la ventana de la consola, asegúrese de que las etiquetas de confidencialidad de la organización se hayan configurado correctamente. Para obtener más información, vea Instalación y configuración del SDK de MIP en “Definir la configuración de protección y taxonomía de etiquetas”.

Pasos siguientes

Ahora que ya conoce cómo mostrar una lista de las etiquetas de confidencialidad de la organización, pruebe la siguiente guía de inicio rápido: