Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O controlador JDBC Databricks suporta múltiplos 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 ligação necessárias.
Para configurar a autenticação do Driver JDBC Databricks, utilize um dos seguintes métodos:
- Transmissão de tokens OAuth 2.0 (incluindo federação de tokens com provedores externos de identidade)
- Autenticação OAuth de utilizador para máquina (U2M)
- Autenticação OAuth entre máquinas (M2M)
- Token de acesso pessoal Databricks
Passagem de token OAuth 2.0
O driver JDBC aceita tokens OAuth na propriedade Auth_AccessToken. Pode passar diretamente um token OAuth do Azure Databricks ou um JSON Web Token (JWT) de um fornecedor de identidade externo. Se passar um token IdP externo, o Azure Databricks troca-o automaticamente por um token Azure Databricks usando federação de tokens.
Nos exemplos seguintes, substitua os seguintes marcadores de posição:
-
<oauth-token>com um token Azure Databricks OAuth 2.0 ou um IdP JWT externo. - Para obter os valores de
<server-hostname>e<http-path>, veja Configurar uma ligação a Databricks usando o Driver JDBC do Databricks.
As propriedades exigidas são:
-
AuthMechdefinido para11(autenticação OAuth 2.0) -
Auth_Flowdefinir para0(modo de passagem de token) -
Auth_AccessTokendefinir para um token Azure Databricks OAuth ou um IdP JWT externo
Ver Propriedades de autenticação.
Para uma URL de ligação JDBC:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>
Em 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 tokens com um fornecedor de identidade externo
Se autenticar com um token de um fornecedor de identidade externo como Okta, Microsoft Entra ID, Keycloak ou qualquer IdP compatível com OIDC, o Azure Databricks realiza automaticamente a troca de tokens. A configuração JDBC é igual à passagem de tokens. Passe o token IdP em Auth_AccessToken e o driver trata do resto.
Antes de usar a federação de tokens, deverá:
- Crie uma política de federação na sua conta Azure Databricks que confie no IdP externo. Uma política de federação especifica a URL do emissor, os valores esperados dos destinatários e a reivindicação JWT usada para mapear para um utilizador do Azure Databricks. Consulte Autenticar o acesso ao Azure Databricks usando a federação de tokens OAuth.
- Verifique se existe um utilizador correspondente do Azure Databricks. O email do utilizador ou outro identificador deve corresponder ao
subject_claimvalor no JWT. - Verifique se o endpoint de descoberta OIDC do IdP é acessível publicamente para que o Azure Databricks possa obter chaves de assinatura para verificar o token.
Autenticação OAuth de utilizador para máquina (U2M)
A autenticação OAuth U2M permite-lhe iniciar sessão no Azure Databricks através de um navegador. O driver abre uma janela do navegador, tu autenticas-te e o driver recebe um token OAuth. O driver utiliza o ID de cliente OAuth incorporado databricks-sql-jdbc.
Este tipo de autenticação não tem pré-requisitos. Os tokens têm uma vida útil padrão de uma hora e atualizam-se automaticamente quando expiram.
Observação
O OAuth U2M funciona apenas com aplicações executadas localmente. Ele não funciona com aplicativos baseados em servidor ou em nuvem.
Nos exemplos seguintes, substitua os seguintes placeholders:
-
<passphrase>com uma frase-passe à sua escolha. O driver usa essa chave para atualizar a criptografia de token. - Para obter os valores de
<server-hostname>e<http-path>, veja Configurar uma ligação a Databricks usando o Driver JDBC do Databricks.
As propriedades exigidas são:
-
AuthMechdefinido para11(autenticação OAuth 2.0) -
Auth_Flowdefinido para2(modo baseado em navegador U2M) -
TokenCachePassPhrasedefinido como a frase de acesso utilizada para encriptar as suas credenciais OAuth U2M armazenadas em cache. Isso evita autenticações repetidas baseadas em navegador. Para desativar o cache de tokens, definaEnableTokenCachecomo0.
Ver Propriedades de autenticação.
Numa URL de ligação JDBC:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0
Em 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 OAuth entre máquinas (M2M)
O driver JDBC suporta autenticação OAuth máquina-a-máquina (M2M) usando um dos seguintes princípios ou identidade. Consulte Autorizar o acesso da entidade de serviço ao Azure Databricks com OAuth.
- Uma entidade de serviço Databricks
- Uma entidade de serviço gerenciada do Azure
- Uma identidade gerenciada do Azure (atribuída pelo sistema ou atribuída pelo usuário)
M2M usando o principal de serviço gerido Databricks
Para configurar a autenticação usando um principal de serviço gerido pelo Databricks:
Crie um principal de serviço gerido do Databricks e atribua-o a contas e áreas de trabalho do Databricks.
Crie um segredo OAuth do Databricks para a entidade principal de serviço. Ver Gerar manualmente tokens de acesso OAuth M2M.
Conceda permissões de acesso a clusters e armazéns SQL.
Adicione as seguintes propriedades ao URL da conexão JDBC existente ou ao objeto
java.util.Properties:-
AuthMechdefinido para11(autenticação OAuth 2.0) -
Auth_Flowdefinido para1(modo credenciais de cliente M2M) -
OAuth2ClientIDdefinido para o valor do ID do cliente (aplicação) do principal de serviço -
OAuth2Secretdefinido para o secreto Databricks OAuth do principal de serviço
-
M2M usando o serviço gerido do Azure
Para configurar a autenticação usando um principal de serviço gerido do Azure:
Crie um segredo OAuth do Databricks para a entidade principal de serviço. Ver Gerar manualmente tokens de acesso OAuth M2M.
Conceda permissões de acesso a clusters e armazéns SQL.
Adicione as seguintes propriedades ao URL da conexão JDBC existente ou ao objeto
java.util.Properties:-
AuthMechdefinido para11(autenticação OAuth 2.0) -
Auth_Flowdefinido para1(modo credenciais de cliente M2M) -
OAuth2ClientIDdefinido para o valor ID de Aplicação (cliente) do principal de serviço -
AzureTenantIDdefinido para o Azure tenant ID encontrado no Azure Active Directory -
OAuth2Secretdefinido para o secreto Databricks OAuth do principal de serviç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 armazéns SQL.
Adicione as seguintes propriedades ao URL da conexão JDBC existente ou ao objeto
java.util.Properties:-
AuthMechdefinido para11(autenticação OAuth 2.0) -
Auth_Flowconfigurado para3(modo de identidade gerida) -
OAuth2ClientIDdefinido para o ID do Cliente da identidade gerida. Isto só é necessário se estiver a usar uma identidade gerida atribuída pelo utilizador. -
Azure_workspace_resource_iddefina para o ID de recurso do Azure do seu espaço de trabalho do Databricks
-
Token de acesso pessoal Databricks
Observação
Os tokens de acesso pessoal são melhores para testar cenários. O Azure Databricks recomenda tipos de autenticação mais seguros para cenários de produção.
Para criar um token de acesso pessoal Databricks, siga os passos em Criar tokens de acesso pessoal para utilizadores de espaços de trabalho.
Nos exemplos seguintes, substitua os seguintes placeholders:
-
<personal-access-token>com o token de acesso pessoal Databricks para o utilizador do seu espaço de trabalho. - Para obter os valores de
<server-hostname>e<http-path>, veja Configurar uma ligação a Databricks usando o Driver JDBC do Databricks.
As propriedades exigidas são:
-
AuthMechdefinir para3(autenticação de token) -
UIDdefinido para a cadeia literaltoken -
PWDoupassworddefinido para o valor do token de acesso pessoal do seu Databricks
Ver Propriedades de autenticação.
Numa URL de ligação JDBC:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=3;UID=token;PWD=<personal-access-token>
Em 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);
// ...