API de autenticação
A API de Autenticação permite que os visuais obtenham tokens de acesso do Microsoft Entra ID (anteriormente conhecido como Azure AD) para usuários conectados, facilitando a autenticação de logon único.
Os administradores do Power BI podem habilitar ou desabilitar a API por meio de um comutador global. A configuração padrão bloqueia (desabilita) a API.
A API é aplicável somente para visuais do AppSource e não para visuais privados. Os visuais que estão em desenvolvimento podem ser testados no modo de depuração antes de serem publicados.
Ambientes compatíveis
Os ambientes a seguir são suportados:
- Web
- Área de trabalho
- Desktop do RS
- Dispositivos móveis
Ambientes sem suporte
Os seguintes ambientes ainda não têm suporte:
- Serviço do RS
- Análise integrada
- Teams
Como usar a API de Autenticação
No arquivo capabilities.json, adicione o privilégio "AADAuthentication" com o URI do aplicativo registrado do Microsoft Entra ID. O Fabric gera um token de acordo com o público-alvo configurado para a nuvem atual e o entrega ao visual.
Em seguida, o visual pode utilizar o token para autenticar-se no respectivo público-alvo, representando seu serviço de back-end:
"privileges": [
{
"name": "AADAuthentication",
"parameters": {
"COM": "https://contoso.com",
"CN": "https://contoso.cn"
}
}
]
No arquivo pbiviz.json, defina a versão da API como 5.9.1 ou superior:
O AcquireAADTokenService recém-exposto contém dois métodos:
acquireAADToken: retorna um conteúdo de token de autenticação do tipo
AcquireAADTokenResult
para o visual ou nulo se não puder ser buscado./** * 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: retorna um dos seguintes status de privilégio associados à aquisição do token.
- Allowed: o privilégio é permitido no ambiente atual.
- NotDeclared: a declaração de privilégio está ausente na seção de recursos visuais.
- NotSupported: o privilégio não tem suporte no ambiente atual.
- DisabledByAdmin: o administrador do Fabric negou o uso de privilégios.
O código de exemplo a seguir demonstra como adquirir um token do Microsoft Entra ID usando a 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
Considerações e limitações
A aquisição de token será bloqueada se qualquer uma das seguintes condições se aplicar
O comutador do locatário está desativado.
O usuário não está conectado (no desktop).
O ISV não pré-autorizou o aplicativo do Power BI.
O formato do parâmetro de privilégio AADAuthentication é inválido.
O visual não é aprovado publicamente ou não é um visual de depuração.
O serviço de back-end do visual, configurado como o público-alvo pelo visual, não tem consentimentos apropriados para a API do Graph no locatário do consumidor usando o visual. Para obter mais informações sobre consentimentos, consulte consentimento do administrador do locatário.