Compartilhar via


Configurar o login do Azure Databricks a partir do dbt Core com o Microsoft Entra ID

Importante

Esse recurso está em uma versão prévia.

Esta página descreve como configurar o acesso ao Azure Databricks a partir do dbt Core com a ID do Microsoft Entra. Depois que você concluir essa configuração única como administrador de conta do Azure Databricks, os usuários poderão conectar o Azure Databricks ao dbt Core usando o SSO (logon único).

Além de usar o Microsoft Entra ID, você pode usar o OAuth M2M do Databricks para se integrar ao dbt Core. Confira 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 local do dbt Core
  • Obter o Nome do Host do Servidor e o Caminho HTTP para um SQL do Databricks no seu workspace do Azure Databricks
  • Ser um administrador de conta do Azure Databricks
  • Tenha permissão para criar um registro de aplicativo do Azure no locatário do Azure na sua conta do Azure Databricks.

Configurar a autenticação computador para computador (M2M) para o dbt Core

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

Criar um registro de aplicativo 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 Registros do aplicativo. Se Registros de aplicativo não estiver visível, clique em Mais serviços e use a caixa de texto Filtrar serviços para pesquisar Registros de aplicativo.
  3. Clique em Novo registro.
  4. Insira um Nome para o aplicativo.
  5. Para a URI de Redirecionamento, selecione Cliente público/nativo (móvel desktop) no menu suspenso e insirahttp://localhost:8020.
  6. Clique em Registrar.
  7. Copie a ID do cliente do aplicativo . Você precisará desse valor mais tarde.

Gerar um segredo do cliente para o registro do seu Aplicativo Azure AD

  1. No portal do Microsoft Azure, selecione o registro do aplicativo criado na etapa anterior.
  2. Clique em Certificados e segredos e depois em Novo segredo do cliente.
  3. Insira uma descrição e clique em Adicionar.
  4. Copiar o valor do segredo. Você precisará desse valor mais tarde e só poderá acessá-lo após a criação do segredo.

Adicionar a entidade de serviço do Microsoft Entra ID ao seu workspace

  1. Em seu workspace do Azure Databricks, clique no seu nome de usuário no canto superior direito e, em seguida, clique em Configuraçõ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 clique ID do cliente.
  5. Em ApplicationId, insira a ID do Aplicativo (cliente) que você copiou anteriormente.
  6. Em Nome de 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 uma ID de Aplicativo (cliente) e o segredo do cliente que você copiou anteriormente como variáveis de ambiente. O Databricks não recomenda armazenar diretamente informações confidenciais, como segredos, em profiles.yml.

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

    A seguir, um exemplo de arquivo profiles.yml com o perfil M2M azure-oauth-m2m especificado. Especificar azure-oauth-m2m para target define o perfil M2M como o perfil de execução padrão utilizado 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 a 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 Permissions.
  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 dbt debug para verificar se seu aplicativo OAuth foi configurado corretamente. Por exemplo:

dbt debug --target azure-oauth-m2m

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

  ...
  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 a autenticação de usuário para computador (U2M) para o dbt Core

Esta seção descreve como configurar a autenticação de usuário para computador com o Azure Databricks e o dbt Core. O fluxo de trabalho U2M do OAuth permite que os sistemas acessem em nome de um usuário, como é o caso do cliente dbt, ao obter de forma segura um token OAuth por meio de uma janela pop-up do navegador do Azure AD. O dbt usa esse token para conectar-se à API do Databricks SQL, simplificando a autenticação e a autorização.

Criar um registro de aplicativo 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 Registros do aplicativo. Se Registros de aplicativo não estiver visível, clique em Mais serviços e use a caixa de texto Filtrar serviços para pesquisar Registros de aplicativo.
  3. Clique em Novo registro.
  4. Insira um Nome para o aplicativo.
  5. Para a URI de Redirecionamento, selecione Cliente público/nativo (móvel desktop) no menu suspenso e insirahttp://localhost:8020.
  6. Clique em Registrar.
  7. Copiar a ID do Aplicativo (cliente) e a ID de Locatário. Você precisará desses valores mais tarde.

Adicione o perfil U2M ao seu projeto dbt

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

A seguir, um exemplo de arquivo profiles.yml com o perfil U2M azure-oauth-u2m especificado. Especificar azure-oauth-u2m para target define o perfil U2M como o perfil de execução padrão utilizado 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 dbt debug para verificar se seu aplicativo OAuth foi configurado corretamente. Por exemplo:

    dbt debug --target azure-oauth-u2m
    

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

  2. Clique em Aceitar.

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

...
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 do dbt Core e conectar-se ao Azure Databricks usando a autenticação de SSO, confira Conectar-se ao dbt Core.