포함된 애플리케이션 문제 해결

이 문서에서는 Power BI의 콘텐츠를 포함할 때 발생할 수 있는 몇 가지 일반적인 문제에 대해 설명합니다.

문제 해결 도구

Fiddler 추적

Fiddler는 HTTP 트래픽을 모니터링하는 Telerik의 무료 도구입니다. 클라이언트 머신에서 Power BI API를 사용하여 트래픽을 볼 수 있습니다. 이 도구에서 오류 및 다른 관련 정보를 표시할 수 있습니다.

Power BI API HTTP 트래픽을 보여주는 Fiddler 도구 출력 창의 스크린샷.

프런트 엔드 디버깅을 위한 브라우저의 F12

F12 키를 사용하면 브라우저 내에서 개발자 창이 실행됩니다. 이 도구를 사용하면 네트워크 트래픽을 살펴보고 다른 중요한 정보를 확인할 수 있습니다.

네트워크 트래픽을 보여주는 웹 브라우저 개발자 창의 네트워크 탭 스크린샷

Power BI 응답에서 오류 세부 정보 추출

이 코드 조각은 HTTP 예외에서 오류 세부 정보를 추출하는 방법을 보여줍니다.

public static string GetExceptionText(this HttpOperationException exc)
{
    var errorText = string.Format("Request: {0}\r\nStatus: {1} ({2})\r\nResponse: {3}",
    exc.Request.Content, exc.Response.StatusCode, (int)exc.Response.StatusCode, exc.Response.Content);
    if (exc.Response.Headers.ContainsKey("RequestId"))
    {
        var requestId = exc.Response.Headers["RequestId"].FirstOrDefault();
        errorText += string.Format("\r\nRequestId: {0}", requestId);
    }

    return errorText;
}

요청 ID(및 문제 해결에 대한 오류 세부 정보)를 기록해 두는 것이 좋습니다. Microsoft 지원에 문의할 때 요청 ID를 제공해 주세요.

앱 등록

앱 등록 실패

Azure Portal 또는 Power BI 앱 등록 페이지 내의 오류 메시지는 앱을 등록할 수 있는 충분한 권한이 없음을 사용자에게 알립니다. 애플리케이션을 등록하려면 Microsoft Entra 테넌트에서 관리자여야 합니다. 그렇지 않으면 관리자가 아닌 사용자에 대해 애플리케이션 등록을 사용하도록 설정해야 합니다.

새 앱을 등록할 때 Azure Portal에 Power BI 서비스가 표시되지 않음

적어도 사용자 한 명 이상이 Power BI에 등록되어야 합니다. API 목록에 Power BI 서비스가 표시되지 않으면 Power BI에 등록된 사용자가 없는 것입니다.

애플리케이션 개체 ID와 서비스 주체 개체 ID의 차이점은 무엇일까요?

Microsoft Entra 앱을 등록할 때 개체 ID라는 두 개의 매개 변수가 있습니다. 이 섹션에서는 각 매개 변수의 목적과 이를 가져오는 방법을 설명합니다.

애플리케이션 개체 ID

단순히 개체 ID라고도 하는 애플리케이션 개체 ID는 Microsoft Entra 애플리케이션 개체의 고유 ID입니다.

애플리케이션 개체 ID를 가져오려면 Microsoft Entra 앱으로 이동하여 개요에서 복사합니다.

Microsoft Entra 애플리케이션의 개요 블레이드에 있는 개체 ID를 보여주는 Azure Portal 창의 스크린샷

서비스 주체 개체 ID

단순히 개체 ID라고도 하는 주체 개체 ID는 Microsoft Entra 애플리케이션과 연결된 서비스 주체 개체고유 ID입니다.

주 개체 ID를 가져오려면 Microsoft Entra 앱으로 이동하고 개요에서 로컬 디렉터리의 관리되는 애플리케이션에서 앱 링크를 선택합니다.

Microsoft Entra 애플리케이션의 개요 블레이드에 있는 로컬 디렉터리의 관리되는 애플리케이션 옵션을 보여주는 Azure Portal 창의 스크린샷

속성 섹션에서 개체 ID를 복사합니다.

Microsoft Entra 애플리케이션의 개요 블레이드에 있는 속성 섹션의 주체 개체 ID를 보여주는 Azure Portal 창의 스크린샷

인증

