다음을 통해 공유


포함 토큰 생성

적용 대상: 앱 소유 데이터 사용자 소유 데이터

토큰 생성은 웹앱 또는 포털에서 Power BI 보고서 또는 의미 체계 모델을 포함하기 위한 토큰을 생성할 수 있는 REST API입니다. 단일 항목 또는 여러 보고서나 의미 체계 모델에 대한 토큰을 생성할 수 있습니다. 토큰은 Power BI 서비스에 대한 요청에 권한을 부여하는 데 사용됩니다.

토큰 생성 API는 단일 ID(마스터 사용자 또는 서비스 주체)를 사용하여 앱에서 해당 사용자의 자격 증명(유효 ID)에 따라 개별 사용자에 대한 토큰을 생성합니다.

인증에 성공하면 관련 데이터에 대한 액세스 권한이 부여됩니다.

참고 항목

토큰 생성은 보고서와 의미 체계 모델에서, 그리고 단일 또는 여러 항목에서 작동하는 최신 버전 2 API입니다. 대시보드 및 타일의 경우 V1 대시보드 GenerateTokenInGroup타일 GenerateTokenInGroup을 사용하십시오.

데이터 보호

여러 고객의 데이터를 처리하는 경우 데이터를 보호하는 두 가지 방법인 작업 영역 기반 격리행 수준 보안 기반 격리를 고려하세요. 서비스 주체 프로필과 행 수준 보안에서 이들 간의 자세한 비교를 찾을 수 있습니다.

프로필에서 작업 영역 기반 격리를 사용하는 것이 좋지만 RLS 접근 방식을 사용하려면 이 문서의 끝에 있는 RLS 섹션을 검토하세요.

토큰 권한 및 보안

토큰 생성 API에서 GenerateTokenRequest 섹션에서 토큰 사용 권한을 설명합니다.

액세스 수준

  • 사용자에게 보기 또는 편집 권한을 부여하려면 allowEdit 매개 변수를 사용합니다.

  • 사용자가 해당 작업 영역에서 새 보고서(SaveAs 또는 CreateNew)를 만들 수 있도록 하려면 embed 토큰에 작업 영역 ID를 추가합니다.

행 수준 보안

RLS(행 수준 보안)를 사용하면 ID가 토큰을 생성하는 데 사용하는 서비스 주체 또는 마스터 사용자의 ID와 다를 수 있습니다. 다른 ID를 사용하면 대상으로 지정된 사용자에 따라 포함된 정보를 표시할 수 있습니다. 예를 들어 애플리케이션에서 사용자에게 로그인을 요청한 다음, 로그인한 사용자가 영업 직원인 경우 판매 정보만 포함된 보고서를 표시할 수 있습니다.

RLS를 사용하는 경우, 경우에 따라 사용자의 ID(EffectiveIdentity 매개 변수)를 생략할 수 있습니다. EffectiveIdentity 매개 변수를 사용하지 않으면 토큰이 전체 데이터베이스에 액세스할 수 있습니다. 이 메서드는 전체 의미 체계 모델을 볼 수 있는 권한이 있는 관리자 및 관리자와 같은 사용자에게 액세스 권한을 부여하는 데 사용할 수 있습니다. 그러나 모든 시나리오에서 이 메서드를 사용할 수는 없습니다. 다음 표에서는 다양한 RLS 유형을 나열하고 사용자의 ID를 지정하지 않고 사용할 수 있는 인증 방법을 보여 줍니다.

이 표에는 각 RLS 유형에 적용되는 고려 사항 및 제한 사항도 나와 있습니다.

