Partilhar via


Configuração de autenticação

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

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

Nota

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

Provisionamento de armazenamento do Azure

O exemplo de autenticação usado neste artigo demonstra como armazenar e ler dados de uma arquitetura lakehouse. Ele requer a geração de tokens para o serviço de Armazenamento do Azure em fluxos em nome de (OBO). 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 está provisionado no locatário:

  1. Inicie sessão no portal do Azure.

  2. Vá para aplicativos Microsoft Entra ID>Enterprise.

  3. Nos filtros de pesquisa, selecione Tipo de aplicativo = Todos os aplicativos. O 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á está provisionado e você pode continuar para a próxima etapa. Caso contrário, um administrador global precisa 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

Configure seu aplicativo no Microsoft Entra ID manualmente

Para autenticar uma carga de trabalho, o aplicativo de carga de trabalho deve ser registrado no Microsoft Entra ID. Se não tiver uma aplicação registada, crie uma nova aplicação. Em seguida, conclua as etapas a seguir.

  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 de aplicativo de página única (SPA). Esta configuração é necessária para suportar o consentimento da Microsoft. Você pode adicionar outros URIs de redirecionamento.

    Nota

    • O URI de redirecionamento deve ser um URI que simplesmente fecha a página quando você acessa ela. O URI http://localhost:60006/close já está configurado no exemplo de frontend. 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, vá para Gerenciamento de autenticação>.
    • O URL de redirecionamento deve retornar uma página HTML que chama apenas JavaScript windows.close().

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

  2. Altere o URI do ID do aplicativo para seu aplicativo. Vá para Gerenciar>expor uma API e edite o valor do URI da ID do aplicativo para seu aplicativo.

    Para um cenário de modo de desenvolvedor, o URI do 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 deve ser exatamente como especificado no manifesto.
    • O URI DE 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. Pode conter apenas letras minúsculas e maiúsculas, números e traços em inglês.

    Gorjeta

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

    Por exemplo, se o ID de 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 APIs CRUD (Create, Read, Update and Delete) para itens de carga de trabalho e para executar outras operações com trabalhos, adicione um escopo. Além disso, adicione dois aplicativos 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 (o cliente de malha para um aplicativo de carga de trabalho) e selecione seu escopo.

Adicionar escopos para a API do plano de dados

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

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

Os âmbitos são os seguintes:

  • Item1.Read.All: Para ler itens de carga de trabalho
  • Item1.ReadWrite.All: Para itens de carga de trabalho de leitura/escrita
  • FabricLakehouse.Read.All: Para ler arquivos lakehouse
  • FabricLakehouse.ReadWrite.All: Para ler/escrever arquivos lakehouse

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

Você pode encontrar as IDs de aplicativo desses aplicativos em Microsoft Power BI e Serviço Power BI em IDs de aplicativo de aplicativos Microsoft comumente usados.

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

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

Gere um segredo para a sua aplicação

Em Certificados & segredos, selecione a guia Segredos e adicione um segredo. Introduza qualquer nome que pretenda utilizar e, em seguida, guarde-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 Acesso e, em seguida, selecione idtyp.

Captura de tela mostrando a adição de idtyp de 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 o user_impersonation de Armazenamento do Azure (para APIs OneLake) e o Power BI Service Workspace.Read.all (para APIs de controle de carga de trabalho):

Captura de tela mostrando a adição de permissões de API.

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

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

Em Manifesto, certifique-se de que accessTokenAcceptedVersion está definido como null ou como 1.

Configure seu aplicativo no Microsoft Entra ID usando um script

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

  1. Instale a CLI do Azure: para começar, instale a CLI do Azure para Windows.
  2. Execute o script CreateDevAADApp.ps1: execute o script CreateDevAADApp. Você será solicitado a entrar usando as credenciais da conta de usuário sob a qual você pretende criar o aplicativo.
  3. Forneça as informações necessárias: quando solicitado, insira o nome a ser usado para seu aplicativo, o nome da carga de trabalho (prefixada 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. Ele também fornece uma URL direta para seu aplicativo e uma URL de consentimento administrativo para autorização de aplicativo em todo o locatário.

Exemplo de utilização

Para criar um aplicativo chamado myWorkloadApp com o nome da carga de trabalho Org.Myworkload para o locatário especificado, execute o 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 de linha de comando para automatizar o processo de instalação do aplicativo. O ID do locatário fornecido é apenas um exemplo. Substitua o ID do locatário de exemplo pelo 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 repositório e defina as configurações:

    • PublisherTenantId: O ID do locatário do editor.
    • ClientId: Sua ID de aplicativo (você pode encontrá-la na visão geral do Microsoft Entra ID).
    • ClientSecret: O segredo que você criou quando configurou o aplicativo Microsoft Entra.
    • Audience: O URI de ID que você configurou no aplicativo 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 do ID).

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

Configurar o manifesto local da carga de trabalho

Nota

Esta 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.