Condividi tramite


API di autenticazione

L'API di autenticazione consente agli oggetti visivi di ottenere i token di accesso di Microsoft Entra ID (in precedenza noti come Azure AD) per gli utenti connessi, semplificando l'autenticazione Single Sign-On.

Gli amministratori di Power BI possono abilitare o disabilitare l'API tramite un commutatore globale. L'impostazione predefinita blocca (disabilita) l'API.

L'API è applicabile solo per gli oggetti visivi di AppSource e non per gli oggetti visivi privati. Gli oggetti visivi in fase di sviluppo possono essere testati in modalità di debug prima della pubblicazione.

Ambienti supportati

Sono supportati i seguenti ambienti:

  • Web
  • Desktop
  • Desktop RS
  • Dispositivi mobili

Ambienti non supportati

Gli ambienti seguenti non sono ancora supportati:

  • Servizio RS
  • Analisi incorporate
  • Teams

Come usare l'API di autenticazione

Nel file capabilities.json aggiungere il privilegio "AADAuthentication" con un URI dell'applicazione registrato con ID Microsoft Entra per ogni cloud supportato. Fabric genera un token in base al gruppo di destinatari configurato per il cloud corrente e lo distribuisce all'oggetto visivo.
L'oggetto visivo può quindi usare il token per eseguire l'autenticazione con il rispettivo gruppo di destinatari, che rappresenta il servizio back-end:

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

Nel file pbiviz.json impostare la versione dell'API su 5.9.1 o successiva:

AcquireAADTokenService appena esposto contiene due metodi:

  • acquireAADToken: restituisce un payload del token di autenticazione di tipo AcquireAADTokenResult per l'oggetto visivo o Null se non può essere recuperato.

     /**
     * 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: restituisce uno degli stati dei privilegi seguenti associati all'acquisizione del token.

    • Allowed: il privilegio è consentito nell'ambiente corrente.
    • NotDeclared: la dichiarazione dei privilegi non è presente nella sezione funzionalità visive.
    • NotSupported: il privilegio non è supportato nell'ambiente corrente.
    • DisabledByAdmin: l'amministratore dell'infrastruttura ha negato l'utilizzo dei privilegi.

Il codice di esempio seguente illustra come acquisire un token ID Microsoft Entra usando l'API:

    // 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 

Considerazioni e limitazioni

L'acquisizione del token viene bloccata se si applica una delle condizioni seguenti:

  • L'opzione del tenant è disattivata.

  • L'utente non ha eseguito l'accesso (in Desktop).

  • L'ISV non ha preautenticato l'applicazione Power BI.

  • Il formato del parametro del privilegio AADAuthentication non è valido.

  • L'oggetto visivo non è approvato pubblicamente o non è un oggetto visivo di debug.

  • Il servizio back-end dell'oggetto visivo, configurato come gruppo di destinatari dall'oggetto visivo, non ha il consenso appropriato per l'API Graph nel tenant consumer usando l'oggetto visivo. Per altre informazioni sul consenso, vedere Consenso dell'amministratore tenant.

Configurazione dell'applicazione Microsoft Entra ID