Aller au contenu principal

Paramètres d'authentification pour le Driver JDBC Databricks (Simba)

remarque

Cette page s'applique au Driver JDBC Simba (hérité), versions inférieures à la version 3. Databricks recommande vivement de migrer vers le Driver JDBC Databricks pour la connectivité JDBC. Il inclut des améliorations telles que la prise en charge des vues des indicateurs Unity Catalog, des transactions couvrant plusieurs instructions SQL, des procédures stockées, une récupération plus rapide des grands résultats et la télémétrie client intégrée.

Cette page décrit comment configurer les paramètres d'authentification Databricks pour le Driver JDBC Databricks.

Le Driver JDBC Databricks prend en charge les types d'authentification Databricks suivants :

Jeton d'accès personnel Databricks

remarque

Les jetons d'accès personnel sont fournis pour les scénarios de test. Databricks recommande des types d'authentification plus sécurisés pour les scénarios de production.

Pour créer un jeton d'accès personnel Databricks, suivez les étapes de la section Créer des jetons d'accès personnels pour les utilisateurs de Workspace.

Pour configurer l'authentification d'une URL de connexion JDBC avec des propriétés de configuration générales intégrées et des propriétés d'informations d'identification sensibles à l'aide de votre PAT :

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=3;UID=token;PWD=<personal-access-token>

Pour le code Java avec des propriétés de configuration générales et des propriétés d’informations d’identification sensibles définies en dehors de l’URL de connexion JDBC :

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);
// ...

Jetons OAuth 2.0

Le driver JDBC 2.6.36 et versions ultérieures prend en charge un jeton OAuth 2.0 pour un utilisateur ou un service principal Databricks. Il s'agit également de l'authentification token pass-through OAuth 2.0.

Pour créer un jeton OAuth 2.0 pour l'authentification par transmission de jeton, procédez comme suit :

  • Pour un utilisateur, vous pouvez utiliser l’ interface CLI Databricks pour générer le jeton OAuth 2.0 en initiant le processus OAuth U2M, puis obtenir le jeton OAuth 2.0 généré en exécutant la commande databricks auth token. Consultez l’ authentification OAuth utilisateur-machine (U2M). Les jetons OAuth 2.0 ont une durée de vie default d’1 heure. Pour générer un nouveau jeton OAuth 2.0, répétez ce processus.
  • Pour un service principal, consultez Générer manuellement des jetons d'accès OAuth M2M. Notez la valeur access_token OAuth du service principal. Les jetons OAuth 2.0 ont une durée de vie par default d'une heure. Pour générer un nouveau jeton OAuth 2.0, répétez ce processus.

Pour vous authentifier à l'aide de l'authentification par transfert de jetons OAuth 2.0, définissez la configuration suivante.

Pour une URL de connexion JDBC avec des propriétés de configuration générales intégrées et des propriétés d'informations d'identification sensibles :

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

Pour le code Java avec des propriétés de configuration générales et des propriétés d’informations d’identification sensibles définies en dehors de l’URL de connexion JDBC :

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);
// ...

Pour plus d’informations, consultez la section Token Pass-through du Guide du Driver JDBC Databricks (HTML ou PDF).

Authentification OAuth d'utilisateur à machine (U2M)

Le Driver JDBC 2.6.36 et versions supérieures prend en charge l'authentification utilisateur-machine (U2M) OAuth pour un utilisateur Databricks. Ceci est également connu sous le nom d'authentification OAuth 2.0 basée sur navigateur .

remarque

JDBC 2.6.40.1071 résout le problème des anciennes versions selon lequel la connexion via M2M pour les workspaces avec link privé n'était pas prise en charge.

OAuth U2M et l'authentification basée sur navigateur OAuth 2.0 n'ont pas de prérequis. Les jetons OAuth 2.0 ont une durée de vie default d'une heure. L’authentification basée sur un navigateur OAuth U2M ou OAuth 2.0 devrait automatiquement refresh pour vous les jetons OAuth 2.0 expirés.

remarque

OAuth U2M, ou l'authentification basée sur navigateur OAuth 2.0, fonctionne uniquement avec les applications exécutées localement. Cela ne fonctionne pas avec les applications basées sur serveur ou sur le cloud.

Pour vous authentifier à l'aide de l'authentification OAuth utilisateur-machine (U2M) ou OAuth 2.0 basée sur un navigateur, définissez la configuration suivante.

Pour une URL de connexion JDBC avec des propriétés de configuration générales intégrées et des propriétés d'informations d'identification sensibles :

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

Pour le code Java avec des propriétés de configuration générales et des propriétés d’informations d’identification sensibles définies en dehors de l’URL de connexion JDBC :

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);
// ...
  • Dans l'URL ou le code Java précédent, remplacez <passphrase> par une phrase secrète de votre choix. Le driver utilise cette clé pour le chiffrement des jetons de refresh.
  • Pour obtenir les valeurs de <server-hostname> et <http-path>, consultez les paramètres de compute pour le Driver JDBC Databricks (Simba).

Pour plus d’information, consultez la section **Utilisation de l’authentification basée sur le navigateur** du Guide du Driver JDBC Databricks ( HTML ou PDF).

Authentification OAuth machine à machine (M2M)

Le Driver JDBC 2.6.36 et supérieur prend en charge l'authentification OAuth machine-à-machine (M2M) pour un Service Principal Databricks. Ceci est également connu sous le nom d'authentification OAuth 2.0 par identifiants client .

remarque

JDBC 2.6.40.1071 résout le problème des anciennes versions selon lequel la connexion via M2M pour les workspaces avec link privé n'était pas prise en charge.

Pour configurer l'authentification des informations d'identification client OAuth M2M ou OAuth 2.0, procédez comme suit :

  1. Créez un Service Principal Databricks dans votre Workspace Databricks, et créez un secret OAuth pour ce Service Principal.

    Pour créer le service principal et son secret OAuth, consultez Autoriser l'accès du service principal à Databricks avec OAuth. Notez la valeur du **UUID** ou de l'**ID d'application** du service principal, ainsi que la valeur du **Secret** du secret OAuth du service principal.

  2. Donnez au Service Principal l'accès à votre cluster ou votre warehouse. Consultez les autorisations Compute ou gérez un SQL Warehouse.

Pour vous authentifier à l'aide d'OAuth machine à machine (M2M) ou de l'authentification par identifiants client OAuth 2.0, définissez la configuration suivante.

Pour une URL de connexion JDBC avec des propriétés de configuration générales intégrées et des propriétés d'informations d'identification sensibles :

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

Pour le code Java avec des propriétés de configuration générales et des propriétés d’informations d’identification sensibles définies en dehors de l’URL de connexion JDBC :

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", "1");
p.put("OAuth2ClientId", "<service-principal-application-id>");
p.put("OAuth2Secret", "<service-principal-oauth-secret>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
  • Dans l'URL ou le code Java précédent, remplacez les espaces réservés suivants :
    • Remplacez <service-principal-application-id> par la valeur UUID / ID d’application du Service Principal.
    • Remplacez <service-principal-oauth-secret> par la valeur du Secret OAuth du Service Principal.
    • Pour obtenir les valeurs de <server-hostname> et <http-path>, consultez les paramètres de compute pour le Driver JDBC Databricks (Simba).

Pour plus d'informations, consultez la section Utilisation de l'authentification basée sur M2M dans le Guide du JDBC Databricks Driver (HTML ou PDF).