RLS 형식 유효 사용자 ID를 지정하지 않고 embed 토큰을 생성할 수 있나요? 고려 사항 및 제한 사항
클라우드 RLS(클라우드 행 수준 보안) ✔ 마스터 사용자
✖ 서비스 주체
RDL(페이지를 매긴 보고서) ✖ 마스터 사용자
✔ 서비스 주체
마스터 사용자를 사용하여 RDL용 embed 토큰을 생성할 수 없습니다.
온-프레미스 라이브 연결의 AS(Analysis Services) ✔ 마스터 사용자
✖ 서비스 주체
포함 토큰을 생성하는 사용자에게는 다음 권한 중 하나가 필요합니다.
  • 게이트웨이 관리자 권한
  • Datasource impersonate 권한(ReadOverrideEffectiveIdentity)
  • AS(Analysis Services) Azure 라이브 연결 ✔ 마스터 사용자
    ✖ 서비스 주체
    embed 토큰을 생성하는 사용자의 ID는 재정의할 수 없습니다. 사용자 지정 데이터를 사용하여 동적 RLS 또는 보안 필터링을 구현할 수 있습니다.

    참고: 서비스 주체는 개체 ID를 유효한 ID(RLS 사용자 이름)로 제공해야 합니다.
    SSO(Single Sign On) ✔ 마스터 사용자
    ✖ 서비스 주체
    유효한 ID 개체에서 ID Blob 속성을 사용하여 명시적 (SSO) ID를 제공할 수 있습니다.
    SSO 및 클라우드 RLS ✔ 마스터 사용자
    ✖ 서비스 주체
    다음을 제공해야 합니다.
  • 유효한 ID 개체의 ID Blob 속성이 있는 명시적 (SSO) ID
  • 유효한 (RLS) ID(사용자 이름)
  • 참고 항목

    서비스 주체는 항상 다음을 제공해야 합니다.

    • RLS 의미 체계 모델을 사용하는 모든 항목의 ID
    • 정의된 컨텍스트(SSO) ID를 사용하는 유효 RLS ID(SSO 의미 체계 모델의 경우)

    Power BI 의미 체계 모델용 DirectQuery

    다른 Power BI 의미 체계 모델에 대한 직접 쿼리 연결이 있는 의미 체계 모델이 있는 Power BI 보고서를 포함하려면 다음을 수행합니다.

    • Power BI 포털에서 프리미엄 용량에 대해 읽기/쓰기 활성화에 설명된 대로 XMLA 엔드포인트를 읽기 전용 또는 읽기 쓰기로 설정합니다. 이 작업은 용량당 한 번만 수행하면 됩니다.

    • 다중 리소스 embed 토큰 생성

      • 요청의 모든 데이터 세트 ID를 지정합니다.
      • 요청의 각 의미 체계 모델에 대해 XmlaPermissions을(를) 읽기 전용으로 설정합니다.
      • 각 SSO(Single Sign-On) 사용 데이터 원본에 대해 DatasourceIdentity의 데이터 원본에 대한 ID Blob을 제공합니다.

    만료되기 전에 토큰 갱신

    토큰에는 시간 제한이 있습니다. 따라서 Power BI 항목을 포함하면 상호 작용하는 데 시간이 제한됩니다. 사용자에게 지속적인 환경을 제공하려면 만료되기 전에 토큰을 갱신(또는 새로 고침)합니다.

    대시보드 및 타일

    토큰 생성은 보고서와 의미 체계 모델에서 작동합니다. 대시보드 또는 타일에 대한 포함 토큰을 생성하려면 버전 1 Dashboards GenerateTokenInGroup 또는 Tiles GenerateTokenInGroup API를 사용합니다. 해당 API는 한 번에 하나의 항목에 대해서만 토큰을 생성합니다. 여러 항목에 대한 토큰을 생성할 수 없습니다.

    이와 같은 API의 경우:

    • accessLevel 매개 변수를 사용하여 사용자의 액세스 수준을 결정합니다.

      • 보기 - 사용자에게 보기 권한을 부여합니다.

      • 편집 - 사용자에게 보기 및 편집 권한을 부여합니다(보고서에 대한 embed 토큰을 생성할 때만 적용됨).

      • 만들기 - 사용자에게 보고서를 만들 수 있는 권한을 부여합니다(보고서 생성을 위한 포함 토큰을 생성하는 경우에만 적용됨). 보고서 생성을 위해 datasetId 매개 변수도 제공해야 합니다.

    • allowSaveAs 부울을 사용하여 사용자가 보고서를 새 보고서로 저장할 수 있습니다. 이 설정은 기본적으로 false로 설정되며, 보고서에 대한 포함 토큰을 생성할 때만 적용됩니다.

    고려 사항 및 제한 사항

    • 보안상의 이유로 embed 토큰의 수명은 GenerateToken API를 호출하는 데 사용되는 Microsoft Entra 토큰의 남은 수명으로 설정됩니다. 따라서 동일한 Microsoft Entra 토큰을 사용하여 여러 포함 토큰을 생성하는 경우 생성된 embed 토큰의 수명은 호출할 때마다 더 짧아지게 됩니다.

    • 포함할 의미 체계 모델과 항목이 서로 다른 두 작업 영역에 있는 경우 서비스 주체 또는 마스터 사용자는 두 작업 영역의 구성원 이상이어야 합니다.

    • DLS(Data Lake Storage)를 사용하여 항목을 포함하려면 토큰 생성 APIV2가 필요합니다.

    • 내 작업 영역에 대한 embed 토큰을 만들 수 없습니다.