다중 고객 애플리케이션을 서비스 주체 프로필 모델로 마이그레이션
이 문서에서는 Power BI 임베디드 분석 다중 고객 앱을 서비스 주체 프로필 모델로 마이그레이션하여 스케일링 성능을 개선하는 방법을 설명합니다.
서비스 주체 프로필을 사용하면 Power BI에서 조직 콘텐츠를 보다 쉽게 관리하고 용량을 보다 효율적으로 사용할 수 있습니다.
참고 항목
이 문서는 단일 Power BI 테넌트에서 여러 고객을 지원하는 앱이 이미 있는 조직을 대상으로 합니다.
일부 앱은 서비스 주체 모델의 이점을 누릴 수 없습니다. 예를 들어 다음 앱은 마이그레이션하면 안 됩니다.
- 개체 수가 적은 하나의 서비스 주체를 유지하는 작은 앱.
- 고객당 하나의 다중 서비스 주체를 사용하는 앱
필수 조건
마이그레이션을 시작하기 전에 서비스 주체 프로필에 대해 읽어보는 것이 중요합니다.
다음 단계도 수행해야 합니다.
- 서비스 주체에 Power BI 콘텐츠 포함의 처음 세 단계를 수행하여 서비스 주체를 설정합니다.
- Power BI 테넌트 관리자 계정에서 테넌트에서 프로필 만들기를 사용하도록 설정할 수 있습니다.
서비스 주체 프로필로 마이그레이션
서비스 주체 프로필로 마이그레이션하려면 다음 단계를 수행합니다.
- 고객당 하나인 프로필을 만듭니다.
- 작업 영역을 구성합니다.
- 프로필을 사용하도록 애플리케이션 코드를 변경합니다.
- 프로필 모델을 사용하여 애플리케이션을 테스트합니다.
- 중복 권한을 정리합니다.
프로필 만들기(필수)
만든 서비스 주체와 프로필 REST API를 사용하여 각 고객에 대해 하나의 프로필을 만듭니다.
데이터베이스에서 해당 프로필 ID를 사용하여 각 데이터 고객 ID의 매핑을 저장하는 것이 좋습니다. 테넌트 프로필을 사용하여 API를 호출하려면 나중에 이 매핑이 필요합니다.
작업 영역 구성
데이터를 관리하는 가장 쉬운 방법은 고객당 하나의 작업 영역을 유지하는 것입니다. 앱에서 이미 이 모델을 사용하는 경우 새 작업 영역을 만들 필요가 없습니다. 그러나 그룹 사용자 추가 API를 사용하여 해당 작업 영역에 대한 관리자 액세스 권한을 각 프로필에 제공해야 합니다.
고객당 하나의 작업 영역이 없는 경우 해당 프로필을 사용하여 그룹 사용자 만들기 API를 호출하여 각 고객에 대한 새 작업 영역을 만듭니다.
작업 영역에서 항목 구성
이제 각 고객에 대한 프로필과 작업 영역이 있어야 합니다. 이전 단계에서 새 작업 영역을 만든 경우 해당 작업 영역으로 항목(예: 보고서 및 의미 체계 모델)을 가져와야 합니다. 가져오는 의미 체계 모델은 현재 솔루션에 따라 달라집니다.
앱에서 각 고객에 대해 별도의 의미 체계 모델을 사용하는 경우 의미 체계 모델 디자인이 그대로 작동할 수 있습니다.
앱이 RLS(행 수준 보안)가 있는 하나의 의미 체계 모델을 사용하여 여러 고객에게 서로 다른 데이터를 제공하는 경우 각 고객에 대해 별도의 의미 체계 모델을 만들고 이 문서에 설명된 대로 프로필을 사용하여 스케일링 성능을 높일 수 있습니다.
프로필 및 별도의 데이터 원본을 사용하여 스케일링 성능 제한을 극복한 후에는 프로필에 RLS를 사용하여 더 많은 데이터 분리가 가능합니다.
- 동적 RLS를 사용하는 경우 프로필 이름이 DAX 함수
UserName()
에 반환됩니다. - 정적 RLS를 사용하고 포함 토큰을 생성할 때 역할을 재정의하는 경우 이 작업을 계속할 수 있습니다.
- 동적 RLS를 사용하는 경우 프로필 이름이 DAX 함수
항목이 준비되면 관련 작업 영역으로 가져옵니다. 프로세스를 자동화하려면 가져오기 API를 사용하는 것이 좋습니다.
프로필을 사용하도록 애플리케이션 코드 변경
관련 작업 영역에 대해 관리자 액세스 권한이 있는 프로필과 어떤 프로필이 어떤 고객을 나타내는지 보여 주는 매핑이 포함된 데이터베이스가 있으면 필요한 코드 변경을 할 수 있습니다. 두 코드 흐름을 나란히 유지하고 점차적으로 프로필 코드 흐름을 고객에게 공개하는 것이 좋습니다.
다음과 같이 코드 변경을 합니다.
인증 코드 변경
- Microsoft Entra ID 앱에서 마스터 사용자를 사용하는 경우 토큰 획득 코드를 변경합니다. 앱 전용 Microsoft Entra 토큰 만들기에 대해 알아보려면 서비스 주체 포함을 참조하세요.
- 서비스 주체를 사용하고 프로필에 대해 새 서비스 주체를 만든 경우 올바른 서비스 주체 ID 및 비밀을 사용하도록 코드를 조정합니다.
관리 코드 변경
일부 앱에는 등록 시 새 고객 온보딩을 자동화하는 관리 코드가 있습니다. 관리 코드는 Power BI REST API를 사용하여 작업 영역을 만들고 콘텐츠를 가져오는 경우가 많습니다. 이 코드의 대부분은 동일하게 유지되어야 하지만 다음 세부 정보를 조정해야 할 수 있습니다.
- 새 고객 테넌트를 만들 때마다 해당 테넌트에 대한 작업 영역의 작성자 및 관리자가 될 새 서비스 프로필을 만듭니다.
- Power BI 콘텐츠를 다시 구성하려는 경우 변경 내용을 반영하도록 코드를 편집합니다.
토큰 코드 변경 포함
API 호출자를 바꿉니다. 프로필 모델에서 특정 프로필만 고객의 콘텐츠에 액세스할 수 있으므로 프로필이 GenerateToken API를 호출하도록 해야 합니다.
유효성 검사
모범 사례는 프로필 모델로 이동하기 전에 앱을 철저히 테스트하는 것입니다. 작업 영역에 대한 이전 사용 권한을 삭제하지 않았기 때문에 SaaS 애플리케이션 코드에 버그가 있더라도 보고서가 로드될 수 있습니다.
마이그레이션 후 정리
마이그레이션을 완료하고 결과의 유효성을 검사했으므로 더 이상 필요하지 않은 항목을 제거합니다.
- 코드 정리: 이전 코드 경로를 사용하지 않도록 설정하여 프로필에 의존하는 새 코드만 실행하도록 하는 것이 좋습니다.
- Power BI에서 작업 영역 및 사용 권한 정리: 새 작업 영역을 만든 경우 더 이상 사용되지 않는 이전 작업 영역을 삭제할 수 있습니다. 동일한 작업 영역을 다시 사용한 경우 작업 영역에서 이전 사용 권한(예: 마스터 사용자 권한)을 삭제할 수 있습니다.
관련 콘텐츠
추가 질문이 있으신가요? Power BI 커뮤니티에 질문합니다.