Compartilhar via


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

Observação

Esta página se aplica às versões do driver JDBC do Databricks abaixo da versão 3. Para o driver JDBC do Databricks versão 3 e superior, consulte o Driver JDBC do Databricks.

Esta página descreve como definir as configurações de autenticação do Azure Databricks para o Driver JDBC do Databricks.

O Driver JDBC do Databricks dá suporte aos seguintes tipos de autenticação do Azure Databricks:

Token do Microsoft Entra ID

Os drivers ODBC e JDBC 2.6.15 e posterior dão suporte a tokens do Microsoft Entra ID para um usuário do Azure Databricks ou uma entidade de serviço do Microsoft Entra ID.

Para criar um token de acesso do Microsoft Entra ID, faça o seguinte:

Os tokens de acesso da ID do Microsoft Entra têm um tempo de vida padrão de cerca de uma hora. Atualize um token de acesso programaticamente para uma sessão existente sem interromper a conexão executando o código em tokens de atualização. Para obter instruções, consulte Como usar o OAuth 2.0 no Guia do Driver JDBC do Databricks.

Para autenticar usando um token do Microsoft Entra ID, defina a configuração a seguir.

Para uma URL de conexão JDBC com propriedades de configuração geral inseridas e propriedades de credencial confidenciais:

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

Para código Java com propriedades de configuração gerais e propriedades de credencial confidenciais definidas fora da 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", "<microsoft-entra-id-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...

Para obter mais informações, consulte a seção Passagem de Token no Guia de Driver JDBC do Databricks (HTML ou PDF).

Tokens OAuth 2.0

O driver JDBC 2.6.36 e posterior dá suporte a um token OAuth 2.0 para uma entidade de serviço do Microsoft Entra ID. Isso também é conhecido como autenticação de passagem do OAuth 2.0.

  • Para criar um token OAuth 2.0 para autenticação de passagem de token para uma entidade de serviço do Microsoft Entra ID, consulte Gerar manualmente tokens de acesso OAuth M2M. Anote o valor OAuth access_token da entidade de serviço.
  • Para criar uma entidade de serviço gerenciada do Microsoft Entra ID, veja Entidades de serviço.

Importante

O driver JDBC 2.6.36 e posterior dão suporte ao uso de segredos do Azure Databricks OAuth para criar tokens OAuth 2.0. Não há suporte para segredos do Microsoft Entra ID.

Os tokens OAuth 2.0 têm um tempo de vida padrão de 1 hora. Para gerar um novo token OAuth 2.0, repita esse processo.

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

Para uma URL de conexão JDBC com propriedades de configuração geral inseridas e propriedades de credencial 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 gerais e propriedades de credencial confidenciais definidas fora da 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);
// ...

Para obter mais informações, consulte a seção Passagem de Token no Guia de Driver JDBC do Databricks (HTML ou PDF).

Autenticação U2M (usuário para computador) do OAuth

O driver JDBC 2.6.36 e posterior dá suporte à autenticação U2M (usuário para máquina) do OAuth para um usuário do Azure Databricks. Isso também é conhecido como autenticação baseada em navegador OAuth 2.0.

A autenticação baseada em navegador OAuth U2M ou OAuth 2.0 não tem pré-requisitos. Os tokens OAuth 2.0 têm um tempo de vida padrão de 1 hora. A autenticação baseada em navegador OAuth U2M ou OAuth 2.0 deve atualizará os tokens OAuth 2.0 expirados automaticamente para você.

Observação

A autenticação baseada em navegador OAuth U2M ou OAuth 2.0 funciona apenas com aplicativos executados localmente. Ele não funciona com aplicativos baseados em servidor ou na nuvem.

Para autenticar usando u2M (usuário para máquina) do OAuth ou autenticação baseada em navegador OAuth 2.0, defina a configuração a seguir.

Para uma URL de conexão JDBC com propriedades de configuração geral inseridas e propriedades de credencial 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 gerais e propriedades de credencial confidenciais definidas fora da 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);
// ...

Para obter mais informações, consulte a seção Using Browser Based Authentication no Guia de Driver JDBC do Databricks (HTML ou PDF).

Autenticação OAuth U2M (usuário para computador) do Microsoft Entra ID

O driver JDBC 2.7.1 e versões superiores oferecem suporte à autenticação de usuário para máquina (U2M) do Microsoft Entra ID para um usuário do Azure Databricks. Isso também é conhecido como autenticação baseada em navegador OAuth 2.0.

A autenticação baseada em navegador OAuth U2M ou OAuth 2.0 não tem pré-requisitos. Os tokens OAuth 2.0 têm um tempo de vida padrão de 1 hora. A autenticação baseada em navegador OAuth U2M ou OAuth 2.0 deve atualizará os tokens OAuth 2.0 expirados automaticamente para você.

Observação

A autenticação baseada em navegador OAuth U2M ou OAuth 2.0 funciona apenas com aplicativos executados localmente. Ele não funciona com aplicativos baseados em servidor ou na nuvem.

