Partager via


Paramètres d’authentification pour le pilote JDBC Databricks (Simba)

Remarque

Cette page s’applique aux versions du pilote JDBC Databricks antérieures à la version 3. Pour le pilote JDBC Databricks version 3 et ultérieure, consultez Databricks JDBC Driver.

Cette page explique comment configurer les paramètres d’authentification Azure Databricks pour le pilote JDBC Databricks.

Le pilote JDBC Databricks prend en charge les types d’authentification Azure Databricks suivants :

Jeton Microsoft Entra ID

Les pilotes ODBC et JDBC 2.6.15 et versions ultérieures prennent en charge les jetons Microsoft Entra ID pour un utilisateur Azure Databricks ou un principal de service Microsoft Entra ID.

Pour créer un jeton d’accès Microsoft Entra ID, effectuez ce qui suit :

Les jetons d’accès d’ID Microsoft Entra ont une durée de vie par défaut d’environ une heure. Actualisez un jeton d’accès par programmation pour une session existante sans interrompre la connexion en exécutant le code dans les jetons d’actualisation. Pour obtenir des instructions, consultez Utilisation d’OAuth 2.0 dans le Guide du pilote JDBC Databricks.

Pour vous authentifier en utilisant un jeton Microsoft Entra ID, définissez la configuration suivante.

Pour une URL de connexion JDBC avec des propriétés de configuration générales incorporé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=<microsoft-entra-id-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 :

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

Pour plus d’informations, consultez la section Pass-through token dans le Guide du pilote JDBC Databricks (HTML ou PDF).

Jetons OAuth 2.0

Le pilote JDBC 2.6.36 et versions ultérieures prennent en charge un jeton OAuth 2.0 pour un principal de service Microsoft Entra ID. Cette opération est également appelée authentification par transmission de jeton OAuth 2.0.

Important

Le pilote JDBC 2.6.36 et versions ultérieures prennent en charge l’utilisation de secrets OAuth Azure Databricks pour créer des jetons OAuth 2.0. Les secrets Microsoft Entra ID ne sont pas pris en charge.

Les jetons OAuth 2.0 ont une durée de vie par défaut de 1 heure. Pour générer un token OAuth 2.0, répétez ce processus.

Pour vous authentifier en utilisant une authentification directe de jeton OAuth 2.0, définissez la configuration suivante.

Pour une URL de connexion JDBC avec des propriétés de configuration générales incorporé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 :

