Del via


Godkjennings-API

Autentiserings-API-et gjør det mulig for visuelle enheter å hente Microsoft Entra ID (tidligere kjent som Azure AD) tilgangstokler for innloggede brukere, noe som muliggjør single sign-on-autentisering.

Power BI-administratorer kan aktivere eller deaktivere API-et via en global switch. Standardinnstillingen blokkerer (deaktiverer) API-et.

API-et gjelder kun for AppSource-visualiseringer, og ikke for private visuelle elementer. Visuelle elementer som er under utvikling kan testes i feilsøkingsmodus før de publiseres.

Støttede miljøer

Følgende miljøer støttes:

  • web
  • Stasjonær datamaskin
  • RS Desktop
  • Mobil

Ustøttede miljøer

Følgende miljøer støttes ennå ikke:

  • RS-tjeneste
  • Innebygd analyse
  • Teams

Hvordan bruke autentiserings-API-et

I capabilities.json-filen legg til "AADAuthentikation"-privilegiet med en Microsoft Entra ID-registrert applikasjons-URI for hver støttet sky. Fabric genererer en token i henhold til målgruppen som er konfigurert for den nåværende skyen, og leverer den til det visuelle.
Det visuelle kan deretter bruke tokenet til å autentisere mot den respektive målgruppen, og representerer sin backend-tjeneste:

"privileges": [
    {
        "name": "AADAuthentication",
        "parameters": {
            "COM": "https://contoso.com",
            "CN": "https://contoso.cn"
        }
    }
]

I pbiviz.json-filen , sett API-versjonen til 5.9.1 eller høyere:

Den nylig avslørte AcquireAADTokenService inneholder to metoder:

  • acquireAADToken: Returnerer en autentiseringstoken-payload av typen AcquireAADTokenResult for visuell eller null hvis den ikke kan hentes.

     /**
     * 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: Returnerer en av følgende privilegiestatuser knyttet til innkjøp av tokenet.

    • Tillatt: Privilegiet er tillatt i det nåværende miljøet.
    • Ikke erklært: Privilegieerklæringen mangler i avsnittet om visuelle kapasiteter.
    • NotSupported: Privilegiet støttes ikke i det nåværende miljøet.
    • DisabledByAdmin: Fabric-administratoren nektet bruk av privilegier.

Følgende eksempelkode demonstrerer hvordan man kan skaffe en Microsoft Entra ID-token ved hjelp 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 

Viktige faktorer og begrensninger

Tokeninnhenting blokkeres dersom noen av følgende betingelser gjelder:

  • Leietakerbryteren er slått av.

  • Brukeren er ikke logget inn (på Desktop).

  • ISV-en forhåndsgodkjente ikke Power BI-applikasjonen.

  • Formatet til AADAuthentication-privilegieparameteren er ugyldig.

  • Visualiseringen er ikke offentlig godkjent eller er ikke en feilsøkingsvisuell.

  • Den visuelle backend-tjenesten, konfigurert som publikum av den visuelle, har ikke passende samtykker for Graph API i forbrukerleietakeren som bruker visualiseringen. For mer om samtykke, se tenant administrator consent.

Microsoft Entra ID-applikasjonsoppsett