Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Driver JDBC do Databricks dá suporte a vários métodos de autenticação, dependendo do caso de uso. Esta página descreve como configurar cada método e lista as propriedades de conexão necessárias.
Para configurar a autenticação para o Driver JDBC do Databricks, use um dos seguintes métodos:
- Passagem de token OAuth 2.0 (incluindo federação de token com provedores de identidade externos)
- Autenticação U2M (usuário para computador) do OAuth
- Autenticação de máquina a máquina (M2M) do OAuth
- Token de acesso pessoal do Databricks
Passagem de token OAuth 2.0
O driver JDBC aceita tokens OAuth na propriedade Auth_AccessToken. Você pode passar um token OAuth do Azure Databricks diretamente ou um JWT (Token Web JSON) de um provedor de identidade externo. Se você passar um token IdP externo, o Azure Databricks o trocará automaticamente por um token do Azure Databricks usando a federação de token.
Nos exemplos abaixo, substitua as seguintes variáveis:
-
<oauth-token>com um token OAuth 2.0 do Azure Databricks ou um JWT IdP externo. - Para obter os valores para
<server-hostname>e<http-path>, consulte Configurar uma conexão com o Databricks usando o Driver JDBC do Databricks.
As propriedades necessárias são:
-
AuthMechdefinido como11(autenticação OAuth 2.0) -
Auth_Flowdefinido como0(modo de passagem de token) -
Auth_AccessTokendefinido como um token OAuth do Azure Databricks ou um JWT IdP externo
Consulte as propriedades de Autenticação.
Para uma URL de conexão JDBC:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>
No código Java:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "0");
p.put("Auth_AccessToken", "<oauth-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
Federação de token com um provedor de identidade externo
Se você autenticar com um token de um provedor de identidade externo, como Okta, ID do Microsoft Entra, Keycloak ou qualquer IdP compatível com OIDC, o Azure Databricks executará a troca de tokens automaticamente. A configuração JDBC é a mesma que a passagem de token. Passe o token IdP em Auth_AccessToken e o driver gerencia o restante.
Antes de usar a federação de token, você deve:
- Crie uma política de federação em sua conta do Azure Databricks que confie no IdP externo. Uma política de federação especifica a URL do emissor, os valores de audiência esperados e a declaração JWT usada para mapear para um usuário do Azure Databricks. Consulte Autenticar o acesso ao Azure Databricks usando a federação de token OAuth.
- Verifique se existe um usuário correspondente do Azure Databricks. O email do usuário ou outro identificador deve corresponder ao
subject_claimvalor no JWT. - Verifique se o endpoint de descoberta do OIDC do IdP está acessível publicamente para que o Azure Databricks possa obter as chaves de assinatura para verificar o token.
Autenticação U2M (usuário para computador) do OAuth
A autenticação OAuth U2M permite que você entre no Azure Databricks por meio de um navegador. O driver abre uma janela do navegador, você se autentica e o driver recebe um token OAuth. O driver usa o ID de cliente OAuth integrado databricks-sql-jdbc.
Esse tipo de autenticação não tem pré-requisitos. Os tokens têm um tempo de vida padrão de uma hora e são atualizados automaticamente quando expiram.
Observação
O OAuth U2M funciona apenas com aplicativos executados localmente. Ele não funciona com aplicativos baseados em servidor ou na nuvem.
Nos exemplos a seguir, substitua os seguintes espaços reservados:
-
<passphrase>com uma frase secreta de sua escolha. O driver usa essa chave para atualizar a criptografia de token. - Para obter os valores para
<server-hostname>e<http-path>, consulte Configurar uma conexão com o Databricks usando o Driver JDBC do Databricks.
As propriedades necessárias são:
-
AuthMechdefinido como11(autenticação OAuth 2.0) -
Auth_Flowdefinido como2(modo baseado em navegador U2M) -
TokenCachePassPhrasedefinido como a frase secreta usada para criptografar suas credenciais OAuth U2M armazenadas em cache. Isso impede autenticações repetidas baseadas em navegador. Para recusar o cache de token, definaEnableTokenCachecomo0.
Consulte as propriedades de Autenticação.
Em uma URL de conexão JDBC:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0
No código Java:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "2");
p.put("TokenCachePassPhrase", "<passphrase>");
p.put("EnableTokenCache", "0");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
Autenticação M2M (de computador para computador) do OAuth
O driver JDBC dá suporte à autenticação M2M (máquina a máquina) do OAuth usando uma das principais ou identidade a seguir. Consulte como autorizar o acesso de uma entidade de serviço ao Azure Databricks com OAuth.
- Um principal de serviço do Databricks
- Uma entidade de serviço gerenciada pelo Azure
- Uma identidade gerenciada do Azure (atribuída pelo sistema ou atribuída pelo usuário)
M2M usando entidade de serviço gerenciada pelo Databricks
Para configurar a autenticação usando uma entidade de serviço gerenciada pelo Databricks:
Crie uma entidade de serviço gerenciada pelo Databricks e atribua-a a contas e workspaces do Databricks.
Crie um segredo OAuth do Databricks para a entidade de serviço. Consulte Gerar manualmente tokens de acesso OAuth M2M.
Conceda permissões de acesso a clusters e sql warehouses.
Adicione as seguintes propriedades à URL de conexão JDBC existente ou objeto
java.util.Properties:-
AuthMechdefinido como11(autenticação OAuth 2.0) -
Auth_Flowdefinido como1(modo de credenciais do cliente M2M) -
OAuth2ClientIDdefinido como o valor da ID do aplicativo (cliente) da entidade de serviço -
OAuth2Secretdefinido como o segredo do Databricks OAuth da entidade de serviço
Consulte as propriedades de Autenticação.
-
M2M usando a entidade de serviço gerenciada do Azure
Para configurar a autenticação usando um principal de serviço gerenciado do Azure:
Crie um segredo OAuth do Databricks para a entidade de serviço. Consulte Gerar manualmente tokens de acesso OAuth M2M.
Conceda permissões de acesso a clusters e sql warehouses.
Adicione as seguintes propriedades à URL de conexão JDBC existente ou objeto
java.util.Properties:-
AuthMechdefinido como11(autenticação OAuth 2.0) -
Auth_Flowdefinido como1(modo de credenciais do cliente M2M) -
OAuth2ClientIDdefinido para o valor de ID do Aplicativo (cliente) do principal de serviço -
AzureTenantIDdefinido como a ID de locatário do Azure encontrada no Azure Active Directory -
OAuth2Secretdefinido como o segredo do Databricks OAuth da entidade de serviço
Consulte as propriedades de Autenticação.
-
M2M usando identidades gerenciadas do Azure
Para configurar a autenticação usando identidades gerenciadas do Azure:
Configure identidades gerenciadas para seus recursos do Azure.
Conceda permissões de acesso a clusters e sql warehouses.
Adicione as seguintes propriedades à URL de conexão JDBC existente ou objeto
java.util.Properties:-
AuthMechdefinido como11(autenticação OAuth 2.0) -
Auth_Flowdefinido como3(modo de identidade gerenciada) -
OAuth2ClientIDdefinido como a ID do cliente da identidade gerenciada. Isso é necessário somente se você estiver usando uma identidade gerenciada atribuída pelo usuário. -
Azure_workspace_resource_iddefinido como a ID de Recurso do Azure do workspace do Databricks
Consulte as propriedades de Autenticação.
-
Token de acesso pessoal do Databricks
Observação
Tokens de acesso pessoal são melhores para cenários de teste. O Azure Databricks recomenda tipos de autenticação mais seguros para cenários de produção.
Para criar um token de acesso pessoal do Databricks, siga as etapas em Criar tokens de acesso pessoal para usuários do workspace.
Nos exemplos a seguir, substitua os seguintes espaços reservados:
-
<personal-access-token>com o token de acesso pessoal do Databricks para o usuário do workspace. - Para obter os valores para
<server-hostname>e<http-path>, consulte Configurar uma conexão com o Databricks usando o Driver JDBC do Databricks.
As propriedades necessárias são:
-
AuthMechdefinido como3(autenticação de token) -
UIDdefinido como a cadeia de caracteres literaltoken -
PWDoupassworddefinido como o valor do token de acesso pessoal do Databricks
Consulte as propriedades de Autenticação.
Em uma URL de conexão JDBC:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=3;UID=token;PWD=<personal-access-token>
No código Java:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "3");
p.put("UID", "token");
p.put("PWD", "<personal-access-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...