AADSTS70002 또는 AADSTS50053으로 인증하지 못했습니다.

(AADSTS70002: 자격 증명의 유효성 검사 오류입니다. AADSTS50053: 잘못된 사용자 ID 또는 암호를 사용하여 너무 많이 로그인을 시도했습니다.)

Power BI Embedded 및 Microsoft Entra 직접 인증을 사용하는 경우 직접 인증이 사용되지 않으므로 로그인하려고 할 때 이전 메시지와 같은 메시지가 표시될 수 있습니다.

조직 또는 서비스 주체로 범위가 지정된 Microsoft Entra 정책을 사용하여 직접 인증을 다시 설정할 수 있습니다.

이 정책은 앱별 기준에만 사용하도록 설정하는 것이 좋습니다.

이 정책을 만들려면 정책을 만들고 할당하는 디렉터리에서 전역 관리자여야 합니다. 정책을 만들고 이 애플리케이션에 SP를 할당하기 위한 샘플 스크립트는 다음과 같습니다.

  1. Microsoft Graph PowerShell SDK를 설치합니다.

  2. 다음 PowerShell 명령을 한 줄씩 실행합니다(결과적으로 $sp 변수에 둘 이상의 애플리케이션이 없는지 확인).

    Connect-MgGraph -Scopes "Directory.Read.All","Policy.ReadWrite.ApplicationConfiguration"
    
    $sp = Get-MgServicePrincipal -Filter "DisplayName eq 'Name_Of_Application'"
    
    $policy = New-MgBetaPolicyActivityBasedTimeoutPolicy -Definition @("{`"AllowCloudPasswordValidation`":true}") `
       -DisplayName EnableDirectAuth -IsOrganizationDefault:$false
    
    $params = @{
       "@odata.id" = "https://graph.microsoft.com/v1.0/policies/claimsMappingPolicies/$policy.Id"
    }
    New-MgBetaServicePrincipalClaimMappingPolicyByRef -ServicePrincipalId $sp.Id `
       -BodyParameter $params
    

정책이 할당되면 전파될 때까지 약 15~20초 동안 기다린 후에 테스트합니다.

유효 ID 입력 시 토큰 생성 실패

다음과 같은 몇 가지 이유로 유효 ID 입력 시 GenerateToken이 실패할 수 있습니다.

  • 의미 체계 모델에서 유효한 ID를 지원하지 않습니다.
  • 사용자 이름이 제공되지 않았습니다.
  • 역할이 제공되지 않았습니다.
  • DatasetId가 제공되지 않았습니다.
  • 사용자에게 올바른 권한이 없습니다.

문제를 확인하려면 다음 단계를 수행합니다.

  • 데이터 세트를 가져오기를 실행합니다. IsEffectiveIdentityRequired 속성은 true인가요?
  • 모든 EffectiveIdentity에 대해 사용자 이름이 필요합니다.
  • IsEffectiveIdentityRolesRequired가 true이면 역할이 필요합니다.
  • DatasetId는 모든 EffectiveIdentity에 필요합니다.
  • Analysis Services의 경우 마스터 사용자는 게이트웨이 관리자여야 합니다.

AADSTS90094: 권한 부여에는 관리자 권한이 필요합니다.

증상:

관리자가 아닌 사용자가 동의를 허용하면서 애플리케이션에 처음으로 로그인하려고 하면 다음 오류 중 하나를 받습니다.

  •   ConsentTest needs permission to access resources in your organization that only an admin can grant. Ask an admin to grant permission to this app before you can use it.
    
  •   AADSTS90094: The grant requires admin permission.
    

    동의 테스트 권한 오류를 보여주는 Azure Portal 창 로그인 대화 상자의 스크린샷.

관리 사용자는 성공적으로 로그인하고 동의를 허용할 수 있습니다.

근본 원인:

사용자 동의는 테넌트에 대해 사용되지 않습니다.

몇 가지 수정은 가능합니다.

  • 전체 테넌트(모든 사용자, 모든 애플리케이션)에 대해 사용자 동의 사용:
  1. Azure Portal에서 Microsoft Entra ID>사용자로 이동하고 사용자 설정을 그룹화>합니다.
  2. 사용자가 앱이 사용자 대신 회사 데이터에 액세스하는 것에 동의할 수 있음 설정을 활성화하고 변경 내용을 저장합니다.

Azure 포털의 스크린샷.

  • 관리자가 전체 테넌트 또는 특정 사용자에게 애플리케이션에 대한 권한을 부여할 수 있습니다.

CS1061 오류

다음 오류가 발생하는 경우 Microsoft.IdentityModel.Clients.ActiveDirectory를 다운로드합니다.

'AuthenticationContext' does not contain a definition for 'AcquireToken' and no accessible 'AcquireToken' accepting a first argument of type 'AuthenticationContext' could be found (are you missing a using directive or an assembly reference?)

다른 테넌트에 대한 Microsoft Entra 토큰(게스트 사용자)

조직에 포함할 때 Microsoft Entra 게스트 사용자가 콘텐츠에 액세스할 수 있도록 하려면 매개 변수에 테넌트 ID를 authorityUri 지정해야 합니다.

  • 조직의 테넌트에서 인증하기 위한 URL:

    https://login.microsoftonline.com/common/v2.0

  • 게스트 Microsoft Entra 사용자를 인증하기 위한 URL:

    https://login.microsoftonline.com/<tenant ID>

테넌트 ID를 찾으려면 Microsoft Entra 테넌트 ID 및 기본 do기본 이름 찾기의 지침을 사용할 수 있습니다.

자세한 내용은 애플리케이션 다중 테넌트 만들기를 참조하세요.

데이터 원본

ISV에서 동일한 데이터 원본에 대해 서로 다른 자격 증명을 사용하려고 함

마스터 사용자 한 명마다 데이터 원본의 자격 증명 집합을 하나씩 사용할 수 있습니다. 여러 자격 증명을 사용해야 하는 경우 더 많은 마스터 사용자를 만들어야 합니다. 그런 다음 각 마스터 사용자의 컨텍스트에 다른 자격 증명을 할당하고 해당 사용자의 Microsoft Entra 토큰을 사용하여 포함합니다.

IError 개체를 사용하여 포함된 애플리케이션 문제 해결

JavaScript SDK에서 오류 이벤트에 의해 반환된 IError 개체를 사용하여 애플리케이션을 디버그하고 오류의 원인을 더 잘 알아보세요.

IError 개체를 확보한 후에는 사용 중인 포함 유형에 해당하는 적절한 일반 오류 테이블을 확인해야 합니다. IError 속성을 테이블의 속성과 비교하여 가능한 실패 원인을 찾아보세요.

Power BI 사용자에 대해 포함할 경우 발생하는 일반적인 오류

메시지 자세한 메시지 오류 코드 가능한 이유
TokenExpired 액세스 토큰이 만료되었습니다. 새 액세스 토큰으로 다시 제출하세요. 403 만료된 토큰
PowerBIEntityNotFound 보고서를 가져오지 못했습니다. 404
  • 잘못된 보고서 ID
  • 보고서가 존재하지 않음
  • 잘못된 매개 변수 powerbiToken 매개 변수가 지정되지 않았습니다. 해당 없음
  • 액세스 토큰이 지정되지 않았음
  • 보고서 ID가 제공되지 않았음
  • LoadReportFailed 초기화하지 못했습니다. 클러스터를 확인할 수 없습니다. 403
  • 잘못된 액세스 토큰
  • 포함 형식이 토큰 형식과 일치하지 않습니다.
  • PowerBINotAuthorizedException 보고서를 가져오지 못했습니다. 401
  • 잘못된 그룹 ID
  • 권한 없는 그룹
  • TokenExpired 액세스 토큰이 만료되었습니다. 새 액세스 토큰으로 다시 제출하세요. 보고서 시각적 개체를 렌더링할 수 없음: 시각적 개체 제목 해당 없음
  • 데이터 쿼리
  • 만료된 토큰
  • OpenConnectionError 시각적 개체를 표시할 수 없습니다. 보고서 시각적 개체를 렌더링할 수 없음: 시각적 개체 제목 해당 없음 용량과 관련된 보고서가 세션에서 열려 있는 동안 용량이 일시 중지되었거나 삭제되었습니다.
    ExplorationContainer_FailedToLoadModel_DefaultDetails 이 보고서와 연결된 모델 스키마를 로드할 수 없습니다. 서버에 연결되어 있는지 확인하고 다시 시도하세요. 해당 없음
  • 용량이 일시 중지됨
  • 용량이 삭제됨
  • 포함 토큰을 사용하여 Power BI가 아닌 사용자에 대해 포함하는 경우 발생하는 일반적인 오류

    메시지 자세한 메시지 오류 코드 이유
    TokenExpired 액세스 토큰이 만료되었습니다. 새 액세스 토큰으로 다시 제출하세요. 403 만료된 토큰
    LoadReportFailed 보고서를 가져오지 못했습니다. 404
  • 잘못된 보고서 ID
  • 보고서가 존재하지 않음
  • LoadReportFailed 보고서를 가져오지 못했습니다. 403 보고서 ID가 토큰과 일치하지 않음
    LoadReportFailed 보고서를 가져오지 못했습니다. 500 보고서 제공 ID가 GUID가 아닙니다.
    잘못된 매개 변수 powerbiToken 매개 변수가 지정되지 않았습니다. 해당 없음
  • 액세스 토큰이 지정되지 않았음
  • 보고서 ID가 제공되지 않았음
  • LoadReportFailed 초기화하지 못했습니다. 클러스터를 확인할 수 없습니다. 403 잘못된 토큰 유형 또는 잘못된 토큰
    PowerBINotAuthorizedException 보고서를 가져오지 못했습니다. 401 잘못되었거나 권한이 없는 그룹 ID
    TokenExpired 액세스 토큰이 만료되었습니다. 새 액세스 토큰으로 다시 제출하세요. 보고서 시각적 개체를 렌더링할 수 없음: 시각적 개체 제목 해당 없음
  • 데이터 쿼리
  • 만료된 토큰
  • OpenConnectionError 시각적 개체를 표시할 수 없습니다. 보고서 시각적 개체를 렌더링할 수 없음: 시각적 개체 제목 해당 없음 용량과 관련된 보고서가 세션에서 열려 있는 동안 용량이 일시 중지되었거나 삭제되었습니다.
    ExplorationContainer_FailedToLoadModel_DefaultDetails 이 보고서와 연결된 모델 스키마를 로드할 수 없습니다. 서버에 연결되어 있는지 확인하고 다시 시도하세요. 해당 없음
  • 용량이 일시 중지됨
  • 용량이 삭제됨
  • 보고서 가져오기 실패 - 오류 401 - 자체 해결

    사용자 소유 데이터 시나리오에서 경우에 따라 사용자는 Power BI 포털에 액세스한 후 자체적으로 해결되는 401 오류가 발생합니다. 401 오류가 발생하면 사용자 권한 업데이트에 설명된 대로 앱에서 RefreshUser Permissions 호출을 추가합니다.

    의미 체계 모델

    사용자가 볼 수 있는 데이터 부분 관리

    의미 체계 모델에 대한 읽기 권한이 있는 모든 사용자는 전체 스키마(테이블, 열 및 측정값)와 모든 데이터를 볼 수 있습니다. 동일한 의미 체계 모델에서 개별적으로 원시 데이터 및 집계된 데이터에 대한 보기 권한을 제어할 수 없습니다.

    사용자가 볼 수 있는 데이터 부분을 관리하려면 다음 방법 중 하나를 사용하세요.

    • Power BI RLS(행 수준 보안)를 사용하는 행 수준 필터링.

    • OLS(개체 수준 보안).

    • 데이터를 다양한 의미 체계 모델로 구분합니다. 예를 들어 집계된 데이터만 포함하고 해당 의미 체계 모델에 대한 액세스 권한만 사용자에게 제공하는 의미 체계 모델을 만들 수 있습니다.

    콘텐츠 렌더링

    포함된 Power BI 항목(예: 보고서 및 대시보드)의 렌더링 문제를 해결하려면 이 섹션을 검토합니다.

    Power BI 항목이 Power BI 서비스에서 로드되는지 확인

    애플리케이션 또는 포함 API 관련 문제를 해결하려면 Power BI 서비스(powerbi.com)에서 항목을 볼 수 있는지 확인합니다.

    Power BI 항목이 Power BI 포함 분석 플레이그라운드에서 로드되는지 확인합니다.

    애플리케이션 관련 문제를 해결하려면 Power BI 포함 분석 플레이그라운드에서 Power BI 항목을 볼 수 있는지 확인합니다.

    액세스 토큰이 만료되지 않았는지 확인합니다.

    보안을 위해 액세스 토큰(Microsoft Entra 토큰 또는 포함 토큰)의 수명은 제한됩니다. 액세스 토큰을 지속적으로 모니터링하고 필요한 경우 새로 고쳐야 합니다. 자세한 내용은 액세스 토큰 새로 고침을 참조하세요.

    성능

    최상의 성능을 발휘하는 포함 콘텐츠를 가져오려면 Power BI 포함 분석 모범 사례를 따르는 것이 좋습니다.

    포함 설정 도구

    포함 설정 도구를 통해 신속하게 샘플 애플리케이션을 다운로드할 수 있습니다. 다음 샘플과 애플리케이션을 비교할 수 있습니다.

    필수 조건

    포함 설정 도구를 사용하기 전에 적절한 필수 조건이 모두 있는지 확인합니다. Power BI Pro 계정과 Microsoft Azure 구독이 필요합니다.

    일반적인 문제

    포함 설정 도구를 사용하여 테스트하는 동안 발생할 수 있는 몇 가지 일반적인 문제는 다음과 같습니다.

    고객에 대한 콘텐츠 포함 사용 샘플 애플리케이션

    고객에 대한 콘텐츠 포함 환경을 사용하는 경우 PowerBI-Developer-Samples.zip 파일을 저장하고 압축을 풉니다. 그런 다음, PowerBI-Developer-Samples-master\App Owns Data 폴더를 열고 PowerBIEmbedded_AppOwnsData.sln 파일을 실행합니다.

    • 권한 부여를 선택하는 경우(권한 부여 단계) 다음과 같은 오류가 발생합니다.
    AADSTS70001: Application with identifier <client ID> wasn't found in the directory <directory ID>
    

    솔루션은 팝업을 닫는 것입니다. 몇 초 정도 기다린 후에 다시 시도하세요. 이 작업을 여러 번 반복해야 합니다. 애플리케이션 등록 프로세스의 완료에서 외부 API에 사용할 수 있을 때까지의 시간 간격으로 인해 문제가 발생합니다.

    • 샘플 앱을 실행하는 경우 다음과 같은 오류 메시지가 표시됩니다.
    Password is empty. Please fill password of Power BI username in web.config.
    

    샘플 애플리케이션에 삽입되지 않는 유일한 값이 사용자 암호이기 때문에 이 오류가 발생합니다. 솔루션에서 Web.config 파일을 열고 사용자의 암호로 pbiPassword 필드를 채웁니다.

    • 경로를 찾을 수 없음
    AADSTS50079: The user is required to use multi-factor authentication.
    

    MFA를 사용하도록 설정하지 않은 Microsoft Entra 계정을 사용해야 합니다.

    조직에 대한 콘텐츠 포함 사용 샘플 애플리케이션

    조직에 대한 콘텐츠 포함 환경을 사용하는 경우 PowerBI-Developer-Samples.zip 파일을 저장하고 압축을 풉니다. 그런 다음, PowerBI-Developer-Samples-master\User Owns Data\integrate-report-web-app 폴더를 열고, pbi-saas-embed-report.sln 파일을 실행합니다.

    • 조직에 대한 콘텐츠 포함 샘플 앱을 실행하는 경우 다음과 같은 오류가 발생합니다.
    AADSTS50011: The reply URL specified in the request doesn't match the reply URLs configured for the application: <client ID>
    

    웹 서버 애플리케이션에 지정된 리디렉션 URL이 샘플의 URL과 다르기 때문에 이 오류가 발생합니다. 샘플 애플리케이션을 등록하려면 리디렉션 URL로 https://localhost:13526/을 사용합니다.

    등록된 애플리케이션 을 편집하려면 애플리케이션이 웹 API에 대한 액세스를 제공할 수 있도록 Microsoft Entra 등록 응용 프로그램을 업데이트합니다.

    Power BI 사용자 프로필 또는 데이터를 편집하려는 경우 Power BI 데이터를 편집하는 방법을 알아봅니다.

    • 경로를 찾을 수 없음
    AADSTS50079: The user is required to use multi-factor authentication.
    

    MFA를 사용하도록 설정하지 않은 Microsoft Entra 계정을 사용해야 합니다.

    자세한 내용은 Power BI Embedded FAQ를 참조하세요.

    추가 지원이 필요한 경우 지원 담당자에게 문의하거나 Azure portal을 통해 지원 티켓을 작성하고 발생한 오류 메시지를 제공하세요.

    추가 질문이 있으신가요? Power BI 커뮤니티에 문의