Pular para o conteúdo principal

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

nota

Este artigo se aplica ao driver Databricks JDBC , abaixo da versão 3. Para o driver JDBC Databricks mais recente, versão 3 e acima, consulte Driver JDBC Databricks.

Este artigo descreve como definir as configurações de autenticação do Databricks para o driverDatabricks JDBC.

O driver JDBC da Databricks é compatível com os seguintes tipos de autenticação da Databricks:

Databricks tokens de acesso pessoal

nota

Os tokens de acesso pessoal são fornecidos para cenários de teste. 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 em Criar access tokens pessoal para usuários workspace.

Para configurar a autenticação de um URL de conexão JDBC com propriedades de configuração geral incorporadas e propriedades de credenciais confidenciais usando seu PAT:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=3;UID=token;PWD=<personal-access-token>

Para código Java com propriedades de configuração geral e propriedades de credenciais confidenciais definidas fora do URL de conexão JDBC:

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

OAuth 2.0 tokens

JDBC O driver 2.6.36 e o acima suportam tokens OAuth 2.0 para um usuário ou entidade de serviço Databricks. Isso também é conhecido como OAuth autenticação de passagem de tokens 2.0.

Para criar tokens OAuth 2.0 para autenticação de passagem de tokens, faça o seguinte:

  • Para um usuário, o senhor pode usar o comando Databricks CLI para gerar os tokens OAuth 2.0 iniciando o processo OAuth U2M e, em seguida, obter os tokens OAuth 2.0 gerados executando o comando databricks auth token. Consulte a autenticação OAuth de usuário para máquina (U2M). OAuth 2.0 tokens têm uma vida útil de default de 1 hora. Para gerar novos tokens OAuth 2.0, repita esse processo.
  • Para uma entidade de serviço, consulte Gerar manualmente tokens de acesso OAuth M2M. Anote o valor do OAuth access_token da entidade de serviço. OAuth 2.0 tokens tem uma vida útil de default de 1 hora. Para gerar novos tokens OAuth 2.0, repita esse processo.

Para autenticar usando a autenticação de passagem de tokens OAuth 2.0, defina a seguinte configuração.

Para um URL de conexão JDBC com propriedades de configuração geral incorporadas e propriedades de credenciais confidenciais:

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

Para código Java com propriedades de configuração geral e propriedades de credenciais confidenciais definidas fora do URL de conexão JDBC:

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

Para obter mais informações, consulte a seção Token Pass-through no guia do driverDatabricks JDBC.

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

JDBC O driver 2.6.36 e o acima oferecem suporte à autenticação OAuth user-to-machine (U2M) para um usuário Databricks. Isso também é conhecido como autenticação baseada em navegador OAuth 2.0.

nota

JDBC A versão 2.6.40.1071 resolve o problema de versões anteriores em que não havia suporte para a conexão usando M2M para o espaço de trabalho de link privado.

A autenticação baseada em navegador OAuth U2M e OAuth 2.0 não tem pré-requisitos. OAuth 2.0 tokens têm uma vida útil de default de uma hora. OAuth A autenticação baseada em navegador U2M ou OAuth 2.0 deve expirar automaticamente refresh OAuth 2.0 tokens para o senhor.

nota

OAuth O U2M, ou a autenticação baseada em navegador OAuth 2.0, funciona somente com aplicativos executados localmente. Ele não funciona com aplicativos baseados em servidor ou em nuvem.

Para autenticar usando a autenticação OAuth user-to-machine (U2M) ou a autenticação baseada em navegador OAuth 2.0, defina a seguinte configuração.

Para um URL de conexão JDBC com propriedades de configuração geral incorporadas e propriedades de credenciais confidenciais:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0

Para código Java com propriedades de configuração geral e propriedades de credenciais confidenciais definidas fora do URL de conexão JDBC:

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

Para obter mais informações, consulte a seção Using Browser Based Authentication no guia do driverDatabricks JDBC.

Autenticação OAuth máquina a máquina (M2M)

JDBC O driver 2.6.36 e acima suporta a autenticação máquina a máquina (M2M) OAuth para uma entidade de serviço Databricks. Isso também é conhecido como autenticação de credenciais de cliente OAuth 2.0.

nota

JDBC A versão 2.6.40.1071 resolve o problema de versões anteriores em que não havia suporte para a conexão usando M2M para o espaço de trabalho de link privado.

Para configurar a autenticação de credenciais de cliente OAuth M2M ou OAuth 2.0, faça o seguinte:

  1. Crie uma Databricks entidade de serviço em seu Databricks workspace e crie um OAuth secret para essa entidade de serviço.

    Para criar a entidade de serviço e seu segredo OAuth, consulte Autorizar o acesso da entidade de serviço ao Databricks com OAuth. Anote o valor do UUID da entidade de serviço ou do ID do aplicativo e o valor do segredo do OAuth da entidade de serviço.

  2. Conceda à entidade de serviço acesso ao seu clustering ou depósito. Consulte computar permissões ou gerenciar SQL warehouse a.

Para autenticar usando a autenticação de credenciais de cliente OAuth máquina a máquina (M2M) ou OAuth 2.0, defina a seguinte configuração.

Para um URL de conexão JDBC com propriedades de configuração geral incorporadas e propriedades de credenciais confidenciais:

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

Para código Java com propriedades de configuração geral e propriedades de credenciais confidenciais definidas fora do URL de conexão JDBC:

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);
// ...
  • No URL anterior ou no código Java, substitua os seguintes espaços reservados:
    • Substitua <service-principal-application-id> pelo valor de UUID/ID do aplicativo da entidade de serviço.
    • Substitua <service-principal-oauth-secret> pelo valor do segredo OAuth da entidade de serviço.
    • Para obter os valores de <server-hostname> e <http-path>, consulte as configurações de computação do driver JDBC Databricks (Simba).

Para obter mais informações, consulte a seção Using M2M Based Authentication no guia do driverDatabricks JDBC.