Compartir a través de


Configuración de autenticación del controlador JDBC de Databricks

Nota:

Este artículo se aplica al controlador Databricks JDBC Simba. Para el controlador JDBC desarrollado por Databricks, consulte Databricks JDBC Driver (OSS).

En este artículo se describe cómo configurar las opciones de autenticación de Azure Databricks para el controlador JDBC de Databricks.

El controlador JDBC de Databricks admite los siguientes tipos de autenticación de Azure Databricks:

Token de Microsoft Entra ID

Los controladores ODBC y JDBC 2.6.15 y versiones posteriores admiten tokens de Microsoft Entra ID para un usuario de Azure Databricks o una entidad de servicio de Microsoft Entra ID.

Para crear un token de acceso de Microsoft Entra ID, haga lo siguiente:

Los tokens de acceso de Microsoft Entra ID tienen una duración predeterminada de aproximadamente 1 hora. Un token de acceso se puede actualizar mediante programación para una sesión existente sin que se interrumpa la conexión ejecutando el código descrito en Actualizar un token de acceso de Microsoft Entra ID. Para obtener instrucciones sobre cómo actualizar el token, vea la sección Configuring Authentication > Using OAuth 2.0 en la guía del controlador JDBC de Databricks.

Para autenticarse mediante un token de Microsoft Entra ID, establezca las siguientes configuraciones.

Para una dirección URL de conexión JDBC con propiedades de configuración generales incrustadas y propiedades de credenciales confidenciales:

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

Para código Java con propiedades de configuración generales y propiedades de credenciales confidenciales establecidas fuera de la dirección URL de conexión 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 más información, vea la sección Token Pass-through de la guía del controlador JDBC de Databricks.

tokens de OAuth 2.0 de

El controlador JDBC 2.6.36 y versiones posteriores admite un token de OAuth 2.0 para una entidad de servicio de Microsoft Entra ID. Esto también se conoce como autenticación de paso a través de tokens de OAuth 2.0.

Importante

El controlador JDBC 2.6.36 y versiones posteriores admiten el uso de secretos de OAuth de Azure Databricks para crear tokens de OAuth 2.0. No se admiten secretos de Microsoft Entra ID.

Los tokens de OAuth 2.0 tienen una duración predeterminada de 1 hora. Para generar un nuevo token de OAuth 2.0, repita este proceso.

Para autenticarse mediante la autenticación de paso a través de tokens de OAuth 2.0, establezca las siguientes configuraciones.

Para una dirección URL de conexión JDBC con propiedades de configuración generales incrustadas y propiedades de credenciales confidenciales:

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

Para código Java con propiedades de configuración generales y propiedades de credenciales confidenciales establecidas fuera de la dirección URL de conexión 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);
// ...
  • En la dirección URL anterior o el código Java, reemplace <oauth-token> por el token de OAuth de Azure Databricks. (Los tokens de Microsoft Entra ID no se admiten para la autenticación de paso a través del token de OAuth 2.0).
  • Para obtener los valores de <server-hostname> y <http-path>, vea Configuración de proceso del controlador JDBC de Databricks.

Para más información, vea la sección Token Pass-through de la guía del controlador JDBC de Databricks.

Autenticación de usuario a máquina (U2M) de OAuth

El controlador JDBC 2.6.36 y versiones posteriores admite la autenticación de usuario a máquina (U2M) de OAuth para un usuario de Azure Databricks. Esto también se conoce como autenticación basada en el explorador de OAuth 2.0.

La autenticación basada en el explorador de OAuth 2.0 o de usuario a máquina de OAuth no tiene requisitos previos. Los tokens de OAuth 2.0 tienen una duración predeterminada de 1 hora. La autenticación basada en el explorador de OAuth 2.0 o de usuario a máquina de OAuth debe actualizar automáticamente los tokens de OAuth 2.0 expirados.

Nota:

La autenticación basada en el explorador de OAuth 2.0 o de usuario a máquina de OAuth solo funciona con aplicaciones que se ejecutan localmente. No funciona con aplicaciones basadas en servidor o en la nube.

Para autenticarse mediante la autenticación basada en el explorador de OAuth 2.0 o de usuario a máquina (U2M) de OAuth, establezca las siguientes configuraciones.

Para una dirección URL de conexión JDBC con propiedades de configuración generales incrustadas y propiedades de credenciales confidenciales:

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

Para código Java con propiedades de configuración generales y propiedades de credenciales confidenciales establecidas fuera de la dirección URL de conexión 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);
// ...
  • En la dirección URL anterior o el código Java, reemplace <passphrase> por una frase de contraseña de su elección. El controlador usa esta clave para el cifrado de tokens de actualización.
  • Para obtener los valores de <server-hostname> y <http-path>, vea Configuración de proceso del controlador JDBC de Databricks.

Para más información, vea la sección Using Browser Based Authentication de la guía del controlador JDBC de Databricks.

autenticación de usuario a máquina (U2M) de OAuth de Microsoft Entra ID

JDBC Driver 2.7.1 y versiones posteriores admiten la autenticación de usuario a máquina (U2M) de OAuth de Microsoft Entra ID para un usuario de Azure Databricks. Esto también se conoce como autenticación basada en el explorador de OAuth 2.0.

La autenticación basada en el explorador de OAuth 2.0 o de usuario a máquina de OAuth no tiene requisitos previos. Los tokens de OAuth 2.0 tienen una duración predeterminada de 1 hora. La autenticación basada en el explorador de OAuth 2.0 o de usuario a máquina de OAuth debe actualizar automáticamente los tokens de OAuth 2.0 expirados.

