유효 ID 설정

완료됨

유효 ID는 포함 토큰을 생성하는 경우 고객용 시나리오로 작업할 때 설정할 수 있습니다.

앱 논리는 먼저 effectiveidentity 개체 하나 이상의 목록을 만듭니다. 각 개체에는 다음 매개 변수가 포함될 수 있습니다.

  • Datasets: (필수) DatasetID의 목록입니다.

  • Username: (선택 사항) 내부 호스팅 모델의 경우 USERNAME 또는 USERPRINCIPALNAME 함수에서 반환되는 텍스트 값입니다. 외부 호스팅 모델의 경우 모델에 연결하기 위한 사용자 이름입니다.

  • Roles: (선택 사항) 역할 이름의 목록입니다.

  • CustomData: (선택 사항) CUSTOMDATA 함수에서 반환되는 텍스트 값입니다.

  • IdentityBlob: (선택 사항) Microsoft Azure SQL Database에 대한 DirectQuery 연결을 사용하여 토큰 기반 ID에 사용되는 Azure AD 액세스 토큰입니다. 데이터 모델 RLS 없이 데이터 권한을 적용할 수 있습니다. 이 항목은 이 단원의 뒷부분에서 설명합니다.

데이터 세트 목록을 전달할 수 있습니다. 포함 토큰은 여러 데이터 세트에 연결하는 많은 Power BI 아티팩트를 포함하는 데 사용되거나 대시보드가 여러 데이터 세트에 연결되는 타일로 구성되기 때문입니다. 여러 역할의 목록이 전달되면 모든 역할이 동시에 적용됩니다. 즉, 사용자가 역할이 부여하는 데이터의 합집합을 볼 수 있습니다.

다음 예제에서는 하나의 effectiveidentity 개체를 포함하는 목록을 만듭니다. 현재 앱 사용자의 사용자 이름, 지역 역할 및 작업 영역에 있는 첫 번째(그리고 아마도 유일한) 데이터 세트를 전달합니다.

// Create effective identity for the first dataset
var datasetId = datasets[0].Id.ToString();
var effectiveIdentities = new List<EffectiveIdentity>() {
	new EffectiveIdentity(
		username: userProfile.Username,
		roles: new List<string> {"Region"},
		datasets: new List<string> {datasetId})
};

다음으로 포함 토큰을 생성하기 위해 앱은 목록을 GenerateTokenRequestV2 메서드의 identities 매개 변수에 전달합니다. 다른 메서드가 포함 토큰을 생성하며, 각각 유효 ID의 목록을 전달할 수 있습니다.

// Bundle token requests for the reports, datasets, and the workspace
var tokenRequest = new GenerateTokenRequestV2(
    reports: reportTokenRequests,
    datasets: datasetTokenRequests,
    targetWorkspaces: workspaceRequests,
    identities: effectiveIdentities
) ;

다음 항목에서는 각 Power BI 데이터 세트 형식에 대해 유효 ID를 설정하는 방법에 대한 자세한 내용을 제공합니다.

내부 호스팅 가져오기 테이블에 대한 유효 ID 설정

가져오기 테이블이 포함된 내부 호스팅 모델에 연결하기 위해 유효 ID를 전달할 때 다음 매개 변수를 고려합니다.

  • 모델에 하나 이상의 역할이 정의되어 있어야 합니다.

  • 사용자 이름을 전달해야 하지만 실제 사용자 이름일 필요는 없습니다. 전달된 값은 USERNAME 또는 USERPRINCIPALNAME 함수에 의해 반환됩니다.

  • 유효 ID로 하나의 역할을 정의해야 합니다.

내부 호스팅 DirectQuery 테이블에 대한 유효 ID 설정

내부 호스팅 DirectQuery 테이블에 유효 ID를 설정하려면 내부 호스팅 가져오기 테이블과 동일한 지침을 사용합니다.

또한 토큰 기반 ID를 사용할 수 있습니다. 토큰 기반 ID를 사용하면 Azure AD 액세스 토큰을 사용하여 포함 토큰에 대한 유효 ID를 지정할 수 있지만 원본이 Azure SQL Database인 경우에만 가능합니다. 포함 토큰을 생성할 때 앱은 액세스 토큰을 IdentityBlob 매개 변수에 전달합니다. 이 경우 username 매개 변수에 값을 전달할 필요가 없습니다.

토큰 기반 ID를 사용하려면 데이터 세트 소유자가 최종 사용자의 OAuth2 자격 증명을 사용하도록 데이터 원본을 설정해야 합니다. 이러한 방식으로 Power BI는 유효 ID 사용자 이름을 사용하여 데이터 원본에 연결합니다. 즉, 데이터베이스가 데이터 모델 대신 RLS를 적용할 수 있습니다.

