Partilhar via


Configurar o início de sessão do Azure Databricks a partir do dbt Core com o Microsoft Entra ID

Importante

Esta funcionalidade está em Pré-visualização Pública.

Este artigo descreve como configurar o início de sessão do Azure Databricks a partir do dbt Core com o Microsoft Entra ID. Depois de concluir essa configuração única como administrador de conta do Azure Databricks, os usuários podem conectar o Azure Databricks ao dbt Core usando o logon único (SSO).

Além de usar o Microsoft Entra ID, você pode usar o Databricks M2M OAuth para integrar com o dbt Core. Consulte Habilitar ou desabilitar aplicativos OAuth de parceiros.

Antes de começar

Antes de concluir as etapas neste artigo, você deve:

  • Ter acesso a um ambiente dbt Core local
  • Obtenha o Nome do Host do Servidor e o Caminho HTTP para um armazém SQL no seu espaço de trabalho do Azure Databricks
  • Seja um administrador de conta do Azure Databricks
  • Tenha permissão para criar um registro de aplicativo do Azure no locatário do Azure para sua conta do Azure Databricks.

Configurar autenticação máquina-a-máquina (M2M) para dbt Core

Esta seção descreve como configurar a autenticação máquina a máquina (M2M) para Azure Databricks e dbt Core. O fluxo de trabalho M2M da OAuth permite que processos automatizados, como a integração de CI/CD, acessem recursos com segurança sem intervenção humana. O cliente dbt é executado como uma entidade de serviço, adquire um token OAuth do Azure AD usando a entidade de serviço e utiliza esse token para se conectar à API SQL do Databricks.

Criar um registo de aplicação do Azure

  1. Use o portal do Azure para entrar no locatário do Azure para sua conta do Azure Databricks, em https://portal.azure.com/<tenant-id>.
  2. Clique em Registos de aplicações. Se os registos de aplicações não estiverem visíveis, clique em Mais serviços e utilize a caixa de texto Serviços de filtragem para procurar registos de aplicações.
  3. Clique em Novo registo.
  4. Insira um Nome para o aplicativo.
  5. Para Redirecionar URI, selecione Cliente público/nativo (mobile & desktop) no menu suspenso e digite http://localhost:8020.
  6. Clique em Registar.
  7. Copie o ID da Aplicação (cliente). Você precisará desse valor mais tarde.

Gerar um segredo de cliente para o registro do Aplicativo do Azure

  1. No portal do Azure, selecione o registro de aplicativo que você criou na etapa anterior.
  2. Clique em Certificados e segredos e, em seguida, clique em Novo segredo do cliente.
  3. Introduza uma descrição e, em seguida, clique em Adicionar.
  4. Copie o valor secreto. Você precisará desse valor mais tarde e só poderá acessá-lo após a criação secreta.

Adicionar a entidade de serviço Microsoft Entra ID ao seu espaço de trabalho

  1. No seu espaço de trabalho do Azure Databricks, clique no seu nome de utilizador no canto superior direito e, em seguida, clique em Definições.
  2. Clique na guia Identidade e acesso .
  3. Ao lado de Entidades de serviço, clique em Gerenciar.
  4. Clique em Adicionar entidade de serviço e, em seguida, clique em ID do cliente.
  5. Para ApplicationId, insira o ID do aplicativo (cliente) copiado anteriormente.
  6. Em Nome para Exibição, insira um nome lógico para a entidade de serviço e clique em Adicionar.

Adicione o perfil M2M ao seu projeto dbt

  1. Defina o ID do aplicativo (cliente) e o segredo do cliente copiados anteriormente como variáveis de ambiente. O Databricks não recomenda o armazenamento direto de profiles.yml informações confidenciais, como segredos.

    ~ export DATABRICKS_CLIENT_ID=<client-id>
    ~ export DATABRICKS_CLIENT_SECRET=<client-secret>
    
  2. Adicione o perfil M2M ao profiles.yml arquivo em seu projeto dbt.

    A seguir está um arquivo de exemplo profiles.yml com o perfil azure-oauth-m2m M2M especificado. Especificar azure-oauth-m2m para target define o perfil M2M como o perfil de execução padrão usado pelo dbt.

    databricks_demo:
      outputs:
        ...
        azure-oauth-m2m:
          catalog: uc_demos
          host: "adb-xxx.azuredatabricks.net"
          http_path: "/sql/1.0/warehouses/9196548d010cf14d"
          schema: databricks_demo
          threads: 1
          type: databricks
          auth_type: oauth
          client_id: "{{ env_var('DATABRICKS_CLIENT_ID') }}"
          client_secret: "{{ env_var('DATABRICKS_CLIENT_SECRET') }}"
    target: azure-oauth-m2m
    

