Compartilhar via


Configuração de autenticação

Neste artigo, saiba como trabalhar com a autenticação no Microsoft Fabric.

Para autenticar uma carga de trabalho personalizada no Fabric, primeiro configure três partes de componente:

Observação

Para definir as configurações de autenticação descritas neste artigo, você deve ter a função de Administrador Global.

Provisionamento do Armazenamento do Microsoft Azure

O exemplo de autenticação usado neste artigo demonstra como armazenar dados e ler dados de uma arquitetura lakehouse. Isso requer a geração de tokens para o serviço de Armazenamento do Azure em fluxos OBO (On-Behalf-Of). Para gerar tokens, você deve consentir em usar o Armazenamento do Azure com seu aplicativo. Para consentir, o Armazenamento do Azure deve primeiro ser provisionado no locatário.

Para verificar se o Armazenamento do Azure seja provisionado no locatário:

  1. Entre no portal do Azure.

  2. Acesse Microsoft Entra ID>Aplicativos empresariais.

  3. Nos filtros de pesquisa, selecione Tipo de aplicativo = todos os aplicativos. A ID do aplicativo começa com e406a681-f3d4-42a8-90b6-c2b029497af1.

    Captura de tela mostrando o provisionamento do Armazenamento do Azure no portal do Azure.

Se o aplicativo de Armazenamento do Azure for mostrado nos resultados da pesquisa, o armazenamento já estará provisionado e você poderá continuar na próxima etapa. Caso contrário, um Administrador Global precisará configurar o aplicativo.

Para provisionar o Armazenamento do Azure, abra o Windows PowerShell como administrador e execute o seguinte script:

Install-Module az  
Import-Module az  
Connect-AzureAD  
New-AzureADServicePrincipal -AppId e406a681-f3d4-42a8-90b6-c2b029497af1

Configurar o aplicativo no Microsoft Entra ID de forma manual

Para autenticar uma carga de trabalho, o aplicativo de carga de trabalho deve ser registrado no Microsoft Entra ID. Se você não tiver um aplicativo registrado, crie um novo aplicativo. Em seguida, conclua as etapas abaixo.

  1. Aplique as seguintes configurações ao seu aplicativo:

    1. Torne o aplicativo um aplicativo multilocatário.
    2. Para aplicativos de desenvolvimento, configure o URI de redirecionamento como http://localhost:60006/close com a plataforma SPA (aplicativo de página única). Essa configuração é necessária para dar suporte ao consentimento da Microsoft. Você pode adicionar outros URIs de redirecionamento.

    Observação

    • O URI de redirecionamento deve ser um URI que simplesmente fecha a página quando você entra nela. O URI http://localhost:60006/close já está configurado no exemplo de front-end. Você pode revisar o URI de redirecionamento em Frontend/src/index.ts. Se você alterar o URI, verifique se ele corresponde ao URI configurado para seu aplicativo.
    • Você pode configurar o URI de redirecionamento depois de criar o aplicativo. Para alterar as configurações de URI de redirecionamento, acesse Autenticação>Gerenciar.
    • A URL de redirecionamento deve retornar uma página HTML que só chama o JavaScript windows.close().

    Captura de tela da interface do usuário de registro do aplicativo.

  2. Altere o URI de ID do seu aplicativo. Acesse Gerenciar>Expor uma API e edite o URI da ID do Aplicativo para seu aplicativo.

    Para um cenário de modo de desenvolvedor, o URI da ID do aplicativo deve começar com api://localdevinstance/<Workload publisher's tenant ID in lowercase (the tenant ID of the user used in Fabric to run the sample)>/<Name of your workload> e um subcaminho opcional no final que começa com / (consulte os exemplos mais adiante nesta seção).

    Parâmetros de URI da ID do aplicativo:

    • O nome da carga de trabalho precisa ser exatamente como está especificado no manifesto.
    • O URI da ID não pode terminar com uma barra (/).
    • O final do URI de ID pode ter um subcaminho opcional identificado por uma cadeia de caracteres de até 36 caracteres. Ele pode conter apenas letras minúsculas e maiúsculas, números e traços em inglês.

    Dica

    Obtenha ajuda para encontrar sua ID de locatário do Microsoft Entra.

    Por exemplo, se a ID do locatário do editor for aaaabbbb-0000-cccc-1111-dddd2222eeee e o nome da carga de trabalho for Fabric.WorkloadSample, então:

    • Os seguintes URIs são válidos:

      • api://localdevinstance/aaaabbbb-0000-cccc-1111-dddd2222eeee/Fabric.WorkloadSample
      • api://localdevinstance/aaaabbbb-0000-cccc-1111-dddd2222eeee/Fabric.WorkloadSample/abc
    • Os seguintes URIs não são válidos:

      • api://localdevinstance/aaaabbbb-0000-cccc-1111-dddd2222eeee/Fabric.WorkloadSample/af/
      • api://localdevinstance/aaaabbbb-0000-cccc-1111-dddd2222eeee/Fabric.WorkloadSample/af/a
      • Qualquer URI de ID que não comece com api://localdevinstance/aaaabbbb-0000-cccc-1111-dddd2222eeee/Fabric.WorkloadSample

Adicionar um escopo para APIs CRUD e trabalhos

Para trabalhar com as APIs Criar, Ler, Atualizar e Excluir (CRUD) para itens de carga de trabalho e executar outras operações com trabalhos, adicione um escopo. Além disso, adicione dois aplicativos do Fabric dedicados aos aplicativos pré-autorizados para esse escopo para indicar que sua API (o escopo que você criou) confia no Fabric.

