Rozhranie API overovania

Rozhranie API na overovanie umožňuje vizuálom získať prístupové tokeny Microsoft Entra ID (predtým známe ako Azure AD) pre prihlasovaných používateľov, čím sa uľahčuje overovanie jediným prihlásením.

Správcovia služby Power BI môžu povoliť alebo zakázať rozhranie API prostredníctvom globálneho prepínača. Predvolené bloky nastavenia (zakáže) rozhranie API.

Rozhranie API sa vzťahuje len na vizuály AppSource, nie na súkromné vizuály. Vizuály, ktoré sú vo vývoji, je možné pred publikovaním testovať v režime ladenia.

Podporované prostredia

Podporované sú nasledujúce prostredia:

  • Web
  • Pracovná plocha
  • RS Desktop
  • Mobilné zariadenia

Nepodporované prostredia

Nasledujúce prostredia zatiaľ nie sú podporované:

  • Služba RS
  • Vložené analýzy
  • Teams

Používanie rozhrania API na overovanie

Do súboru capabilities.json pridajte oprávnenie AADAuthentication s identifikátorom URI registrovanej aplikácie Microsoft Entra pre každý podporovaný cloud. Fabric vygeneruje token podľa publika nakonfigurovaného pre aktuálny cloud a dodá ho do vizuálu.
Vizuál potom môže využiť token na overenie pre príslušnú cieľovú skupinu predstavujúcu jeho serverovú službu:

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

V súbore pbiviz.json nastavte verziu rozhrania API na 5.9.1 alebo vyššiu:

Novo exponovaná služba AcquireAADTokenService obsahuje dve metódy:

  • acquireAADToken: Vráti údajovú časť tokenu overenia typu AcquireAADTokenResult pre vizuál alebo hodnotu null, ak sa nedá načítať.

     /**
     * 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
    }
    
  • acquireADTokenstatus: Vráti jedno z nasledujúcich oprávnení priradených k získaniu tokenu.

    • Povolené: Oprávnenie je povolené v aktuálnom prostredí.
    • NotDeclared: Deklarácia oprávnenia chýba v časti možností vizuálu.
    • NotSupported (Nepodporované): Oprávnenie nie je podporované v aktuálnom prostredí.
    • DisabledBy Spravovanie: Správca služby Fabric poprel používanie oprávnení.

Nasledujúci vzorový kód ukazuje, ako získať token ID Microsoft Entra pomocou rozhrania 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 

Dôležité informácie a obmedzenia

Akvizícia tokenu je blokovaná, ak sa uplatňuje niektorá z nasledujúcich podmienok:

  • Prepínač nájomníka je vypnutý.

  • Používateľ nie je prihlásený (v aplikácii Desktop).

  • Nezávislý dodávateľ softvéru nepredvolil predbežnú autorizáciu aplikácie Power BI.

  • Formát parametra oprávnenia AADAuthentication je neplatný.

  • Vizuál nie je verejne schválený alebo nie je vizuálom ladenia.

  • Serverová služba vizuálu nakonfigurovaná ako cieľová skupina vizuálu nemá príslušné súhlasy pre rozhranie Graph API v nájomníkovi spotrebiteľských používateľov, ktorí ho používajú. Ďalšie informácie o súhlase nájdete v téme Súhlas správcu nájomníkov.

Nastavenie aplikácie id Microsoft Entra