빠른 시작: 민감도 레이블 나열(C++)

이 빠른 시작에서는 MIP 파일 SDK를 사용하여 조직에 대해 구성된 민감도 레이블을 나열하는 방법을 보여줍니다.

필수 조건

아직 완료하지 않은 경우 계속하기 전에 다음 필수 구성 요소를 완료해야 합니다.

민감도 레이블을 나열하는 논리 추가

파일 엔진 개체를 사용하여 조직의 민감도 레이블을 나열하는 논리를 추가합니다.

  1. 이전 "빠른 시작: 클라이언트 애플리케이션 초기화(C++)" 문서에서 만든 Visual Studio 솔루션을 엽니다.

  2. 솔루션 탐색기를 사용하여 main() 메서드 구현을 포함하는 프로젝트에서 .cpp 파일을 엽니다. 기본값은 프로젝트 생성 중에 지정한 이름이 포함된 프로젝트와 동일한 이름입니다.

  3. 파일 상단 근처의 using mip::FileEngine; 뒤에 다음 using 지시문을 추가합니다.

    using std::endl;
    
  4. main() 본문의 끝부분을 향해 마지막 catch 블록의 닫힌 중괄호 } 아래 및 return 0; 위(이전 빠른 시작에서 중단한 부분)에 다음 코드를 삽입합니다.

    // 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");
    

액세스 토큰을 생성하는 PowerShell 스크립트 만들기

다음 PowerShell 스크립트를 사용하여 AuthDelegateImpl::AcquireOAuth2Token 구현의 SDK에서 요청하는 액세스 토큰을 생성합니다. 이 스크립트는 "MIP SDK 설정 및 구성"에 이전에 설치한 ADAL.PS 모듈의 Get-ADALToken cmdlet을 사용합니다.

  1. PowerShell 스크립트 파일(.ps1 확장명)을 만들고 다음 스크립트를 파일에 복사/붙여넣습니다.

    • $authority$resourceUrl은 다음 섹션에서 나중에 업데이트됩니다.
    • 업데이트 $appId$redirectUri, Microsoft Entra 앱 등록에서 지정한 값과 일치합니다.
    $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. 클라이언트 애플리케이션에서 요청한 경우 나중에 실행할 수 있도록 스크립트 파일을 저장합니다.

응용 프로그램 구축 및 테스트

마지막으로 클라이언트 애플리케이션을 빌드하고 테스트합니다.

  1. F6(솔루션 빌드)을 사용하여 클라이언트 애플리케이션을 빌드합니다. 빌드 오류가 없는 경우 F5(디버깅 시작) 키를 사용하여 애플리케이션을 실행합니다.

  2. 프로젝트가 빌드 및 실행에 성공하면 SDK가 AcquireOAuth2Token() 메서드를 호출할 때마다 애플리케이션에서 액세스 토큰을 묻는 메시지가 표시됩니다. 여러 번 메시지가 표시되고 요청된 값이 동일한 경우 이전에 생성된 토큰을 다시 사용할 수 있습니다.

  3. 프롬프트에 대한 액세스 토큰을 생성하려면 PowerShell 스크립트로 돌아가서 다음을 수행합니다.

    • $authority$resourceUrl 변수를 업데이트합니다. 2단계의 콘솔 출력에 지정된 값과 일치해야 합니다. 이러한 값은 AcquireOAuth2Token()challenge 매개 변수에서 MIP SDK가 제공합니다.

    • PowerShell 스크립트를 실행합니다. cmdlet은 Get-ADALToken 아래 예제와 유사하게 Microsoft Entra 인증 프롬프트를 트리거합니다. 2단계의 콘솔 출력에 제공된 동일한 계정을 지정합니다. 로그인에 성공하면 액세스 토큰이 클립보드에 배치됩니다.

      Visual Studio acquire token sign-in

    • 로그인 계정으로 실행되는 동안 애플리케이션이 MIP API에 액세스할 수 있도록 동의해야 할 수도 있습니다. 이는 Microsoft Entra 애플리케이션 등록이 사전 동의되지 않거나("MIP SDK 설정 및 구성"에 설명된 대로) 다른 테넌트의 계정으로 로그인하는 경우(애플리케이션이 등록된 테넌트 이외의) 경우에 발생합니다. 동의를 기록하려면 수락을 클릭하기만 하면 됩니다.

      Visual Studio consent

  4. 액세스 토큰을 2단계의 프롬프트에 붙여넣고 나면 콘솔 출력에 다음 예제와 유사한 민감도 레이블이 표시되어야 합니다.

    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 . . .
    

    참고 항목

    다음 빠른 시작에서 사용할 하나 이상의 민감도 레이블(예: f42a3342-8706-4288-bd31-ebb85995028z)의 ID를 복사하여 저장합니다.

문제 해결

C++ 애플리케이션을 실행하는 동안의 문제

요약 오류 메시지 솔루션
잘못된 액세스 토큰 예외가 발생하였습니다... 액세스 토큰이 잘못되거나 만료되었나요?

실패한 API 호출: profile_add_engine_async 실패: [class mip::PolicySyncException] 정책 획득 실패, http 상태 코드로 요청 실패: 401, x-ms-diagnostics: [2000001;reason="요청과 함께 제출된 OAuth 토큰을 구문 분석할 수 없습니다.";error_category="invalid_token"], correlationId:[35bc0023-3727-4eff-8062-000006d5d672]'

C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe(프로세스 29924)가 코드 0으로 종료되었습니다.

이 창을 닫으려면 아무 키나 누르세요. . .
프로젝트가 성공적으로 빌드되었지만 왼쪽과 유사한 출력이 표시되면 AcquireOAuth2Token() 메서드에 유효하지 않거나 만료된 토큰이 있을 수 있습니다. PowerShell 스크립트 만들기로 돌아가 액세스 토큰을 생성하고 액세스 토큰을 다시 생성하고, AcquireOAuth2Token()을 다시 업데이트하고, 다시 빌드/다시 테스트합니다. jwt.ms 단일 페이지 웹 애플리케이션을 사용하여 토큰 클레임과 해당 클레임을 검사하고 확인할 수도 있습니다.
민감도 레이블이 구성되지 않습니다. 해당 없음 프로젝트가 성공적으로 빌드되었지만 콘솔 창에 출력이 없는 경우 조직의 민감도 레이블이 올바르게 구성되어 있는지 확인합니다. 자세한 내용은 “레이블 분류 및 보호 설정 정의”에서 MIP SDK 설정 및 구성을 참조하세요.

다음 단계

조직에 대한 민감도 레이블을 나열하는 방법을 알아보았으므로 이제 다음 빠른 시작을 시도해 보세요.