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
- 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>
. - 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.
- Clique em Novo registo.
- Insira um Nome para o aplicativo.
- Para Redirecionar URI, selecione Cliente público/nativo (mobile & desktop) no menu suspenso e digite
http://localhost:8020
. - Clique em Registar.
- 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
- No portal do Azure, selecione o registro de aplicativo que você criou na etapa anterior.
- Clique em Certificados e segredos e, em seguida, clique em Novo segredo do cliente.
- Introduza uma descrição e, em seguida, clique em Adicionar.
- 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
- 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.
- Clique na guia Identidade e acesso .
- Ao lado de Entidades de serviço, clique em Gerenciar.
- Clique em Adicionar entidade de serviço e, em seguida, clique em ID do cliente.
- Para ApplicationId, insira o ID do aplicativo (cliente) copiado anteriormente.
- 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
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>
Adicione o perfil M2M ao
profiles.yml
arquivo em seu projeto dbt.A seguir está um arquivo de exemplo
profiles.yml
com o perfilazure-oauth-m2m
M2M especificado. Especificarazure-oauth-m2m
paratarget
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
- Na barra lateral, clique em SQL Warehouses, clique no seu SQL warehouse e, em seguida, clique em Permissões.
- 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
- 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>
. - 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.
- Clique em Novo registo.
- Insira um Nome para o aplicativo.
- Para Redirecionar URI, selecione Cliente público/nativo (mobile & desktop) no menu suspenso e digite
http://localhost:8020
. - Clique em Registar.
- 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
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.
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.