Lisensiering og tverraktiverbarhetshåndhevelse (offentlig forhåndsversjon)
Når du oppretter Power BI-visualobjekter for nedlasting på AppSource, kan du nå administrere og håndheve lisensene ved hjelp av Microsoft-systemer. Sluttbrukeren tilordner og administrerer lisenser ved hjelp av kjente verktøy som Administrasjonssenter for Microsoft 365, og lisensierings-API-en lar deg håndheve disse lisensene og sikre at bare lisensierte brukere kan gjengi visualobjektene.
Lisenshåndhevelsesprosess
Tabellen nedenfor illustrerer trinnene som er involvert i å administrere de visuelle lisensene gjennom Microsoft:
Trinn | Detaljer |
---|---|
Opprette et tilbud i partnersenteret | Velg å handle gjennom Microsoft Commerce-systemet. Aktiver Microsoft for å administrere lisenser. Angi priser og tilgjengelighet. |
Legg til lisenshåndhevelse i Power BI-pakken for visualobjekter | Opprett eller konfigurer pakken på nytt for å bruke kjøretidslisensen for Power BI, som håndhever lisensiering i henhold til hver brukers tilgang. |
Kunder oppdager tilbudet ditt i AppSource og kjøper et abonnement | Når kunder kjøper tilbudet ditt i AppSource, får de også lisenser for Power BI-visualobjektet. |
Kunder administrerer abonnementene sine og tilordner/opphever tilordning av brukerlisenser | Kunder administrerer abonnementer og tilordner lisenser for disse visualobjektene og tilbyr i Administrasjonssenter for Microsoft 365, akkurat som de gjør for andre abonnementer som Office eller Power BI. |
Fremtving kjøretidskontroller | Gi kundene en ensartet opplevelse ved å bruke våre out-of-the-box API-er til å håndheve kjøretidslisenskontroller. |
Vis rapporter for drivstoffvekst | Få innsikt i inntekter, utbetalingsinformasjon og ordre- og lisensdetaljer. Vis informasjon om lisenser og ordrer kjøpt, fornyet og kansellert over tid og geografi. |
Lisensierings-API
Lisensierings-API-en gjør det mulig for power BI-visualobjektutviklere å håndheve power bi-visualobjektlisenser. API-en støtter henting av informasjonen om Power BI-visualobjektlisenser som er tilordnet Til Power BI-brukeren. Den aktiverer også utløser lisensieringsrelaterte varsler som vises på Power BI-visualobjektet, og informerer brukeren om at de må kjøpe de manglende lisensene. Visualobjektet bør ikke vise sin egen lisensierings-UX, i stedet bruke en av forhåndsdefinerte varsler som støttes av Power BI, som beskrevet i de følgende avsnittene.
Mer informasjon om Power BI-lisensiering, kan du se lisenshåndhevelse.
Merk
Lisensierings-API-en er tilgjengelig fra versjon 4.7. Hvis du vil finne ut hvilken versjon du bruker, kan du se apiVersion
i pbiviz.json-filen .
Hent visualobjektets serviceplaner som er tilordnet den aktive brukeren
Hvis du vil få tilordnet serviceplaner, kan du legge til getAvailableServicePlans
en samtale (tilgjengelig via IVisualLicenseManager
).
Fra ytelsesperspektiv kan du prøve å hente lisensene én gang, fortrinnsvis i constructor
eller init
samtalene, og lagre resultatet.
Når lisenser er hentet, bufres de på Power BI-vertssiden under Power BI-økten, og eventuelle videre kall til det samme returnerer de bufrede dataene.
export interface IVisualLicenseManager {
getAvailableServicePlans(): IPromise<powerbi.extensibility.visual.LicenseInfoResult>;
}
Henting av lisensene kan være en lang operasjon, derfor getAvailableServicePlans
er kallet et asynkront kall, og bør håndteres som sådan i koden.
Som svar på kall av metoden returneres LicenseInfoResult
objektet.
export interface LicenseInfoResult {
plans: ServicePlan[] | undefined;
isLicenseUnsupportedEnv: boolean;
isLicenseInfoAvailable: boolean;
}
plans
– en matrise med serviceplaner kjøpt av den aktive brukeren for dette visualobjektet. (Lisenser som er kjøpt for andre visualobjekter, er ikke inkludert i svaret.)
En ServicePlan inneholder tjenesteidentifikatoren (spIdentifier) og tilstanden (ServicePlanState).spIdentifier: strengverdien for tjeneste-ID-en som genereres når du konfigurerer tilbudets planer i partnersenteret (se følgende eksempel)
state – opplisting (ServicePlanState) som representerer tilstanden til de tilordnede planene.
Støttede tjenesteplantilstander:Tilstand Bekrivelse Inaktive Angir at lisensen ikke er aktiv og ikke bør brukes til klargjøring av fordeler. Aktiver Angir at lisensen er aktiv og kan brukes til klargjøring av fordeler. Advarsel! Angir at lisensen er i løpeperiode som sannsynligvis skyldes brudd på betalingen. Midlertidig avbrutt Angir at lisensen er suspendert sannsynligvis på grunn av brudd på betalingen. Ukjent Microsoft Sentinel-verdi. Bare de aktive og advarselsstatusene representerer en brukbar lisens. Alle andre stater bør behandles som ikke resulterer i en brukbar lisens.
isLicenseUnsupportedEnv
– indikerer at visualobjektet gjengis i et Power BI-miljø som ikke støtter lisensadministrasjon eller håndhevelse. Følgende Power BI-miljøer støtter for øyeblikket ikke lisensadministrasjon eller lisenshåndhevelse:- Embedded – Publiser på nett, PaaS innebygging
- Nasjonale/regionale skyer (avhenger av generell støtte for transactability i nasjonale/regionale skyer)
- RS Server (ingen planlagt støtte)
- Eksportering (PDF\PPT) ved hjelp av REST-API
isLicenseInfoAvailable
– Angir om lisensinformasjonen kan hentes. Feil i henting av lisenser kan oppstå i tilfelle Power BI Desktop-brukeren ikke er logget på eller ikke er koblet til Internett (frakoblet). Henting av lisenser på nettet kan mislykkes på grunn av midlertidig tjenesteavbrudd.
Eksempel på anrop getAvailableServicePlans
for å hente brukerens serviceplaner for dette visualobjektet:
private currentUserValidPlans: ServicePlan[] | undefined;
private hasServicePlans: boolean | undefined;
private isLicenseUnsupportedEnv: boolean | undefined;
this.licenseManager.getAvailableServicePlans()
.then(({ plans, isLicenseUnsupportedEnv, isLicenseInfoAvailable }: LicenseInfoResult) => {
if (isLicenseInfoAvailable && !isLicenseUnsupportedEnv) {
this.currentUserValidPlans = plans?.filter(({ spIdentifier, state }) =>
(state === powerbi.ServicePlanState.Active || state === powerbi.ServicePlanState.Warning)
);
this.hasServicePlans = !!currentUserValidPlans?.length;
}
this.isLicenseUnsupportedEnv = isLicenseUnsupportedEnv;
}).catch((err) => {
this.currentUserValidPlans = undefined;
this.hasServicePlans = undefined;
console.log(err);
});
Merk
Dette eksemplet viser bare hvordan du kontrollerer om brukeren har gyldige planer for dette visualobjektet. Matrisen plans
kan inneholde forskjellige spIdentifier
verdier, og hver identifikator kan vises flere ganger med forskjellige tilstander.
Varsle brukeren om at de nødvendige lisensene mangler
Power BI-plattformen inneholder flere opplevelser som kan brukes til å varsle:
- Lisenser bør kjøpes for å kunne dra nytte av funksjonene til hele visualobjektet
- Funksjonen for bestemte visualobjekter er blokkert på grunn av manglende lisenser
- Hele visualobjektet er blokkert på grunn av manglende lisenser
- Hele visualobjektet blokkeres fordi Power BI-miljøet som er i bruk, ikke støtter lisensadministrasjon\håndhevelse
export interface IVisualLicenseManager {
notifyLicenseRequired(notificationType: LicenseNotificationType): IPromise<boolean>;
notifyFeatureBlocked(tooltip: string): IPromise<boolean>;
clearLicenseNotification(): IPromise<boolean>;
}
Eksempel på anrop notifyLicenseRequired
:
private defaultNotificationType: powerbi.LicenseNotificationType = powerbi.LicenseNotificationType.General;
private isNotificaitonDisplayed: boolean = false;
if (!this.isNotificaitonDisplayed) {
const notificationType = this.isLicenseUnsupportedEnv ? powerbi.LicenseNotificationType.UnsupportedEnv : this.defaultNotificationType
this.licenseManager.notifyLicenseRequired(this.getNotificationType())
.then((value) => {
this.isNotificaitonDisplayed = value;
}).catch((err) => {
console.log(err);
});
}
Generelt-ikon som angir at en nødvendig lisens mangler
Bruk notifyLicenseRequired
samtale med LicenseNotificationType.General
til å vise et ikon som en del av beholderen for visualobjektet.
Når det utløses, bevares ikonet gjennom hele visualobjektets levetid til clearLicenseNotification
eller notifyLicenseRequired
kalles.
Merk
Varslingen LicenseNotificationType.General
håndheves bare fra et miljø som støtter lisensieringsadministrasjon og for Power BI Edit-scenarier. Kaller dette i et miljø som ikke støttes, eller når rapporten er i lesemodus eller på instrumentbordet, bruker ikke ikonet og returnerer false
i anropets svar.
Eksempel på den visuelle visningen som inneholder ikonet «lisenser kreves» generelt:
Overlegg visningen av visualobjektet med en manglende lisensvarsling
Bruk notifyLicenseRequired
samtale med LicenseNotificationType.VisualIsBlocked
for å legge til visualobjektets visning med et varsel om at visualobjektet er blokkert siden nødvendige lisenser ble funnet manglende.
Når det utløses, bevares dette varselet gjennom hele levetiden til clearLicenseNotification
eller notifyLicenseRequired
kalles.
Eksempel på den visuelle visningen som inneholder varselet om blokkert visualobjekt. Power BI Desktop viser bare alternativet Få en lisens :
Overlegg visningen av visualobjektet med et miljøvarsel som ikke støttes
Bruk notifyLicenseRequired
samtale med LicenseNotificationType.UnsupportedEnv
for å legge til visualobjektets visning med et varsel om at visualobjektet er blokkert siden Power BI i bruk ikke støtter lisensadministrasjon\håndhevelse.
Når det utløses, bevares ikonet gjennom hele visualobjektets levetid til clearLicenseNotification
eller notifyLicenseRequired
kalles.
Merk
Varselet LicenseNotificationType.UnsupportedEnv
håndheves bare når det kalles inn konteksten som ikke støttes for lisensieringsmiljøet. Hvis du kaller dette i andre miljøer, brukes ikke varselet og returneres false
i anropets svar.
Eksempel på visningen av visualobjektet som inneholder varselet Miljø som ikke støttes:
Vis et banner som varsler om at funksjonaliteten til et bestemt visualobjekt ikke kan brukes
Når du bruker funksjonaliteten til et bestemt visualobjekt krever lisenser som ble funnet mangler, kan du bruke anropet notifyFeatureBlocked
som viser et popup-banner som en del av den visuelle beholderen. Banneret støtter også et egendefinert verktøytips som du kan angi og bruke til å gi tilleggsinformasjon om funksjonen som utløste varselet.
Merk
Funksjonen er blokkert varsling håndheves bare når begge følgende betingelser gjelder:
- Det kalles fra et støttet lisensieringsmiljø
- Blokkering av overlegg brukes ikke (
LicenseNotificationType.UnsupportedEnv
,LicenseNotificationType.VisualIsBlocked
).
Hvis du kaller dette varselet i et miljø som ikke støttes, brukes ikke varselet og returneres false
i anropets svar.
Merk
Hvis du vil støtte lokalisert Power BI-miljø, anbefaler vi at du vedlikeholder lokaliserte versjoner av verktøytipsene i bruk. Bruk lokaliserings-API-en til å hente språk for nasjonal innstilling i Power BI.
Når det utløses, vises banneret i 10 sekunder, eller til et annet «funksjons blokkert»-banner utløses, eller til det clearLicenseNotification
kalles (det som kommer først).
Eksempel på den visuelle visningen som inneholder bannervarslingen «funksjon blokkert» :
Test et lisensiert visualobjekt
Slik tester du et lisensiert visualobjekt fra ende til slutt før du gjør det offentlig tilgjengelig:
- Hvis du oppretter et helt nytt tilbud, kan du legge til visualobjektet som en privat plan for en testkundekonto. Tilbudet er bare synlig for denne testkontoen for kjøp. Bruk denne kontoen til å validere tilbudet før du gjør det offentlig.
- Hvis visualobjektet allerede er tilgjengelig i AppSource og du vil oppgradere det til et lisensiert visualobjekt, kan du ikke gjøre det til et privat abonnement fordi det skjuler visualobjektet fra AppSource, og de eksisterende brukerne ikke har tilgang til det. Det er for øyeblikket ingen måte å teste et publisert visualobjekt fra ende til ende på. Test det på samme måte som du testet det opprinnelige visualobjektet til AppSource, ved å spotte lisensierings-API-verdien for å kontrollere de ulike mulighetene.
Hensyn og begrensninger
- Verktøytips for funksjonsbanner er begrenset av 500 tegn.
- Verktøytips for funksjonsbanner krever lokalisering.
- Lisensbunling (det vil eksempel: én lisens som dekker flere tilbud fra samme utgiver) støttes ennå ikke.
Relatert innhold
Publiser et egendefinert Visualobjekt i Power BI
Har du flere spørsmål? Prøv å spørre Power BI-fellesskap