Autenticar o acesso aos recursos do Azure Databricks

Para acessar um recurso do Azure Databricks com a CLI do Databricks ou APIs REST, os clientes devem se autenticar usando uma conta do Azure Databricks com a autorização necessária para acessar o recurso. Para executar com segurança um comando da CLI do Databricks ou chamar uma solicitação de API do Databricks que exija acesso autorizado a uma conta ou espaço de trabalho, você deve fornecer um token de acesso com base em credenciais de conta válidas do Azure Databricks. Este artigo aborda as opções de autenticação para fornecer essas credenciais e autorizar o acesso a uma área de trabalho ou conta do Azure Databricks.

A tabela a seguir mostra os métodos de autenticação disponíveis para sua conta do Azure Databricks.

Métodos de autenticação do Azure Databricks

Como as ferramentas e SDKs do Azure Databricks funcionam com um ou mais métodos de autenticação do Azure Databricks com suporte, você pode selecionar o melhor método de autenticação para seu caso de uso. Para obter detalhes, consulte a ferramenta ou a documentação do SDK em Ferramentas de desenvolvedor.

Método Description Caso de utilização
OAuth para entidades de serviço (OAuth M2M) Tokens OAuth de curta duração para entidades de serviço. Cenários de autenticação autônoma, como fluxos de trabalho totalmente automatizados e de CI/CD.
OAuth para usuários (OAuth U2M) Tokens OAuth de curta duração para usuários. Cenários de autenticação assistida, onde você usa seu navegador da Web para autenticar com o Azure Databricks em tempo real, quando solicitado.
Tokens de acesso pessoal (PAT) Tokens de curta ou longa duração para usuários ou entidades de serviço. Cenários em que sua ferramenta de destino não suporta OAuth.
Autenticação de identidades gerenciadas do Azure Tokens de ID do Microsoft Entra para identidades gerenciadas do Azure. Use apenas com recursos do Azure que dão suporte a identidades gerenciadas, como máquinas virtuais do Azure.
Autenticação ddo principal de serviço do Microsoft Entra ID Tokens de ID do Microsoft Entra para entidades de serviço do Microsoft Entra ID. Use apenas com recursos do Azure que dão suporte a tokens de ID do Microsoft Entra e não oferecem suporte a identidades gerenciadas, como o Azure DevOps.
Autenticação da CLI do Azure Tokens de ID do Microsoft Entra para usuários ou entidades de serviço do Microsoft Entra ID. Use para autenticar o acesso aos recursos do Azure e ao Azure Databricks usando a CLI do Azure.
Autenticação de usuário do Microsoft Entra ID Tokens de ID do Microsoft Entra para usuários. Use somente com recursos do Azure que oferecem suporte apenas a tokens de ID do Microsoft Entra. O Databricks não recomenda que você crie tokens de ID do Microsoft Entra para usuários do Azure Databricks manualmente.

Que abordagem de autenticação devo escolher?

Você tem duas opções para autenticar um comando da CLI do Databricks ou uma chamada de API para acessar seus recursos do Azure Databricks:

  • Use uma conta de usuário do Azure Databricks (chamada de autenticação "usuário para máquina" ou U2M). Escolha isso somente quando estiver executando um comando da CLI do Azure Databricks do seu ambiente de cliente local ou chamando uma solicitação de API do Azure Databricks do código que você possui e executar exclusivamente.
  • Use uma entidade de serviço do Azure Databricks (chamada autenticação "máquina a máquina" ou M2M). Escolha esta opção se outras pessoas estiverem executando seu código (especialmente no caso de um aplicativo) ou se você estiver criando automação que chamará comandos da CLI do Azure Databricks ou solicitações de API.
  1. Se você estiver usando o Azure Databricks, também poderá usar uma entidade de serviço do MS Entra para autenticar o acesso à sua conta ou espaço de trabalho do Azure Databricks. No entanto, a Databricks recomenda que você use uma entidade de serviço Databricks com nossa autenticação OAuth fornecida sobre a autenticação principal de serviço MS Entra. Isso ocorre porque a autenticação do Databricks usa tokens de acesso OAuth que são mais robustos ao autenticar apenas com o Azure Databricks.

Para obter mais detalhes sobre como usar uma entidade de serviço do MS Entra para acessar recursos do Databricks, consulte Autenticação da entidade de serviço do MS Entra.

Você também deve ter um token de acesso vinculado à conta que usará para chamar a API do Databricks. Esse token pode ser um token de acesso OAuth 2.0 ou um token de acesso pessoal (PAT). No entanto, o Azure Databricks recomenda vivamente que utilize OAuth sobre PATs para autorização, uma vez que os tokens OAuth são atualizados automaticamente por predefinição e não requerem a gestão direta do token de acesso, melhorando a sua segurança contra sequestro de tokens e acesso indesejado. Como o OAuth cria e gerencia o token de acesso para você, você fornece uma URL de ponto de extremidade de token OAuth, uma ID de cliente e um segredo gerado a partir do espaço de trabalho do Azure Databricks em vez de fornecer diretamente uma cadeia de caracteres de token. Os PATs expõem o risco de tokens de longa duração fornecerem oportunidades de saída se eles não forem regularmente auditados e rodados ou revogados, ou se as cadeias de caracteres e senhas de token não forem gerenciadas com segurança para seu ambiente de desenvolvimento.