Autorizar sua entidade de serviço a acessar um SQL warehouse

  1. Na barra lateral, clique em SQL Warehouses, clique no seu SQL warehouse e, em seguida, clique em Permissões.
  2. Ao lado da entidade de serviço criada anteriormente neste artigo, selecione PODE USAR no menu suspenso.

Verificar a configuração do aplicativo OAuth

Execute o comando para verificar se seu dbt debug aplicativo OAuth foi configurado corretamente. Por exemplo:

dbt debug --target azure-oauth-m2m

A seguir está um exemplo de saída de uma execução bem-sucedida dbt debug :

  ...
  Configuration:
    profiles.yml file [OK found and valid]
    dbt_project.yml file [OK found and valid]

  Required dependencies:
    - git [OK found]

  Connection:
    ...
    Connection test: OK connection ok

Configurar autenticação de usuário para máquina (U2M) para dbt Core

Esta seção descreve como configurar a autenticação de usuário para máquina com o Azure Databricks e dbt Core. O fluxo de trabalho U2M do OAuth permite o acesso aos sistemas em nome de um usuário, como o cliente dbt, obtendo com segurança um token OAuth por meio de um pop-up do navegador do Azure AD. O DBT usa esse token para se conectar à API SQL do Databricks, simplificando a autenticação e a autorização.

Criar um registo de aplicação do Azure

  1. Use o portal do Azure para entrar no locatário do Azure para sua conta do Azure Databricks, em https://portal.azure.com/<tenant-id>.
  2. Clique em Registos de aplicações. Se os registos de aplicações não estiverem visíveis, clique em Mais serviços e utilize a caixa de texto Serviços de filtragem para procurar registos de aplicações.
  3. Clique em Novo registo.
  4. Insira um Nome para o aplicativo.
  5. Para Redirecionar URI, selecione Cliente público/nativo (mobile & desktop) no menu suspenso e digite http://localhost:8020.
  6. Clique em Registar.
  7. Copie o ID do aplicativo (cliente) e o ID do locatário. Você precisará desses valores mais tarde.

Adicione o perfil U2M ao seu projeto dbt

Adicione o perfil U2M ao profiles.yml arquivo em seu projeto dbt.

A seguir está um arquivo de exemplo profiles.yml com o perfil azure-oauth-u2m U2M especificado. Especificar azure-oauth-u2m para target define o perfil U2M como o perfil de execução padrão usado pelo dbt.

databricks_demo:
outputs:
  azure-oauth-u2m:
    catalog: uc_demos
    host: "adb-xxx.azuredatabricks.net"
    http_path: "/sql/1.0/warehouses/9196548d010cf14d"
    schema: databricks_demo
    threads: 1
    type: databricks
    auth_type: oauth
    client_id: "9729e77e-ba94-4d53-8cfb-bb609f43f881"
target: azure-oauth-u2m

Verificar a configuração do aplicativo OAuth

  1. Execute o comando para verificar se seu dbt debug aplicativo OAuth foi configurado corretamente. Por exemplo:

    dbt debug --target azure-oauth-u2m
    

    A página Permissões solicitadas é aberta no navegador.

  2. Clique em Aceitar.

A seguir está um exemplo de saída de uma execução bem-sucedida dbt debug :

...
Configuration:
  profiles.yml file [OK found and valid]
  dbt_project.yml file [OK found and valid]

Required dependencies:
  - git [OK found]

Connection:
  ...
  Connection test: OK connection ok

Recursos adicionais

Para criar um novo projeto dbt Core e conectar-se ao Azure Databricks usando a autenticação SSO, consulte Conectar-se ao dbt Core.