다음을 통해 공유


라이선스 및 거래 가능성 적용(공개 미리 보기)

AppSource에서 다운로드를 위한 Power BI 시각적 개체를 만들 때 이제 Microsoft 시스템을 사용하여 라이선스를 관리하고 적용할 수 있습니다. 최종 사용자는 Microsoft 365 관리 센터 같은 친숙한 도구를 사용하여 라이선스를 할당하고 관리합니다. 라이선싱 API를 사용하면 이러한 라이선스를 적용하여 라이선스가 부여된 사용자만 시각적 개체를 렌더링하도록 할 수 있습니다.

라이선스 적용 프로세스

다음 표에서는 Microsoft를 통한 시각적 라이선스 관리와 관련된 단계를 보여 줍니다.

단계 세부 정보
파트너 센터에서 제품 만들기 Microsoft 상거래 시스템을 통한 거래를 선택합니다. Microsoft에서 라이선스를 관리할 수 있도록 설정합니다. 앱 가격 책정 및 가용성을 설정합니다.
Power BI 시각적 개체 패키지에 라이선스 적용 추가 Power BI 런타임 라이선스를 사용하도록 패키지를 만들거나 다시 구성하여 각 사용자의 액세스에 따라 라이선스를 적용하도록 합니다.
고객이 AppSource에서 제품을 검색하고 구독을 구매합니다. 고객이 AppSource에서 제품을 구매하면 Power BI 시각적 개체에 대한 라이선스도 받습니다.
고객이 구독을 관리하고 사용자 라이선스를 할당/할당 취소합니다. 고객은 Office 또는 Power BI와 같은 다른 구독과 마찬가지로 Microsoft 365 관리 센터에서 구독을 관리하고 이러한 시각적 개체 및 제품에 대한 라이선스를 할당합니다.
런타임 검사 적용 기본 API를 사용하여 런타임 라이선스 검사를 적용하여 고객에게 균일한 환경을 제공합니다.
보고서를 보고 성장 촉진하기 수익, 지급 정보, 주문 및 라이선스 세부 정보에 대한 인사이트를 얻습니다. 시간 경과에 따라 지리별로 구매, 갱신 및 취소된 라이선스와 주문에 대한 정보를 봅니다.

라이선싱 API

라이선스 API를 사용하면 Power BI 시각적 개체 개발자가 Power BI 시각적 개체 라이선스를 적용할 수 있습니다. API는 Power BI 사용자에게 할당된 Power BI 시각적 개체 라이선스에 대한 정보 검색을 지원합니다. 또한 Power BI 시각적 개체에 표시될 라이선싱 관련 알림을 트리거하도록 지원하며, 사용자에게 누락된 라이선스를 구매해야 한다고 알릴 수도 있습니다. 시각적 개체는 자체 라이선싱 UX를 표시해서는 안 되며, 대신 아래에 설명된 대로 Power BI가 지원하는 미리 정의된 알림 중 하나를 사용합니다.

Power BI 라이선스에 대한 자세한 내용은 라이선스 적용을 참조하세요.

참고 항목

라이선싱 API는 버전 4.7에서 사용할 수 있습니다. 사용 중인 버전을 확인하려면 pbiviz.json 파일에서 apiVersion을 확인합니다.

활성 사용자에게 할당된 시각적 개체의 서비스 계획 검색

서비스 계획을 할당받으려면 getAvailableServicePlans에 호출을 추가합니다(IVisualLicenseManager를 통해 사용 가능). 성능 관점에서 바람직하게는 constructor 또는 init 호출에서 라이선스를 한 번 가져오고 결과를 저장합니다.
라이선스가 검색되면 Power BI 세션 중에 Power BI 호스트 쪽에서 캐시되고 동일한 항목에 대한 추가 호출은 캐시된 데이터를 반환합니다.

export interface IVisualLicenseManager {
        getAvailableServicePlans(): IPromise<powerbi.extensibility.visual.LicenseInfoResult>;
    }

라이선스 검색은 긴 작업일 수 있으므로 getAvailableServicePlans 호출은 코드에서 비동기 호출로 처리해야 합니다.
메서드 호출에 대한 응답으로 LicenseInfoResult 개체가 반환됩니다.