Para autenticar usando Microsoft Entra ID OAuth na modalidade usuário para máquina (U2M), o cliente OAuth (aplicativo) deve ser registrado no Microsoft Entra ID. Consulte Registrar um aplicativo cliente no Microsoft Entra ID. Em seguida, defina a seguinte configuração:

Para uma URL de conexão JDBC com propriedades de configuração geral inseridas e propriedades de credencial confidenciais:

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

Para código Java com propriedades de configuração gerais e propriedades de credencial confidenciais definidas fora da 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");
p.put("OIDCDiscoveryEndpoint", "https://login.microsoftonline.com/<azureTenantId>/v2.0/.well-known/openid-configuration");
p.put("EnableOIDCDiscovery", "true");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...

Para obter mais informações, consulte a seção Using Browser Based Authentication no Guia de Driver JDBC do Databricks (HTML ou PDF).

Autenticação M2M (de computador para computador) do OAuth

O driver JDBC 2.6.36 e posterior dá suporte à autenticação OAuth M2M (computador para computador) para uma entidade de serviço do Microsoft Entra ID. Isso também é conhecido como autenticação de credenciais de cliente OAuth 2.0.

Observação

O JDBC 2.6.40.1071 resolve o problema em versões mais antigas em que a conexão usando M2M para áreas de trabalho de link privado não era suportada.

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

  1. Crie uma entidade de serviço gerenciada do Microsoft Entra ID e, em seguida, atribua-a a contas e workspaces do Azure Databricks. Para fazer isso, consulte Gerenciar entidades de serviço.

  2. Crie um segredo do OAuth do Azure Databricks para a entidade de serviço. Para fazer isso, consulte Gerar manualmente tokens de acesso OAuth M2M.

  3. Permita à entidade de serviço acesso ao cluster ou ao warehouse. Consulte Permissões de computação ou Gerenciar um SQL warehouse.

Para autenticar usando a autenticação de credenciais de cliente OAuth de computador para computador (M2M) ou OAuth 2.0, defina a configuração a seguir.

Para uma URL de conexão JDBC com propriedades de configuração geral inseridas e propriedades de credencial 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 gerais e propriedades de credencial confidenciais definidas fora da 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);
// ...
  • Na URL anterior ou no código Java, substitua os seguintes espaços reservados:
    • Substitua <service-principal-application-id> pelo valor do ID do aplicativo (cliente) da entidade de serviço.
    • Substitua <service-principal-oauth-secret> pelo segredo do OAuth do Azure Databricks da entidade de serviço. (Não há suporte para segredos do Microsoft Entra ID para autenticação de credenciais de cliente OAuth M2M ou OAuth 2.0).
    • Para obter os valores para <server-hostname> e <http-path>, consulte as configurações de computação para o Driver JDBC do Databricks (Simba).

Para obter mais informações, consulte a seção Usando Autenticação Baseada em M2M no Guia do Driver JDBC do Databricks (HTML ou PDF).

Autenticação OAuth M2M (computador para computador) do Microsoft Entra ID

O driver ODBC 2.7.1 e posterior dá suporte à autenticação OAuth M2M (computador para computador) para uma entidade de serviço do Microsoft Entra ID. Isso também é conhecido como autenticação de credenciais de cliente OAuth 2.0.

Para configurar a autenticação OAuth M2M do Entra ID, faça o seguinte:

  1. Crie uma entidade de serviço gerenciada do Microsoft Entra ID e, em seguida, atribua-a a contas e workspaces do Azure Databricks. Para fazer isso, consulte Gerenciar entidades de serviço.

  2. Crie um segredo do OAuth do Entra ID para a entidade de serviço. Para fazer isso, consulte Gerar manualmente tokens de acesso OAuth M2M.

  3. Permita à entidade de serviço acesso ao cluster ou ao warehouse. Consulte Permissões de computação ou Gerenciar um SQL warehouse.

Para autenticar usando o M2M (computador para máquina) do Entra ID OAuth, defina a configuração a seguir.

Para uma URL de conexão JDBC com propriedades de configuração geral inseridas e propriedades de credencial confidenciais:

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

Para código Java com propriedades de configuração gerais e propriedades de credencial confidenciais definidas fora da 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", "<entra-id-service-principal-application-id>");
p.put("OAuth2Secret", "<entra-id-service-principal-client-secret>");
p.put("OIDCDiscoveryEndpoint", "https://login.microsoftonline.com/<AzureTenantId>/v2.0/.well-known/openid-configuration");
p.put("EnableOIDCDiscovery", "true");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
  • Na URL anterior ou no código Java, substitua os seguintes espaços reservados:
    • Substitua <entra-id-service-principal-application-id> pelo valor da ID do aplicativo da entidade de serviço no Entra.
    • Substitua <entra-id-service-principal-client-secret> pelo segredo do principal de serviço no Entra. Esse é o segredo do cliente que você cria em Certificados e segredos no Microsoft Entra ID.
    • Para obter os valores para <server-hostname> e <http-path>, consulte as configurações de computação para o Driver JDBC do Databricks (Simba).