Como posso usar o OAuth para autenticar com o Azure Databricks?

O Azure Databricks fornece autenticação de cliente unificada para ajudá-lo com a autenticação usando um conjunto padrão de variáveis de ambiente que você pode definir para valores de credenciais específicos. Isso ajuda você a trabalhar com mais facilidade e segurança, já que essas variáveis de ambiente são específicas para o ambiente que executará os comandos da CLI do Azure Databricks ou chamará as APIs do Azure Databricks.

  • Para autenticação de conta de usuário (usuário para máquina), o Azure Databricks OAuth é tratado para você com a autenticação unificada do cliente Databricks, desde que as ferramentas e SDKs implementem seu padrão. Caso contrário, você pode gerar manualmente um verificador de código OAuth e um par de desafios para usar diretamente em seus comandos e solicitações de API da CLI do Azure Databricks. Consulte Etapa 1: gerar um verificador de código OAuth e um par de desafio de código.
  • Para autenticação de entidade de serviço (máquina a máquina), o Azure Databricks OAuth exige que o chamador forneça credenciais de cliente juntamente com uma URL de ponto de extremidade de token onde a solicitação pode ser autorizada. (Isso é tratado para você se você usar ferramentas e SDKs do Azure Databricks que dão suporte à autenticação de cliente unificada do Databricks.) As credenciais incluem um ID de cliente exclusivo e segredo do cliente. O cliente, que é a entidade de serviço Databricks que executará seu código, deve ser atribuído aos espaços de trabalho Databricks. Depois de atribuir a entidade de serviço aos espaços de trabalho que ela acessará, você receberá uma ID do cliente e um segredo do cliente que será definido com variáveis de ambiente específicas.

Estas variáveis de ambiente são:

  • DATABRICKS_HOST: Esta variável de ambiente é definida como a URL do console da conta do Azure Databricks (http://accounts.cloud.databricks.com) ou da URL do espaço de trabalho do Azure Databricks (https://{workspace-id}.cloud.databricks.com). Escolha um tipo de URL de host com base no tipo de operações que você executará em seu código. Especificamente, se você estiver usando comandos da CLI no nível da conta do Azure Databricks ou solicitações de API REST, defina essa variável para a URL da sua conta do Azure Databricks. Se você estiver usando comandos da CLI no nível do espaço de trabalho do Azure Databricks ou solicitações de API REST, use a URL do espaço de trabalho do Azure Databricks.
  • DATABRICKS_ACCOUNT_ID: Usado para operações de conta do Azure Databricks. Esta é a sua ID de conta do Azure Databricks. Para obtê-lo, consulte Localizar o ID da sua conta.
  • DATABRICKS_CLIENT_ID: (M2M OAuth apenas) O ID do cliente que lhe foi atribuído ao criar a entidade de serviço.
  • DATABRICKS_CLIENT_SECRET: (M2M OAuth apenas) O segredo do cliente que você gerou ao criar sua entidade de serviço.

Você pode defini-los diretamente ou através do uso de um perfil de configuração Databricks (.databrickscfg) em sua máquina cliente.

Para usar um token de acesso OAuth, seu espaço de trabalho ou administrador de conta do Azure Databricks deve ter concedido à sua conta de usuário ou entidade de serviço o CAN USE privilégio para os recursos de conta e espaço de trabalho que seu código acessará.

Para obter mais detalhes sobre como configurar a autorização OAuth para seu cliente e para revisar as opções de autorização específicas do provedor de nuvem, consulte Autenticação de cliente unificada.

Autenticação para serviços e ferramentas de terceiros

Se você estiver escrevendo código que acessa serviços, ferramentas ou SDKs de terceiros, deverá usar os mecanismos de autenticação e autorização fornecidos pelo terceiro. No entanto, se você precisar conceder a uma ferramenta, SDK ou acesso de serviço de terceiros à sua conta do Azure Databricks ou recursos do espaço de trabalho, o Databricks fornecerá o seguinte suporte:

Perfis de configuração do Azure Databricks

Um perfil de configuração do Azure Databricks contém definições e outras informações que o Azure Databricks precisa autenticar. Os perfis de configuração do Azure Databricks são armazenados em arquivos de cliente local para suas ferramentas, SDKs, scripts e aplicativos usarem. O arquivo de perfil de configuração padrão é chamado .databrickscfg. Para obter mais informações, consulte Perfis de configuração do Azure Databricks.