Rozhraní API pro ověřování

Rozhraní API pro ověřování umožňuje vizuálům získat přístupové tokeny Microsoft Entra ID (dříve označované jako Azure AD) pro přihlášené uživatele, což usnadňuje ověřování pomocí jednotného přihlašování.

Správci Power BI můžou rozhraní API povolit nebo zakázat prostřednictvím globálního přepínače. Výchozí nastavení blokuje (zakáže) rozhraní API.

Toto rozhraní API platí jenom pro vizuály AppSource, nikoli pro privátní vizuály. Vizuály, které jsou ve vývoji, je možné testovat v režimu ladění před jejich publikováním.

Podporovaná prostředí

Podporují se následující prostředí:

  • Web
  • Desktop
  • RS Desktop
  • Mobilní

Nepodporovaná prostředí

Následující prostředí se zatím nepodporují:

  • Suverénní cloudy
  • Služba RS
  • Vložené analýzy
  • Teams

Jak používat rozhraní API pro ověřování

Do souboru capabilities.json přidejte oprávnění AADAuthentication s vaším identifikátorem URI registrované aplikace Microsoft Entra ID. Prostředky infrastruktury vygenerují token s touto cílovou skupinou a doručí ho do vizuálu.
Vizuál pak může použít token k ověření vůči cílové skupině https://contoso.com, která představuje její back-endovou službu:

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

V souboru pbiviz.json nastavte verzi rozhraní API na 5.9.0 nebo vyšší:

Nově zpřístupněná služba AcquireAADTokenService obsahuje dvě metody:

  • acquireAADToken: Vrátí datovou část ověřovacího tokenu typu AcquireAADTokenResult pro vizuál nebo hodnotu null, pokud se nedá načíst.

    /**
    * 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 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
    }
    
  • acquireAADTokenstatus: Vrátí jeden z následujících stavů oprávnění spojených se získáním tokenu.

    • Povoleno: Oprávnění je povolené v aktuálním prostředí.
    • NotDeclared: V části schopností vizuálu chybí deklarace oprávnění.
    • Nepodporováno: Oprávnění se v aktuálním prostředí nepodporuje.
    • DisabledBy Správa: Správce prostředků infrastruktury odepřel využití oprávnění.

Následující ukázkový kód ukazuje, jak získat token ID Microsoft Entra pomocí rozhraní 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

Úvahy a omezení

Získání tokenu se zablokuje, pokud platí některá z následujících podmínek:

  • Přepínač tenanta je vypnutý.

  • Uživatel není přihlášený (v Desktopu).

  • Výrobce softwaru předem neověřil aplikaci Power BI.

  • Formát parametru oprávnění AADAuthentication je neplatný.

  • Vizuál není veřejně schválený nebo není vizuál ladění.

  • Back-endová služba vizuálu nakonfigurovaná jako cílová skupina vizuálu nemá odpovídající souhlas pro rozhraní Graph API v tenantovi příjemce, který vizuál používá. Další informace o souhlasech najdete v tématu Souhlas správce tenanta.

Nastavení aplikace Microsoft Entra ID