Configurações de autenticação para o driver JDBC da Databricks
Este artigo se aplica ao driver Databricks JDBC Simba. Para o driver JDBC desenvolvido pela Databricks, consulte Databricks JDBC Driver (OSS).
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 tokens de acesso pessoal Databricks, siga as etapas em Databricks acesso pessoal tokens 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 Databricks JDBC.
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 e usar manualmente tokens de acesso para autenticação de entidade de serviço OAuth. 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 Databricks JDBC.
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 ou OAuth 2.0 não tem pré-requisitos. OAuth 2.0 tokens têm uma vida útil de default de 1 hora. OAuth A autenticação baseada em navegador U2M ou OAuth 2.0 deve refresh expirar OAuth 2.0 tokens automaticamente para o senhor.
OAuth A autenticação baseada em navegador U2M ou OAuth 2.0 funciona apenas 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 Databricks JDBC.
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 autônomo a Databricks recurso com uma entidade de serviço usando 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 Databricks JDBC.
- Substitua
Para obter mais informações, consulte a seção Using M2M Based Authentication
no guia do driverDatabricks JDBC.