Pular para o conteúdo principal

Configurações de autenticação para o driver JDBC do Databricks

O driver JDBC do Databricks suporta vários métodos de autenticação, dependendo do seu 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 do driver JDBC do Databricks, utilize um dos seguintes métodos:

Transmissão de tokensOAuth 2.0

O driver JDBC aceita tokens OAuth na propriedade Auth_AccessToken . Você pode passar tokens OAuth do Databricks diretamente ou tokens JSON Web (JWT) de um provedor de identidade externo. Se você fornecer tokens de um IdP externo, Databricks os trocará automaticamente por tokens Databricks usando a federação de tokens.

Nos exemplos a seguir, substitua os seguintes marcadores de posição:

As propriedades necessárias são:

  • AuthMech definido como 11 (autenticação OAuth 2.0)
  • Auth_Flow definido como 0 (modo de passagem de tokens)
  • Auth_AccessToken configurado para tokens OAuth Databricks ou um JWT de um IdP externo.

Consulte Propriedades de autenticação.

Para obter um URL de conexão JDBC:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>

Em código Java:

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 tokens com um provedor de identidade externo

Se você se autenticar com tokens de um provedor de identidade externo, como Okta, Microsoft Entra ID, Keycloak ou qualquer IdP compatível com OIDC, Databricks realizará a troca de tokens automaticamente. A configuração JDBC é a mesma que a de passagem de tokens. Passe os tokens IdP em Auth_AccessToken e o driver cuida do resto.

Antes de usar a federação de tokens, você deve:

  1. Crie uma política de federação em sua account Databricks que confie no IdP externo. Uma política de federação especifica o URL do emissor, os valores esperados do público-alvo e a declaração JWT usada para mapear um usuário do Databricks. Consulte Autenticar o acesso ao Databricks usando a federação de tokens OAuth.
  2. Verifique se existe um usuário correspondente no Databricks. O email do usuário ou outro identificador deve corresponder ao valor subject_claim no JWT.
  3. Verifique se o endpoint de descoberta OIDC do IdP está publicamente acessível para que Databricks possa obter a chave de assinatura e verificar os tokens.

Autenticação OAuth de usuário para máquina (U2M)

A autenticação OAuth U2M permite que você faça login no Databricks através de um navegador. O motorista abre uma janela do navegador, você se autentica e o motorista recebe um token OAuth . O driver usa o ID do cliente OAuth integrado databricks-sql-jdbc.

Este tipo de autenticação não possui pré-requisitos. Os tokens têm uma duração default de uma hora e refresh automaticamente quando expiram.

nota

OAuth U2M funciona apenas com aplicativos executados localmente. Não funciona com aplicações baseadas em servidor ou cloud .

Nos exemplos a seguir, substitua os seguintes marcadores de posição:

As propriedades necessárias são:

  • AuthMech definido como 11 (autenticação OAuth 2.0)
  • Auth_Flow definido como 2 (modo baseado em navegador U2M)
  • TokenCachePassPhrase Defina como a senha usada para criptografar suas credenciais OAuth U2M armazenadas em cache. Isso impede autenticações repetidas baseadas em navegador. Para desativar o cache de tokens, defina EnableTokenCache como 0.

Consulte 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

Em código Java:

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 OAuth de máquina para máquina (M2M)

O driver JDBC oferece suporte à autenticação OAuth máquina a máquina (M2M) usando uma entidade de serviço Databricks, também chamada de autenticação de credenciais de cliente OAuth 2.0. Consulte Autorizar o acesso da entidade de serviço ao Databricks com OAuth.

Para configurar a autenticação M2M:

  1. Crie uma entidade de serviço Databricks em seu workspace Databricks . Consulte Autorizar o acesso da entidade de serviço ao Databricks com OAuth.
  2. Crie um segredo OAuth para a entidade de serviço. Anote o UUID ou ID do aplicativo e o valor secreto .
  3. Conceda à entidade de serviço acesso ao seu cluster ou armazém. Consulte permissões de computação ou gerencie um SQL warehouse.

Nos exemplos a seguir, substitua os seguintes marcadores de posição:

As propriedades necessárias são:

  • AuthMech definido como 11 (autenticação OAuth 2.0)
  • Auth_Flow definido como 1 (modo de credenciais do cliente M2M)
  • OAuth2ClientID definido com o valor UUID ou ID do aplicativo da entidade de serviço.
  • OAuth2Secret definido para o valor do Segredo OAuth da entidade de serviço

Consulte Propriedades de autenticação.

Em uma URL de conexão JDBC:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=1;OAuth2ClientId=<service-principal-application-id>;OAuth2Secret=<service-principal-oauth-secret>

Em código Java:

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", "1");
p.put("OAuth2ClientId", "<service-principal-application-id>");
p.put("OAuth2Secret", "<service-principal-oauth-secret>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...

access tokenpessoalDatabricks

nota

access tokens pessoal são os mais indicados para testar diferentes cenários. A Databricks recomenda tipos de autenticação mais seguros para cenários de produção.

Para criar um access token pessoal Databricks , siga os passos descritos em Criar access tokens pessoal para usuários workspace.

Nos exemplos a seguir, substitua os seguintes marcadores de posição:

As propriedades necessárias são:

  • AuthMech definido como 3 (autenticação por tokens)
  • UID definido para as strings literais token
  • PWD ou password definido para o valor do seu access token pessoal Databricks

Consulte 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>

Em código Java:

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);
// ...