포함 토큰 생성
적용 대상: 앱 소유 데이터 사용자 소유 데이터
토큰 생성은 웹앱 또는 포털에서 Power BI 보고서 또는 의미 체계 모델을 포함하기 위한 토큰을 생성할 수 있는 REST API입니다. 단일 항목 또는 여러 보고서나 의미 체계 모델에 대한 토큰을 생성할 수 있습니다. 토큰은 Power BI 서비스에 대한 요청에 권한을 부여하는 데 사용됩니다.
토큰 생성 API는 앱에서 해당 사용자의 자격 증명(유효한 ID)에 따라 단일 ID(마스터 사용자 또는 서비스 주체)를 사용하여 개별 사용자에 대한 토큰을 생성합니다.
인증에 성공하면 관련 데이터에 대한 액세스 권한이 부여됩니다.
참고 항목
토큰 생성은 보고서와 의미 체계 모델에서, 그리고 단일 또는 여러 항목에서 작동하는 최신 버전 2 API입니다. 이는 레거시 버전 1 API보다 선호됩니다. 대시보드 및 타일의 경우 V1 Dashboards GenerateTokenInGroup 및 Tiles GenerateTokenInGroup을 사용합니다.
데이터 보호
여러 고객의 데이터를 처리하는 경우 데이터를 보호하는 두 가지 방법인 작업 영역 기반 격리 및 행 수준 보안 기반 격리를 고려하세요. 서비스 주체 프로필과 행 수준 보안에서 이들 간의 자세한 비교를 찾을 수 있습니다.
프로필에서 작업 영역 기반 격리를 사용하는 것이 좋지만 RLS 접근 방식을 사용하려면 이 문서의 끝에 있는 RLS 섹션을 검토하세요.
토큰 권한 및 보안
토큰 API 생성에서 GenerateTokenRequest 섹션은 토큰 권한을 설명합니다.
액세스 수준
allowEdit 매개 변수를 사용하여 사용자에게 보기 또는 편집 권한을 부여합니다.
사용자가 해당 작업 영역에서 새 보고서를 만들 수 있도록 허용하려면 포함 토큰에 작업 영역 ID를 추가합니다(SaveAs 또는 CreateNew).
행 수준 보안
RLS(행 수준 보안)를 사용하면 ID가 토큰을 생성하는 데 사용하는 서비스 주체 또는 마스터 사용자의 ID와 다를 수 있습니다. 다른 ID를 사용하면 대상으로 지정된 사용자에 따라 포함된 정보를 표시할 수 있습니다. 예를 들어 애플리케이션에서 사용자에게 로그인을 요청한 다음, 로그인한 사용자가 영업 직원인 경우 판매 정보만 포함된 보고서를 표시할 수 있습니다.
RLS를 사용하는 경우, 경우에 따라 사용자의 ID(EffectiveIdentity 매개 변수)를 생략할 수 있습니다. EffectiveIdentity 매개 변수를 사용하지 않으면 토큰이 전체 데이터베이스에 액세스할 수 있습니다. 이 메서드는 전체 의미 체계 모델을 볼 수 있는 권한이 있는 관리자 및 관리자와 같은 사용자에게 액세스 권한을 부여하는 데 사용할 수 있습니다. 그러나 모든 시나리오에서 이 메서드를 사용할 수는 없습니다. 아래 표에는 여러 RLS 유형이 나열되어 있으며 사용자의 ID를 지정하지 않고 사용할 수 있는 인증 방법이 나와 있습니다.
이 표에는 각 RLS 유형에 적용되는 고려 사항 및 제한 사항도 나와 있습니다.
RLS 형식 | 유효 사용자 ID를 지정하지 않고 embed 토큰을 생성할 수 있나요? | 고려 사항 및 제한 사항 |
---|---|---|
클라우드 RLS(클라우드 행 수준 보안) | ✔ 마스터 사용자 ✖ 서비스 주체 |
|
RDL(페이지를 매긴 보고서) | ✖ 마스터 사용자 ✔ 서비스 주체 |
마스터 사용자를 사용하여 RDL용 embed 토큰을 생성할 수 없습니다. |
온-프레미스 라이브 연결의 AS(Analysis Services) | ✔ 마스터 사용자 ✖ 서비스 주체 |
포함 토큰을 생성하는 사용자에게는 다음 권한 중 하나가 필요합니다. |
AS(Analysis Services) Azure 라이브 연결 | ✔ 마스터 사용자 ✖ 서비스 주체 |
embed 토큰을 생성하는 사용자의 ID는 재정의할 수 없습니다. 사용자 지정 데이터를 사용하여 동적 RLS 또는 보안 필터링을 구현할 수 있습니다. 참고: 서비스 주체는 개체 ID를 유효한 ID(RLS 사용자 이름)로 제공해야 합니다. |
SSO(Single Sign On) | ✔ 마스터 사용자 ✖ 서비스 주체 |
유효한 ID 개체에서 ID Blob 속성을 사용하여 명시적 (SSO) ID를 제공할 수 있습니다. |
SSO 및 클라우드 RLS | ✔ 마스터 사용자 ✖ 서비스 주체 |
다음을 제공해야 합니다. |
참고 항목
서비스 주체는 항상 다음 정보를 제공해야 합니다.
- RLS 의미 체계 모델이 있는 모든 항목의 ID입니다.
- SSO 의미 체계 모델의 경우 컨텍스트(SSO) ID가 정의된 유효한 RLS ID입니다.
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 토큰을 생성하는 경우 생성된 embed 토큰의 수명은 호출할 때마다 더 짧아집니다.포함할 의미 체계 모델과 항목이 서로 다른 두 작업 영역에 있는 경우 서비스 주체 또는 마스터 사용자는 두 작업 영역의 구성원 이상이어야 합니다.
내 작업 영역에 대한 embed 토큰을 만들 수 없습니다.