API d’authentification
L’API d’authentification permet aux visuels d’obtenir des jetons d’accès Microsoft Entra ID (anciennement Azure AD) pour les utilisateurs connectés, ce qui facilite l’authentification par authentification unique.
Les administrateurs Power BI peuvent activer ou désactiver l’API via un commutateur global. Les paramètres par défaut bloquent (désactivent) l’API.
L’API s’applique uniquement aux visuels AppSource et non aux visuels privés. Les visuels en cours de développement peuvent être testés en mode débogage avant leur publication.
Environnements pris en charge
Les environnements suivants sont pris en charge :
- web
- Bureau
- Bureau RS
- Applications mobiles
Environnements non pris en charge
Les environnements suivants ne sont pas encore pris en charge :
- Service RS
- Analytique incorporée
- Teams
Comment utiliser l’API d’authentification
Dans le fichier capabilities.json, ajoutez le privilège « AADAuthentication » avec un URI d’application enregistré Microsoft Entra ID pour chaque cloud pris en charge. Fabric génère un jeton en fonction de l’audience configurée pour le cloud actuel et le remet au visuel.
Le visuel peut ensuite utiliser le jeton pour s’authentifier auprès de l’audience respective, représentant son service principal :
"privileges": [
{
"name": "AADAuthentication",
"parameters": {
"COM": "https://contoso.com",
"CN": "https://contoso.cn"
}
}
]
Dans le fichier pbiviz.json, définissez la version d’API sur 5.9.1 ou ultérieure :
AcquireAADTokenService nouvellement exposé contient deux méthodes :
acquireAADToken : renvoie une charge utile de jeton d’authentification de type
AcquireAADTokenResult
pour le visuel ou la valeur nulle en cas d’extraction impossible./** * 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 : retourne l’un des états de privilège suivants associés à l’acquisition du jeton.
- Allowed : le privilège est autorisé dans l’environnement actuel.
- NotDeclared : la déclaration de privilège est manquante dans la section des fonctionnalités visuelles.
- NotSupported : le privilège n’est pas pris en charge dans l’environnement actuel.
- DisabledByAdmin : l’administrateur Fabric a refusé l’utilisation des privilèges.
L’exemple de code suivant montre comment acquérir un jeton Microsoft Entra ID à l’aide de 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
Observations et limitations
L’acquisition de jetons est bloquée si l’une des conditions suivantes s’applique :
Le commutateur de locataire est désactivé.
L’utilisateur n’est pas connecté (dans Desktop).
Le fournisseur de logiciel indépendant (ISV) n’a pas autorisé l’application Power BI au préalable.
Le format du paramètre de privilège AADAuthentication n’est pas valide.
Le visuel n’est pas approuvé publiquement ou n’est pas un visuel de débogage.
Le service principal du visuel, configuré en tant qu’audience par le visuel, ne dispose pas des consentements appropriés pour l’API Graph dans le locataire consommateur à l’aide du visuel. Pour plus d’informations sur le consentement, consultez le consentement de l’administrateur client.