Autenticación de solo aplicación de Intune Data Warehouse

Puede configurar una aplicación mediante el identificador de Microsoft Entra y autenticarse en el Data Warehouse de Intune. Este proceso es útil para sitios web, aplicaciones y procesos en segundo plano en los que la aplicación no debe tener acceso a las credenciales de usuario. Con los pasos siguientes, autoriza la aplicación con Microsoft Entra id. mediante OAuth 2.0.

Autorización

Microsoft Entra id. usa OAuth 2.0 para permitir el acceso a aplicaciones web y API web en el inquilino de Microsoft Entra. En esta guía se muestra cómo autenticar la aplicación mediante C#. El flujo de código de autorización de OAuth 2.0 se describe en la sección 4.1 de la especificación de OAuth 2.0. Para obtener más información, consulte Autorización del acceso a aplicaciones web mediante OAuth 2.0 e identificador de Microsoft Entra.

Azure KeyVault

El siguiente proceso usa un método privado para procesar y convertir una clave de aplicación. Este método privado se ha denominado SecureString. Como alternativa, podría usar Azure KeyVault para almacenar la clave de aplicación. Para obtener más información, consulte Key Vault.

Creación de una aplicación web

En esta sección, proporcionará detalles sobre la aplicación web a la que desea que apunte en Intune. Una aplicación web es una aplicación cliente-servidor. El servidor proporciona la aplicación web, que incluye la interfaz de usuario, el contenido y la funcionalidad. Este tipo de aplicación se mantiene por separado en la Web. Use Intune para conceder acceso a una aplicación web a Intune. La aplicación web inicia el flujo de datos.

  1. Inicie sesión en el Centro de administración de Microsoft Intune.

  2. Seleccione Todos los servicios>M365 Microsoft Entra ID>Microsoft Entra ID>Registros de aplicaciones.

  3. Haga clic en Nuevo registro para mostrar el panel Registrar una aplicación .

  4. En el panel Registrar una aplicación , agregue los detalles de la aplicación:

  5. Haga clic en Registrar.

    Nota:

    Copie el identificador de aplicación (cliente) en el panel de la aplicación para usarlo más adelante.

Crear una clave (contraseña)

En esta sección, Microsoft Entra identificador genera un valor de clave para la aplicación.

  1. En el panel Registros de aplicaciones, seleccione la aplicación recién creada para mostrar el panel de la aplicación.

  2. Seleccione Certificados & secretos cerca de la parte superior del panel para mostrar el panel Certificados & secretos .

  3. Seleccione Secretos de cliente en el panel Certificados & secretos .

  4. Agregue la clave Description y una duración Expires para la clave.

  5. Haga clic en Agregar para guardar y actualizar las claves de la aplicación.

  6. Debe copiar el valor de clave generado (codificado en base64).

    Nota:

    El valor de clave desaparece después de salir del panel Certificados & secretos . No se puede recuperar la clave de este panel más adelante. Cópielo para usarlo más adelante.

Concesión de permisos de aplicación

En esta sección, concederá permisos a las aplicaciones.

  1. Seleccione Permisos> de APIAgregar un permiso>Permisos de aplicación deIntune>.
  2. Elija la opción get_data_warehouse (Obtener información de almacenamiento de datos de Microsoft Intune).
  3. Haga clic en Agregar permisos.
  4. Haga clic en Listo en el panel Agregar acceso de API .
  5. Haga clic en Conceder consentimiento de administrador en el panel permisos de API y haga clic en cuando se promueva para actualizar los permisos existentes que esta aplicación ya tiene.

Generar token

Con Visual Studio, cree un proyecto de aplicación de consola (.NET Framework) que admita .NET Framework y use C# como lenguaje de codificación.

  1. Seleccione Archivo>nuevo>proyecto para mostrar el cuadro de diálogo Nuevo proyecto .

  2. A la izquierda, seleccione Visual C# para mostrar todos los proyectos de .NET Framework.

  3. Seleccione Aplicación de consola (.NET Framework), agregue un nombre de aplicación y haga clic en Aceptar para crear la aplicación.

  4. En Explorador de soluciones, seleccione Program.cs para mostrar el código.

  5. En Explorador de soluciones, agregue una referencia al ensamblado System.Configuration.

  6. En el menú emergente, seleccione Agregar>nuevo elemento. Se muestra el cuadro de diálogo Agregar nuevo elemento .

  7. A la izquierda, en Visual C#, seleccione Código.

  8. Seleccione Clase, cambie el nombre de la clase a IntuneDataWarehouseClass.cs y haga clic en Agregar.

  9. Agregue el código siguiente dentro del Main método :

         var applicationId = ConfigurationManager.AppSettings["appId"].ToString();
         SecureString applicationSecret = ConvertToSecureStr(ConfigurationManager.AppSettings["appKey"].ToString()); // Load as SecureString from configuration file or secret store (i.e. Azure KeyVault)
         var tenantDomain = ConfigurationManager.AppSettings["tenantDomain"].ToString();
         var msalContext = new AuthenticationContext($"https://login.windows.net/" + tenantDomain + "/oauth2/token");
    
         AuthenticationResult authResult = msalContext.AcquireTokenAsync(
             resource: "https://api.manage.microsoft.com/",
             clientCredential: new ClientCredential(
                 applicationId,
                 new SecureClientSecret(applicationSecret))).Result;
    
  10. Agregue espacios de nombres adicionales agregando el código siguiente en la parte superior del archivo de código:

     using System.Security;
     using Microsoft.Identity.Client;
     using System.Configuration;
    

    Nota:

    Debe usar la Biblioteca de autenticación de Microsoft (MSAL). Para obtener más información, consulte Actualizar las aplicaciones para que usen la Biblioteca de autenticación de Microsoft (MSAL) y la API de Microsoft Graph.

  11. Después del Main método , agregue el siguiente método privado para procesar y convertir la clave de aplicación:

    private static SecureString ConvertToSecureStr(string appkey)
    {
        if (appkey == null)
            throw new ArgumentNullException("AppKey must not be null.");
    
        var secureAppKey = new SecureString();
    
        foreach (char c in appkey)
            secureAppKey.AppendChar(c);
    
        secureAppKey.MakeReadOnly();
        return secureAppKey;
    }
    
  12. En el Explorador de soluciones, haga clic con el botón derecho en Referencias y, a continuación, seleccione Administrar paquetes NuGet.

  13. Busque Microsoft.Identity.Client e instale el paquete NuGet de Microsoft relacionado.

  14. En Explorador de soluciones seleccione y abra el archivo App.config.

  15. Agregue la appSettings sección para que el xml aparezca de la siguiente manera:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
        </startup>
        <appSettings>
          <add key="appId" value="App ID created from 'Create a Web App' procedure"/>
          <add key="appKey" value="Key created from 'Create a key' procedure" />
          <add key="tenantDomain" value="contoso.onmicrosoft.com"/>
        </appSettings>
    </configuration>
    
  16. Actualice los appIdvalores , appKeyy tenantDomain para que coincidan con los valores únicos relacionados con la aplicación.

  17. Compile la aplicación.

    Nota:

    Para ver código de implementación adicional, consulte el ejemplo de código Intune-Data-Warehouse.

Pasos siguientes

Para más información sobre Azure Key Vault, consulte ¿Qué es Azure Key Vault?