Проверка подлинности Intune Data Warehouse Application-Only

Вы можете настроить приложение с помощью Microsoft Entra ID и пройти проверку подлинности в Intune Data Warehouse. Этот процесс полезен для веб-сайтов, приложений и фоновых процессов, когда приложение не должно иметь доступа к учетным данным пользователя. С помощью следующих действий вы авторизуете свое приложение с Microsoft Entra ID с помощью OAuth 2.0.

Авторизация

Microsoft Entra ID использует OAuth 2.0 для авторизации доступа к веб-приложениям и веб-API в клиенте Microsoft Entra. В этом руководстве показано, как проверить подлинность приложения с помощью C#. Поток кода авторизации OAuth 2.0 описан в разделе 4.1 спецификации OAuth 2.0. Дополнительные сведения см. в разделах Авторизация доступа к веб-приложениям с помощью OAuth 2.0 и Microsoft Entra ID.

Azure KeyVault

В указанном ниже процессе используется закрытый метод для обработки и преобразования ключа приложения. Этот закрытый метод получил название SecureString. В качестве альтернативы для хранения ключа приложения можно использовать Azure KeyVault. Дополнительные сведения см. в разделе Key Vault.

Создание веб-приложения

В этом разделе укажите сведения о веб-приложении, на которое вы хотите указать в Intune. Веб-приложение является клиент-серверным приложением. Сервер предоставляет веб-приложение, включая его пользовательский интерфейс, содержимое и функциональные возможности. Этот тип приложений поддерживается отдельно в Интернете. Intune используется для предоставления веб-приложению доступа к Intune. Поток данных инициируется веб-приложением.

  1. Войдите в Центр администрирования Microsoft Intune.

  2. Выберите "Все службы>M365" Microsoft Entra ID>Microsoft Entra ID>Регистрация приложений.

  3. Нажмите кнопку "Новая регистрация ", чтобы открыть панель "Регистрация приложения ".

  4. В области регистрации приложения добавьте сведения о приложении:

    • Имя приложения, например Intune App-Only Auth.
    • Поддерживаемый тип учетной записи.
    • Универсальный код ресурса (URI) перенаправления приложения. Это расположение, куда пользователи автоматически переходят в процессе проверки подлинности. Они должны доказать, что они те, за кого себя выдают. Подробнее см. в разделе Что такое доступ к приложениям и единый вход с Microsoft Entra ID?
  5. Нажмите Зарегистрировать.

    Примечание.

    Скопируйте идентификатор приложения (клиента) из области приложений, чтобы использовать его позже.

Создание ключа (пароля)

В этом разделе Microsoft Entra ID создает значение раздела для вашего приложения.

  1. В области "Регистрация приложений" выберите только что созданное приложение, чтобы отобразить панель приложения.

  2. Выберите "Сертификаты & секреты" в верхней части области, чтобы отобразить панель "Сертификаты & секреты".

  3. Выберите Секреты клиента в области Сертификаты & секреты .

  4. Добавьте описание ключа и срок действия ключа.

  5. Нажмите кнопку " Добавить ", чтобы сохранить и обновить ключи приложения.

  6. Необходимо скопировать сгенерированное значение ключа (в кодировке base64).

    Примечание.

    Значение ключа исчезает после выхода из области "Сертификаты & секреты ". Вы не сможете получить ключ из этой панели позже. Скопируйте его, чтобы использовать позже.

Предоставление разрешений приложению

В этом разделе вы предоставляете разрешения приложениям.

  1. Выбор разрешений API Добавить>разрешениеРазрешения>IntuneApplication>.
  2. Выберите параметр get_data_warehouse (Получение сведений о хранилище данных из Microsoft Intune).
  3. Щелкните Добавить разрешения.
  4. Нажмите кнопку "Готово" в области доступа к API Add.
  5. Нажмите кнопку Предоставить согласие администратора на панели разрешений API и нажмите кнопку Да при повышении, чтобы обновить существующие разрешения, которые уже есть у этого приложения.

Создать маркер

Используя Visual Studio, создайте консольное приложение (платформа .NET Framework), поддерживающее .NET Framework и использующее C# в качестве языка программирования.

  1. Выберите "Создать файл>>". Чтобы открыть диалоговое окно "Новый проект".

  2. В левой части экрана выберите Visual C#, чтобы отобразить все проекты платформа .NET Framework.

  3. Выберите консольное приложение (платформа .NET Framework), добавьте имя приложения и нажмите кнопку "ОК", чтобы создать его.

  4. В Обозреватель решений выберите Program.cs, чтобы отобразить код.

  5. В обозревателе решений добавьте ссылку на сборкуSystem.Configuration.

  6. Во всплывающем меню выберите пункт "Добавить>новый элемент". Откроется диалоговое окно "Добавить новый элемент ".

  7. Слева в разделе Visual C# выберите "Код".

  8. Выберите Класс, измените имя класса на IntuneDataWarehouseClass.cs и нажмите Добавить.

  9. Добавьте следующий код в метод:Main

         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. Чтобы добавить дополнительные пространства имен, добавьте следующий код в начало файла кода:

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

    Примечание.

    Необходимо использовать библиотеку проверки подлинности Майкрософт (MSAL). Подробности см. в статье Обновление приложений, чтобы использовать библиотеку проверки подлинности Майкрософт (MSAL) и API Microsoft Graph

  11. После этого Main метода добавьте следующий закрытый метод для обработки и преобразования ключа приложения:

    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. В обозревателе решений щелкните правой кнопкой мыши "Ссылки" и выберите "Управление пакетами NuGet".

  13. Найдите Microsoft.Identity.Client и установите связанный пакет Microsoft NuGet.

  14. В Обозреватель решений выберите и откройте файл App.config.

  15. Добавьте раздел так, appSettings чтобы xml-файл выглядел следующим образом:

    <?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. Обновите appIdзначения , appKeyand tenantDomain в соответствии со значениями, связанными с уникальным приложением.

  17. Создайте свое приложение.

    Примечание.

    Чтобы просмотреть дополнительный код реализации, см. пример кода Intune-Data-Warehouse.

Дальнейшие действия

Дополнительные сведения о Azure Key Vault см. в статье Что такое Azure Key Vault?