토큰 기반 ID에 대한 자세한 내용은 Power BI Embedded의 보안 기능을 참조하세요.

Azure Analysis Services에 대한 유효 ID 설정

Azure Analysis Services 모델을 사용할 때 유효 ID를 설정하려면 포함 ID(서비스 주체 또는 마스터 사용자 계정)에 모델에 대해 최소한 읽기 권한이 있는지 확인해야 합니다.

유효 ID가 전달되지 않고 포함 ID 계정이 Analysis Services 관리자인 경우 모든 앱 사용자가 모든 모델 데이터를 볼 수 있습니다. 포함 ID 계정이 Analysis Services 관리자가 아닌 경우 해당 계정의 할당된 역할에 의해 데이터 표시 유형이 제한됩니다.

참고

Azure Analysis Services 모델에서 서비스 주체를 사용하는 경우 서비스 주체에 Azure Analysis Services 인스턴스 권한이 있어야 합니다. 서비스 주체가 포함된 보안 그룹을 이 목적으로 사용할 수는 없습니다.

유효 ID를 전달하여 Azure Analysis Services 모델을 사용할 때 다음 매개 변수를 고려합니다.

  • 모델에 하나 이상의 역할이 정의되어 있어야 합니다.

  • 사용자 이름은 마스터 사용자 계정(UPN 형식) 또는 서비스 주체(ObjectID)여야 합니다.

  • 유효 ID의 일부를 구성하는 역할이 없으면 유효 ID 계정에 할당된 역할이 적용됩니다.

  • USERNAME 함수는 유효 ID 사용자 이름을 반환합니다.

SQL Server Analysis Services에 대한 유효 ID 설정

SQL Server Analysis Services 모델을 사용할 때 유효 ID를 설정하려면 게이트웨이 데이터 원본 자격 증명이 Analysis Services 관리자로 설정되어 있는지 확인해야 합니다.

유효 ID(서비스 주체 또는 마스터 사용자 계정)는 게이트웨이 관리자이거나 게이트웨이 데이터 원본에 대한 ReadOverrideEffectiveIdentity 권한이 있어야 합니다. 이 권한은 Power BI REST API를 사용해야만 설정할 수 있습니다.

유효 ID가 전달되지 않고 포함 ID 계정이 Analysis Services 관리자인 경우 모든 사용자가 모든 모델 데이터를 볼 수 있습니다. 포함 ID 계정이 Analysis Services 관리자가 아닌 경우 해당 계정의 할당된 역할에 의해 데이터 표시 유형이 제한됩니다.

유효 ID를 전달하여 SQL Server Analysis Services 모델을 사용할 때 다음 매개 변수를 고려합니다.

  • 모델에 하나 이상의 역할이 정의되어 있어야 합니다.

  • 사용자 이름은 UPN 또는 DOMAIN\username 형식을 사용하는 Windows 계정이어야 합니다.

  • 사용자 이름에는 모델에 대한 읽기 권한이 있어야 합니다.

  • 유효 ID의 일부를 구성하는 역할이 없으면 유효 ID 사용자 이름에 할당된 역할이 적용됩니다.

  • USERNAME 함수는 유효 ID 사용자 이름을 반환합니다.

  • CUSTOMDATA 함수의 사용은 지원되지 않습니다.

데이터 세트 형식 비교

다음 표에서는 4가지 데이터 세트 형식에 대한 유효 ID 매개 변수 설정을 비교합니다.

매개 변수 내부 호스팅 가져오기 테이블 내부 호스팅 DirectQuery 테이블 Azure Analysis Services SQL Server Analysis Services
사용자 이름 USERNAMEUSERPRINCIPALNAME 함수에 의해 반환될 모든 텍스트 값 USERNAMEUSERPRINCIPALNAME 함수에 의해 반환될 모든 텍스트 값 서비스를 사용하여 인증하는 데 사용됩니다. 마스터 사용자 계정(UPN 형식) 또는 서비스 주체(ObjectID)여야 합니다. 서비스를 사용하여 인증하는 데 사용됩니다. UPN 또는 DOMAIN\username 형식을 사용하는 Windows 계정이어야 합니다.
CustomData 지원됨 지원됨 지원됨 지원되지 않음
역할 유효 ID로 하나의 역할을 정의해야 합니다. 유효 ID로 하나의 역할을 정의해야 합니다. 역할이 전달되지 않으면 유효 ID 계정에 할당된 역할이 적용됩니다. 역할이 전달되지 않으면 유효 ID 계정에 할당된 역할이 적용됩니다.
IdentityBlob 아니요 예, 원본 데이터가 Azure SQL Database인 경우(RLS 요구 사항을 적용해야 함) 아니요 아니요
추가 정보 게이트웨이가 필요합니다. 유효 ID 계정은 게이트웨이 관리자여야 합니다.