Nota:

La autenticación basada en el explorador de OAuth 2.0 o de usuario a máquina de OAuth solo funciona con aplicaciones que se ejecutan localmente. No funciona con aplicaciones basadas en servidor o en la nube.

Para autenticarse mediante OAuth de usuario a máquina (U2M) de Microsoft Entra ID, el cliente OAuth (aplicación) debe estar registrado en Microsoft Entra ID, ver Registrar una aplicación cliente en Microsoft Entra ID. A continuación, establezca la siguiente configuración:

Para una dirección URL de conexión JDBC con propiedades de configuración generales incrustadas y propiedades de credenciales confidenciales:

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 con propiedades de configuración generales y propiedades de credenciales confidenciales establecidas fuera de la dirección URL de conexión 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);
// ...
  • En la dirección URL anterior o el código Java, reemplace <passphrase> por una frase de contraseña de su elección. El controlador usa esta clave para el cifrado de tokens de actualización.
  • Para obtener los valores de <server-hostname> y <http-path>, vea Configuración de proceso del controlador JDBC de Databricks.

Para más información, vea la sección Using Browser Based Authentication de la guía del controlador JDBC de Databricks.

Autenticación de máquina a máquina (M2M) de OAuth

El controlador JDBC 2.6.36 y versiones posteriores admite la autenticación de máquina a máquina (M2M) de OAuth para una entidad de servicio de Microsoft Entra ID. Esto también se conoce como autenticación de credenciales de cliente de OAuth 2.0.

Nota:

JDBC 2.6.40.1071 resuelve el problema en versiones anteriores que se conectaban con M2M para áreas de trabajo de Private Link no se admitía.

Para configurar la autenticación de credenciales de cliente de OAuth M2M o OAuth 2.0, haga lo siguiente:

  1. Cree una entidad de servicio administrada de Microsoft Entra ID y asígnela a las cuentas y áreas de trabajo de Azure Databricks. Para ello, consulte Entidades de servicio.

  2. Cree un secreto de OAuth de Azure Databricks para la entidad de servicio. Para ello, consulte Generación manual y uso de tokens de acceso para la autenticación de la entidad de servicio de OAuth.

  3. Proporcione a la entidad de servicio acceso al clúster o al almacenamiento. Vea permisos de proceso o Administración de un almacén de SQL.

Para autenticarse mediante la autenticación de credenciales de cliente de OAuth 2.0 o de máquina a máquina (M2M) de OAuth, establezca las siguientes configuraciones.

Para una dirección URL de conexión JDBC con propiedades de configuración generales incrustadas y propiedades de credenciales confidenciales:

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 con propiedades de configuración generales y propiedades de credenciales confidenciales establecidas fuera de la dirección URL de conexión 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);
// ...
  • En la dirección URL anterior o el código Java, reemplace los siguientes marcadores de posición:
    • Reemplazar <service-principal-application-id> por el valor de ID de aplicación (cliente) de la entidad de servicio.
    • Reemplace <service-principal-oauth-secret> con el secreto OAuth de Azure Databricks del principal del servicio. (Los secretos de Microsoft Entra ID no se admiten para la autenticación de credenciales de cliente de OAuth M2M o OAuth 2.0).
    • Para obtener los valores de <server-hostname> y <http-path>, vea Configuración de proceso del controlador JDBC de Databricks.

Para más información, vea la sección Using M2M Based Authentication de la guía del controlador JDBC de Databricks.

autenticación de máquina a máquina (M2M) de OAuth de Microsoft Entra ID

El controlador JDBC 2.7.1 y versiones posteriores admite la autenticación de máquina a máquina (M2M) de OAuth de Microsoft Entra ID para una entidad de servicio de Microsoft Entra ID. Esto también se conoce como autenticación de credenciales de cliente de OAuth 2.0.

Para configurar la autenticación OAuth M2M de Entra ID, haga lo siguiente:

  1. Cree una entidad de servicio administrada de Microsoft Entra ID y asígnela a las cuentas y áreas de trabajo de Azure Databricks. Para ello, consulte Entidades de servicio.

  2. Cree un secreto de OAuth de Entra ID para la entidad de servicio. Para ello, consulte Generación manual y uso de tokens de acceso para la autenticación de la entidad de servicio de OAuth.

  3. Proporcione a la entidad de servicio acceso al clúster o al almacenamiento. Vea permisos de proceso o Administración de un almacén de SQL.

Para autenticarse mediante el identificador de Entra OAuth máquina a máquina (M2M), establezca la siguiente configuración.

Para una dirección URL de conexión JDBC con propiedades de configuración generales incrustadas y propiedades de credenciales confidenciales:

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 con propiedades de configuración generales y propiedades de credenciales confidenciales establecidas fuera de la dirección URL de conexión 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);
// ...
  • En la dirección URL anterior o el código Java, reemplace los siguientes marcadores de posición:
    • Reemplace <entra-id-service-principal-application-id> por el valor del identificador de aplicación de la entidad de servicio en Entra.
    • Reemplace <entra-id-service-principal-client-secret> con el secreto de la principal de servicio en Entra. Este es el secreto de cliente que crea en Certificados y secretos en Microsoft Entra ID.
    • Para obtener los valores de <server-hostname> y <http-path>, vea Configuración de proceso del controlador JDBC de Databricks.