Share via


Intune Data Warehouse 애플리케이션 전용 인증

Microsoft Entra ID를 사용하여 애플리케이션을 설정하고 Intune Data Warehouse 인증할 수 있습니다. 이 프로세스는 애플리케이션이 사용자 자격 증명에 액세스할 수 없어야 하는 웹 사이트, 앱 및 백그라운드 프로세스에 유용합니다. 다음 단계를 사용하여 OAuth 2.0을 사용하여 Microsoft Entra ID로 애플리케이션에 권한을 부여합니다.

권한 부여

Microsoft Entra ID는 OAuth 2.0을 사용하여 Microsoft Entra 테넌트에서 웹 애플리케이션 및 웹 API에 대한 액세스 권한을 부여할 수 있도록 합니다. 이 가이드에서는 C#을 사용하여 애플리케이션을 인증하는 방법을 보여줍니다. OAuth 2.0 권한 부여 코드 흐름은 OAuth 2.0 사양의 섹션 4.1에 설명되어 있습니다. 자세한 내용은 OAuth 2.0 및 Microsoft Entra ID를 사용하여 웹 애플리케이션에 대한 액세스 권한 부여를 참조하세요.

Azure KeyVault

다음 프로세스에서는 프라이빗 메서드를 사용하여 앱 키를 처리하고 변환합니다. 이 프라이빗 메서드의 이름은 SecureString입니다. 또는 Azure KeyVault를 사용하여 앱 키를 저장할 수 있습니다. 자세한 내용은 Key Vault 참조하세요.

웹앱 만들기

이 섹션에서는 Intune에서 가리키려는 웹앱에 대한 세부 정보를 제공합니다. 웹앱은 클라이언트 서버 애플리케이션입니다. 서버는 UI, 콘텐츠 및 기능을 포함하는 웹앱을 제공합니다. 이 유형의 앱은 웹에서 별도로 유지 관리됩니다. Intune을 사용하여 Intune에 대한 웹앱 액세스 권한을 부여합니다. 데이터 흐름은 웹앱에서 시작됩니다.

  1. Microsoft Intune 관리 센터에 로그인합니다.

  2. 모든 서비스>M365 Microsoft Entra ID>Microsoft Entra ID>앱 등록 선택합니다.

  3. 새 등록을 클릭하여 애플리케이션 등록 창을 표시합니다.

  4. 애플리케이션 등록 창에서 앱 세부 정보를 추가합니다.

  5. 등록을 클릭합니다.

    참고

    나중에 사용할 수 있도록 앱 창에서 애플리케이션(클라이언트) ID 를 복사합니다.

키 만들기(암호)

이 섹션에서는 Microsoft Entra ID가 앱의 키 값을 생성합니다.

  1. 앱 등록 창에서 새로 만든 앱을 선택하여 앱 창을 표시합니다.

  2. 창 위쪽에서 인증서 & 비밀을 선택하여 인증서 & 비밀 창을 표시합니다.

  3. 인증서 & 비밀 창에서 클라이언트 비밀을 선택합니다.

  4. 키에 대한 설명 및 만료 기간을 추가 합니다 .

  5. 추가를 클릭하여 애플리케이션의 키를 저장하고 업데이트합니다.

  6. 생성된 키 값(base64로 인코딩됨)을 복사해야 합니다.

    참고

    인증서 & 비밀 창을 나가면 키 값이 사라집니다. 나중에 이 창에서 키를 검색할 수 없습니다. 나중에 사용하도록 복사합니다.

애플리케이션 권한 부여

이 섹션에서는 애플리케이션에 권한을 부여합니다.

  1. API 권한>Intune>애플리케이션 권한>추가를 선택합니다.
  2. get_data_warehouse 옵션(Microsoft Intune 데이터 웨어하우스 정보 가져오기)을 선택합니다.
  3. 권한 추가를 클릭합니다.
  4. API 액세스 추가 창에서 완료를 클릭합니다.
  5. API 권한 창에서 관리자 동의 부여를 클릭하고 승격되면 예를 클릭하여 이 애플리케이션에 이미 있는 기존 권한을 업데이트합니다.

토큰 생성

Visual Studio를 사용하여 .NET Framework 지원하고 C#을 코딩 언어로 사용하는 콘솔 앱(.NET Framework) 프로젝트를 만듭니다.

  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(Microsoft 인증 라이브러리)을 사용해야 합니다. 자세한 내용은 MSAL(Microsoft 인증 라이브러리) 및 Microsoft Graph API를 사용하도록 애플리케이션 업데이트를 참조하세요..

  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. xml이 appSettings 다음과 같이 표시되도록 섹션을 추가합니다.

    <?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, appKey및 값을 고유한 앱 관련 값과 tenantDomain 일치하도록 업데이트합니다.

  17. 앱을 빌드합니다.

    참고

    추가 구현 코드를 보려면 Intune-Data-Warehouse 코드 예제를 참조하세요.

다음 단계

Azure Key Vault란?을 검토하여 Azure Key Vault 대해 자세히 알아보세요.