API för autentisering
Autentiserings-API:et gör det möjligt för visuella objekt att hämta Microsoft Entra-ID (tidigare kallat Azure AD) åtkomsttoken för inloggade användare, vilket underlättar enkel inloggningsautentisering.
Power BI-administratörer kan aktivera eller inaktivera API:et via en global växel. Standardinställningen blockerar (inaktiverar) API:et.
API:et gäller endast för visuella AppSource-objekt och inte för privata visuella objekt. Visuella objekt som är under utveckling kan testas i felsökningsläge innan de publiceras.
Miljöer som stöds
Följande miljöer stöds:
- Webb
- Skrivbord
- RS Desktop
- Mobilt
Miljöer som inte stöds
Följande miljöer stöds inte ännu:
- RS-tjänst
- Inbäddad analys
- Teams
Så här använder du API:et för autentisering
I capabilities.json-filen lägger du till behörigheten "AADAuthentication" med en Microsoft Entra ID-registrerad program-URI för varje moln som stöds. Infrastrukturresurser genererar en token enligt den målgrupp som konfigurerats för det aktuella molnet och levererar den till det visuella objektet.
Det visuella objektet kan sedan använda token för att autentisera mot respektive målgrupp, vilket representerar dess serverdelstjänst:
"privileges": [
{
"name": "AADAuthentication",
"parameters": {
"COM": "https://contoso.com",
"CN": "https://contoso.cn"
}
}
]
I filen pbiviz.json anger du API-versionen till 5.9.1 eller senare:
Den nyligen exponerade AcquireAADTokenService innehåller två metoder:
acquireAADToken: Returnerar en nyttolast för autentiseringstoken av typen
AcquireAADTokenResult
för det visuella objektet eller null om det inte kan hämtas./** * Enum representing the various clouds supported by the Authentication API. */ export const enum CloudName { COM = "COM", // Commercial Cloud CN = "CN", // China Cloud GCC = "GCC", // US Government Community Cloud GCCHIGH = "GCCHIGH", // US Government Community Cloud High DOD = "DOD", // US Department of Defense Cloud } /** * Interface representing information about the user associated with the token. */ export interface AcquireAADTokenUserInfo { userId?: string; // Unique identifier for the user tenantId?: string; // Unique identifier for the tenant } /** * Interface representing information about the fabric environment. */ export interface AcquireAADTokenFabricInfo { cloudName?: CloudName; // Name of the cloud environment } /** * Interface representing the result of acquiring a Microsoft Entra ID token. */ export interface AcquireAADTokenResult { accessToken?: string; // Access token issued by Microsoft Entra ID expiresOn?: number; // Expiration time of the access token userInfo?: AcquireAADTokenUserInfo; // Information about the user associated with the token fabricInfo?: AcquireAADTokenFabricInfo; // Information about the fabric environment }
acquireAADTokenstatus: Returnerar någon av följande behörighetsstatusar som är associerade med att hämta token.
- Tillåten: Behörigheten tillåts i den aktuella miljön.
- NotDeclared: Behörighetsdeklarationen saknas i avsnittet visuella funktioner.
- Stöds inte: Behörigheten stöds inte i den aktuella miljön.
- DisabledByAdmin: Infrastrukturadministratören nekade behörighetsanvändning.
Följande exempelkod visar hur du hämtar en Microsoft Entra-ID-token med hjälp av API:et:
// Step 1: Check the status of AAD token acquisition
const acquireTokenStatus = await this.acquireAADTokenService.acquireAADTokenstatus();
// Step 2: Verify if acquiring the token is allowed
if (acquireTokenStatus === PrivilegeStatus.Allowed) {
// Step 3: Acquire the Microsoft Entra ID token
const acquireAADTokenResult: AcquireAADTokenResult = await this.acquireAADTokenService.acquireAADToken();
// Step 4: Confirm successful acquisition of the access token
if (acquireAADTokenResult.accessToken) {
// Step 5: Call your backend API with the obtained token
}
}
// Step 6: Handle unsuccessful AAD token acquisition
Beaktanden och begränsningar
Tokenförvärv blockeras om något av följande villkor gäller:
Klientväxeln är inaktiverad.
Användaren är inte inloggad (i Desktop).
ISV:en förauktoriserar inte Power BI-programmet i förväg.
Formatet för parametern AADAuthentication privilege är ogiltigt.
Det visuella objektet är inte offentligt godkänt eller är inte ett visuellt felsökningsobjekt.
Det visuella objektets serverdelstjänst, som konfigurerats som målgrupp av det visuella objektet, har inte lämpliga medgivanden för Graph-API:et i konsumentklientorganisationen med hjälp av det visuella objektet. Mer information om medgivande finns i klientadministratörens medgivande.