export interface LicenseInfoResult {
        plans: ServicePlan[] | undefined;
        isLicenseUnsupportedEnv: boolean; 
        isLicenseInfoAvailable: boolean; 
    }
  • plans - 이러한 시각적 개체에 대해 활성 사용자가 구매한 서비스 플랜의 배열. (다른 시각적 개체에 대해 구매한 라이선스는 응답에 포함되지 않습니다.)
    ServicePlan에는 서비스 식별자(spIdentifier) 및 해당 상태(ServicePlanState)가 포함됩니다.

    • spIdentifier: 파트너 센터 제품에서 계획을 구성할 때 생성된 서비스 ID의 문자열 값입니다(다음 예제 참조). 서비스 ID 문자열의 예를 보여 주는 스크린샷.

    • state – 할당된 계획의 상태를 나타내는 열거형(ServicePlanState).
      지원되는 서비스 계획 상태:

      시스템 상태 설명
      비활성 라이선스가 활성화되어 있지 않으며 프로비전 혜택에 사용해서는 안 됨을 나타냅니다.
      활성화 라이선스가 활성 상태이며 프로비전 혜택에 사용할 수 있음을 나타냅니다.
      Warning 라이선스가 결제 위반일 수 있는 이유로 인해 유예 기간에 있음을 나타냅니다.
      일시 중단됨 라이선스가 결제 위반일 수 있는 이유로 인해 일시 중단되었음을 나타냅니다.
      Unknown Sentinel 값.

      활성 및 경고 상태만 사용 가능한 라이선스를 나타냅니다. 다른 모든 상태는 사용 가능한 라이선스가 아닌 것으로 처리되어야 합니다.

  • isLicenseUnsupportedEnv - 라이선스 관리 또는 적용을 지원하지 않는 Power BI 환경에서 시각적 개체가 렌더링되고 있음을 나타냅니다. 현재 다음 Power BI 환경에서는 라이선스 관리 또는 라이선스 적용을 지원하지 않습니다.

    • Embedded - 웹에 게시, PaaS 포함
    • 국가/지역 클라우드(국가/지역 클라우드의 거래 가능성에 대한 일반적인 지원에 따라 다름)
    • RS 서버(지원 계획 없음)
    • REST API를 사용하여 내보내기(PDF\PPT)
  • isLicenseInfoAvailable - 라이선스 정보를 검색할 수 있는지 여부를 나타냅니다. Power BI Desktop 사용자가 로그인하지 않았거나 인터넷에 연결되지 않은 경우(오프라인) 라이선스 검색에 실패할 수 있습니다. 웹의 경우 임시 서비스 중단으로 인해 라이선스 검색이 실패할 수 있습니다.

getAvailableServicePlans 호출의 예(위의 이미지에서 서비스 ID 사용):

this.licenseManager.getAvailableServicePlans().then((result: LicenseInfoResult) => {
            this.notificationType = result.isLicenseUnsupportedEnv ?  powerbi.LicenseNotificationType.UnsupportedEnv : powerbi.LicenseNotificationType.General;
            this.hasServicePlans = !!(result.plans && result.plans.length && result.plans[0].spIdentifier == "test_isvconnect1599092224747.powerbivisualtransact.plan1" && 
                ( result.plans[0].state == powerbi.ServicePlanState.Active ||  result.plans[0].state == powerbi.ServicePlanState.Warning));
            
            // display notification if the user doesn't have licenses
            if (!this.hasServicePlans) {
                this.licenseManager.notifyLicenseRequired(this.notificationType).then((value) => {
                    if (value) {
                        this.isIconDisplayed = true;
                    }
                }).catch((err) => {
                    console.log('ERROR', err);
                })
            }
        }).catch((err) => {
            this.hasServicePlans = undefined;
            console.log(err);
        });

필요한 라이선스가 누락되었음을 사용자에게 알립니다.

Power BI 플랫폼은 다음을 알리는 데 사용할 수 있는 몇 가지 기본 환경을 제공합니다.

  • 전체 시각적 개체의 기능을 사용하려면 라이선스를 구매해야 합니다.
  • 라이선스 누락으로 인해 특정 시각적 개체의 기능이 차단됩니다.
  • 라이선스 누락으로 인해 전체 시각적 개체가 차단됩니다.
  • 사용 중인 Power BI 환경이 라이선스 관리\적용을 지원하지 않으므로 전체 시각적 개체가 차단됩니다.
export interface IVisualLicenseManager {
        notifyLicenseRequired(notificationType: LicenseNotificationType): IPromise<boolean>;
        notifyFeatureBlocked(tooltip: string): IPromise<boolean>;
        clearLicenseNotification(): IPromise<boolean>;
    }

필수 라이선스가 없음을 나타내는 일반 아이콘

LicenseNotificationType.General이 포함된 notifyLicenseRequired호출을 사용하여 시각적 개체 컨테이너의 일부로 아이콘을 표시합니다.
트리거되면 아이콘은 clearLicenseNotification 또는 notifyLicenseRequired가 호출될 때까지 시각적 개체의 수명 동안 유지됩니다.

참고 항목

LicenseNotificationType.General 알림은 둘 다 적용되는 경우에만 적용됩니다.즉, 라이선스 환경 및 Power BI 편집 시나리오에 대해 지원됩니다. 지원되지 않는 환경에서 또는 보고서가 읽기 모드 또는 대시보드에 있을 때 이를 호출하면 아이콘을 적용하지 않으며 호출 응답에서 false를 반환합니다.

“라이선스 필요” 일반 아이콘이 포함된 시각적 개체 표시의 예:

“라이선스 필요” 일반 아이콘이 포함된 시각적 개체 표시.

“라이선스 필요” 확장된 아이콘이 포함된 시각적 개체 표시.