Para adicionar um escopo:

  1. Em Expor uma API, selecione Adicionar um escopo. Nomeie o escopo FabricWorkloadControl e insira os detalhes necessários.

  2. Em Aplicativos cliente autorizados, selecione Adicionar um aplicativo cliente. Adicione d2450708-699c-41e3-8077-b0c8341509aa (cliente Fabric para um aplicativo de cargas de trabalho) e selecione seu escopo.

Adicionar escopos para a API do plano de dados

Outros escopos precisam ser registrados para representar os grupos de operações, que são expostos pela API do plano de dados.

No exemplo de back-end, fornecemos quatro exemplos. Você pode vê os exemplos em Backend/src/Constants/scopes.cs.

Os escopos são:

  • Item1.Read.All: para ler itens da carga de trabalho
  • Item1.ReadWrite.All: para itens da carga de trabalho de leitura/gravação
  • FabricLakehouse.Read.All: para ler arquivos do lakehouse
  • FabricLakehouse.ReadWrite.All: para ler/gravar arquivos lakehouse

Pré-autorize 871c010f-5e61-4fb1-83ac-98610a7e9110 (o aplicativo cliente Fabric) para esses escopos.

Você pode encontrar as IDs de aplicativo desses aplicativos em Microsoft Power BI e Serviço do Power BI em IDs de aplicativos da Microsoft usados com frequência.

Veja como a seção Expor uma API deve ficar no seu aplicativo. Neste exemplo, o URI da ID é api://localdevinstance/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/Fabric.WorkloadSample.

Captura de tela mostrando a aparência da seção Expor uma API.

Gerar um segredo para o seu aplicativo

Em Certificados e segredos, selecione a guia Segredos e adicione um segredo. Insira qualquer nome que você deseja usar e salve-o. Use esse segredo ao configurar o exemplo de back-end.

Captura de tela da caixa de diálogo gerar segredos.

Adicionar uma declaração opcional idtyp

Em Configuração de token, selecione Adicionar declaração opcional. Para tipo de token, selecione Acessar e idtyp.

Captura de tela mostrando a adição de idtyp da declaração.

Adicionar permissões de API

Em permissões de API, adicione as permissões necessárias para seu aplicativo. Para o exemplo de back-end, adicione user_impersonation de Armazenamento do Azure (para APIs do OneLake) e Workspace do Serviço do Power BI.Read.all (para APIs de controle de carga de trabalho):

Captura de tela que mostra como adicionar permissões de API.

Para saber mais sobre as permissões de API, confira Atualizar as permissões solicitadas de um aplicativo no Microsoft Entra ID.

Definir seu aplicativo para trabalhar com o token de autenticação v1

Em Manifesto, verifique se accessTokenAcceptedVersion está definido como null ou 1.

Configurar o aplicativo no Microsoft Entra ID ao usar um script

Para uma configuração simplificada do seu aplicativo no Microsoft Entra ID, você pode usar um script automatizado do PowerShell (opcional).

  1. Instale a CLI do Azure: para começar, instale a CLI do Azure para Windows.
  2. Executar o script CreateDevAADApp.ps1: faça a execução do script CreateDevAADApp. Será solicitado que você entre usando as credenciais da conta de usuário com a qual pretende criar o aplicativo.
  3. Forneça informações necessárias: quando solicitado, insira o nome a ser usado para seu aplicativo, o nome da carga de trabalho (prefixado com Org.) e sua ID de locatário.

Quando o script é executado com êxito, ele retorna todos os detalhes necessários para configurar sua carga de trabalho. Além disso, ele fornecerá uma URL direta para o seu aplicativo e uma URL de consentimento administrativo para autorização do aplicativo em todo o locatário.

Exemplo de uso

Para criar um aplicativo chamado myWorkloadApp com o nome de carga de trabalho Org.Myworkload para o locatário especificado, faça a execução do seguinte comando no PowerShell:

powershell .\CreateDevAADApp.ps1 -applicationName "myWorkloadApp" -workloadName "Org.Myworkload" -tenantId "bbbbcccc-1111-dddd-2222-eeee3333ffff"

Este exemplo demonstra como usar o script CreateDevAADApp.ps1 com argumentos da linha de comando para automatizar o processo de configuração do aplicativo. A ID de locatário fornecida é apenas um exemplo. Substitua a ID de locatário de exemplo pela ID do locatário real.

Configure sua carga de trabalho (back-end)

  1. No exemplo de back-end, vá para o arquivo src/appsettings.json no rrepositório e defina as configurações:

    • PublisherTenantId: a ID do locatário do fornecedor.
    • ClientId: o ID do seu aplicativo (você pode encontrá-lo no Microsoft Entra ID em visão geral).
    • ClientSecret: o segredo que você criou quando você configurou o aplicativo do Microsoft Entra.
    • Audience: o URI de ID que você configurou no aplicativo do Microsoft Entra.
  2. Configure o arquivo workloadManifest.xml. No repositório, vá para o arquivo src/Packages/manifest/files/WorkloadManifest.xml. Em AADApp, configure AppId, redirectUrie ResourceId (o URI da ID).

<AADApp>
    <AppId>YourApplicationId</AppId>
    <RedirectUri>YourRedirectUri</RedirectUri>
    <ResourceId>YourResourceId</ResourceId>
</AADApp>

Configurar o manifesto local da carga de trabalho

Observação

Essa etapa se aplica somente em um cenário de modo de desenvolvedor.

Depois de configurar seu aplicativo, atualize as seguintes configurações no arquivo de configuração .env.dev localizado na pasta Frontend:

"DEV_AAD_CONFIG_AUDIENCE": "", // The ID URI configured in your application for a developer scenario

"DEV_AAD_CONFIG_REDIRECT_URI": "http://localhost:60006/close", // Or the path you configured in index.ts

"DEV_AAD_CONFIG_APPID": "" // Your app ID

Captura de tela que mostra a configuração de um arquivo .env.dev.