Configurações de autenticação para o driver JDBC do Databricks (Simba)
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
- OAuth 2.0 tokens
- Autenticação OAuth user-to-machine (U2M)
- Autenticação OAuth machine-to-machine (M2M)
Databricks tokens de acesso pessoal
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:
// ...
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);
// ...
- No URL anterior ou no código Java, substitua
<personal-access-token>
pelos tokens de acesso pessoal Databricks do usuário workspace. - Para obter os valores de
<server-hostname>
e<http-path>
, consulte as configurações de computação do driver JDBC Databricks (Simba).
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:
// ...
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);
// ...
- No URL anterior ou no código Java, substitua
<oauth-token>
pelos tokens OAuth 2.0. - 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 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.
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.
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:
// ...
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);
// ...
- No URL ou código Java anterior, substitua
<passphrase>
por uma frase secreta de sua escolha. O driver usa esse key para criptografia de tokens refresh. - 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 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.
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:
-
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.
-
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:
// ...
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).
- Substitua
Para obter mais informações, consulte a seção Using M2M Based Authentication
no guia do driverDatabricks JDBC.