// ...
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);
// ...
  • Dans le code Java ou l’URL précédent, remplacez <oauth-token> par le jeton OAuth Azure Databricks. (Les jetons Microsoft Entra ID ne sont pas pris en charge pour l'authentification par passage de jeton OAuth 2.0.)
  • Pour obtenir les valeurs pour <server-hostname> et <http-path>, consultez les paramètres de calcul pour le pilote JDBC Databricks (Simba) .

Pour plus d’informations, consultez la section Pass-through token dans le Guide du pilote JDBC Databricks (HTML ou PDF).

Authentification utilisateur à machine (U2M) OAuth

Le pilote JDBC 2.6.36 et versions ultérieures prennent en charge l’authentification utilisateur à machine (U2M) OAuth pour un utilisateur Azure Databricks. Elle est également appelée authentification basée sur un navigateur OAuth 2.0.

L’authentification basée sur un navigateur via OAuth U2M ou OAuth 2.0 n’a pas de prérequis. Les jetons OAuth 2.0 ont une durée de vie par défaut de 1 heure. L’authentification basée sur un navigateur OAuth U2M ou OAuth 2.0 doit automatiquement actualiser des jetons OAuth 2.0 expirés pour vous.

Remarque

L’authentification basée sur un navigateur OAuth U2M ou OAuth 2.0 fonctionne uniquement avec des applications s’exécutant localement. Elle ne fonctionne pas avec des applications basées sur un cloud ou sur un serveur.

Pour vous authentifier en utilisant une authentification basée sur un navigateur OAuth utilisateur à machine (U2M) ou OAuth 2.0, définissez la configuration suivante.

Pour une URL de connexion JDBC avec des propriétés de configuration générales incorporé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 :

// ...
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 le code Java ou l’URL précédent, remplacez <passphrase> par une phrase secrète de votre choix. Le pilote utilise cette clé pour le chiffrement du jeton d’actualisation.
  • Pour obtenir les valeurs pour <server-hostname> et <http-path>, consultez les paramètres de calcul pour le pilote JDBC Databricks (Simba) .

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

Authentification d’utilisateur à machine (U2M) OAuth Microsoft Entra ID

Le pilote JDBC 2.7.1 et versions ultérieures prend en charge l’authentification utilisateur-machine (U2M) OAuth d’ID Microsoft Entra pour un utilisateur Azure Databricks. Elle est également appelée authentification basée sur un navigateur OAuth 2.0.

L’authentification basée sur un navigateur via OAuth U2M ou OAuth 2.0 n’a pas de prérequis. Les jetons OAuth 2.0 ont une durée de vie par défaut de 1 heure. L’authentification basée sur un navigateur OAuth U2M ou OAuth 2.0 doit automatiquement actualiser des jetons OAuth 2.0 expirés pour vous.

Remarque

L’authentification basée sur un navigateur OAuth U2M ou OAuth 2.0 fonctionne uniquement avec des applications s’exécutant localement. Elle ne fonctionne pas avec des applications basées sur un cloud ou sur un serveur.

Pour vous authentifier à l’aide de l’ID OAuth OAuth utilisateur à machine (U2M), le client OAuth (application) doit être inscrit dans l’ID Microsoft Entra, consultez Inscrire une application cliente dans Microsoft Entra ID. Définissez ensuite la configuration suivante :

Pour une URL de connexion JDBC avec des propriétés de configuration générales incorporé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;OIDCDiscoveryEndpoint=<endpoint>;EnableOIDCDiscovery=true

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 :

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

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

Authentification machine à machine (M2M) OAuth

Le pilote JDBC 2.6.36 et versions ultérieures prennent en charge l’authentification machine à machine (M2M) OAuth pour un principal de service Microsoft Entra ID. Elle est également appelée authentification des informations d’identification du client OAuth 2.0.

Remarque

JDBC 2.6.40.1071 résout le problème des versions antérieures qui ne prenaient pas en charge la connexion à l'aide de M2M pour les espaces de travail avec liaison privée.

Pour configurer l’authentification des informations d’identification du client OAuth M2M ou OAuth 2.0, effectuez ces étapes :

  1. Créez un principal de service géré Microsoft Entra ID, puis affectez-le aux comptes et aux espaces de travail Azure Databricks. Pour cela, consultez Principaux de service.

  2. Créez un secret OAuth Azure Databricks pour le principal de service. Pour ce faire, consultez Générer manuellement des jetons d’accès OAuth M2M.

  3. Accordez au principal de service l’accès à votre cluster ou entrepôt. Consultez Autorisations de calcul ou Gérer un entrepôt SQL.

Pour vous authentifier en utilisant une authentification des informations d’identification du client OAuth machine à machine (M2M) ou OAuth 2.0, définissez la configuration suivante.

Pour une URL de connexion JDBC avec des propriétés de configuration générales incorporé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 :

// ...
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 le code Java ou l’URL précédent, remplacez les espaces réservés suivants :
    • Remplacez <service-principal-application-id> par la valeur d’ID d’application (client) du principal de service.
    • Remplacez <service-principal-oauth-secret> par le secret Azure Databricks OAuth du principal de service. (Les secrets Microsoft Entra ID ne sont pas pris en charge pour l’authentification des informations d’identification de client OAuth M2M ou OAuth 2.0.)
    • Pour obtenir les valeurs pour <server-hostname> et <http-path>, consultez les paramètres de calcul pour le pilote JDBC Databricks (Simba) .

Pour plus d’informations, consultez la section Utilisation de l’authentification M2M dans le Guide du pilote JDBC Databricks (HTML ou PDF).

Authentification de machine à machine (M2M) OAuth Microsoft Entra ID

Le pilote JDBC 2.7.1 et versions ultérieures prend en charge l’authentification microsoft Entra ID OAuth machine à machine (M2M) pour un principal de service Microsoft Entra ID. Elle est également appelée authentification des informations d’identification du client OAuth 2.0.

Pour configurer l’authentification OAuth M2M d’Entra ID, procédez comme suit :

  1. Créez un principal de service géré Microsoft Entra ID, puis affectez-le aux comptes et aux espaces de travail Azure Databricks. Pour cela, consultez Principaux de service.

  2. Créez un secret OAuth pour l'ID Entra du principal de service. Pour ce faire, consultez Générer manuellement des jetons d’accès OAuth M2M.

  3. Accordez au principal de service l’accès à votre cluster ou entrepôt. Consultez Autorisations de calcul ou Gérer un entrepôt SQL.

Pour vous authentifier à l’aide de l’ID Entra OAuth machine à machine (M2M), définissez la configuration suivante.

Pour une URL de connexion JDBC avec des propriétés de configuration générales incorporé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>;OIDCDiscoveryEndpoint=<endpoint>;EnableOIDCDiscovery=true

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 :

// ...
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);
// ...
  • Dans le code Java ou l’URL précédent, remplacez les espaces réservés suivants :
    • Remplacez <entra-id-service-principal-application-id> par la valeur de l'ID de l'application du principal de service dans Entra.
    • Remplacez <entra-id-service-principal-client-secret> par le secret du principal de service dans Entra. Il s’agit de la clé secrète client que vous créez dans Certificats et secrets dans Microsoft Entra ID.
    • Pour obtenir les valeurs pour <server-hostname> et <http-path>, consultez les paramètres de calcul pour le pilote JDBC Databricks (Simba) .