누락된 라이선스 알림으로 시각적 개체 표시 오버레이

LicenseNotificationType.VisualIsBlocked이 포함된 notifyLicenseRequired 호출을 사용하여, 필수 라이선스가 누락되어 시각적 개체가 차단되었다는 알림으로 시각적 개체의 표시를 오버레이합니다.
트리거되면 이 알림은 clearLicenseNotification 또는 notifyLicenseRequired가 호출될 때까지 시각적 개체의 수명 동안 유지됩니다.

차단된 시각적 개체 알림을 포함하는 시각적 개체 표시의 예입니다. Power BI Desktop은 라이선스 가져오기 옵션만 표시합니다.

*차단된 시각적 개체* 알림을 포함하는 시각적 개체 표시.

지원되지 않는 환경 알림으로 시각적 개체의 표시 오버레이

notifyLicenseRequired가 포함된 LicenseNotificationType.UnsupportedEnv 호출을 사용하여, 사용 중인 Power BI가 라이선스 관리\적용을 지원하지 않으므로 시각적 개체가 차단되었다는 알림으로 시각적 개체의 표시를 오버레이합니다.
트리거되면 아이콘은 clearLicenseNotification 또는 notifyLicenseRequired가 호출될 때까지 시각적 개체의 수명 동안 유지됩니다.

참고 항목

LicenseNotificationType.UnsupportedEnv 알림은 라이선싱 환경에 지원되지 않는 컨텍스트에서 호출될 때만 적용됩니다. 다른 환경에서 이 호출은 알림을 적용하지 않으며 호출 응답에서 false를 반환합니다.

“지원되지 않는 환경” 알림을 포함하는 시각적 개체 표시의 예:

“지원되지 않는 환경” 알림을 포함하는 시각적 개체 표시

특정 시각적 개체의 기능을 적용할 수 없음을 알리는 배너 표시

특정 시각적 개체의 기능을 적용하는 데 누락되었던 라이선스가 필요한 경우 시각적 개체 컨테이너의 일부로 배너를 팝업하는 notifyFeatureBlocked 호출을 사용할 수 있습니다. 또한 배너는 사용자가 설정하여 알림을 트리거한 기능에 대한 추가 정보를 제공하는 데 사용할 수 있는 사용자 지정 도구 설명을 지원합니다.

참고 항목

기능 차단됨 알림은 라이선스 환경에 지원되는 컨텍스트에서 차단 오버레이가 적용되지 않는 경우에만 적용됩니다(LicenseNotificationType.UnsupportedEnv, LicenseNotificationType.VisualIsBlocked). 지원되지 않는 환경에서 이 알림을 호출하면 알림을 적용하지 않으며 호출 응답에서 false를 반환합니다.

참고 항목

지역화된 Power BI 환경을 지원하려면 사용 중인 도구 설명의 지역화된 버전을 유지하는 것이 좋습니다. 지역화 API를 사용하여 Power BI 로캘 언어를 검색하세요.

트리거되면 배너가 10초 동안 또는 다른 “기능 차단됨” 배너가 트리거될 때까지 또는 clearLicenseNotification이 호출될 때까지 표시됩니다(먼저인 발생하는 것이 우선 적용).

“기능 차단됨” 배너 알림이 포함된 시각적 개체 표시의 예:

“기능 차단됨” 배너 알림이 포함된 시각적 개체 표시.

라이선스가 부여된 시각적 개체 테스트

라이선스가 부여된 시각적 개체를 공개하기 전에 엔드투엔드로 테스트하려면 다음을 수행합니다.

  • 새 제품을 만드는 경우 테스트 고객 계정에 대한 프라이빗 플랜으로 시각적 개체를 추가합니다. 제품은 이 테스트 계정에서만 구매할 수 있도록 표시됩니다. 이 계정을 사용하여 제품을 공개하기 전에 제품의 유효성을 검사합니다.
  • AppSource에서 시각적 개체를 이미 사용할 수 있는 상태에서 라이선스가 부여된 시각적 개체로 업그레이드하려는 경우 이를 프라이빗 플랜으로 만들 수 없습니다. 이렇게 하면 AppSource에서 시각적 개체가 숨겨져서 기존 사용자가 액세스할 수 없게 되기 때문입니다. 게시된 시각적 개체를 엔드투엔드로 테스트할 수 있는 방법은 현재 없습니다. 라이선스 API 값을 그대로 사용하여 여러 가능성을 확인하는 방식으로 AppSource에 있는 원래 시각적 개체를 테스트한 것과 동일하게 테스트하세요.

고려 사항 및 제한 사항

  • 기능 배너용 도구 설명은 500자로 제한됩니다.
  • 기능 배너에 대한 도구 설명에는 지역화가 필요합니다.
  • 라이선스 묶음(즉, 동일한 게시자의 여러 제품을 포괄하는 하나의 라이선스)은 아직 지원되지 않습니다.

Power BI 사용자 지정 시각적 개체 게시

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