Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Databricks JDBC Driver prend en charge plusieurs méthodes d’authentification en fonction de votre cas d’usage. Cette page explique comment configurer chaque méthode et répertorie les propriétés de connexion requises.
Pour configurer l’authentification pour le pilote JDBC Databricks, utilisez l’une des méthodes suivantes :
- Transmission transparente de jeton OAuth 2.0 (y compris fédération de jetons avec des fournisseurs d’identité externes)
- Authentification OAuth de utilisateur à machine (U2M)
- Authentification OAuth machine-à-machine (M2M)
- Jeton d’accès personnel Databricks
Transmission directe de jeton OAuth 2.0
Le pilote JDBC accepte les jetons OAuth dans la Auth_AccessToken propriété. Vous pouvez transmettre directement un jeton OAuth Azure Databricks ou un jeton web JSON (JWT) à partir d’un fournisseur d’identité externe. Si vous transmettez un jeton IdP externe, Azure Databricks l’échange automatiquement pour un jeton Azure Databricks à l’aide de la fédération de jetons.
Dans les exemples suivants, remplacez les espaces réservés suivants :
-
<oauth-token>avec un jeton OAuth 2.0 Azure Databricks ou un IdP externe JWT. - Pour obtenir les valeurs pour
<server-hostname>et<http-path>, consultez Configurer une connexion à Databricks à l’aide du pilote JDBC de Databricks.
Les propriétés requises sont les suivantes :
-
AuthMechdéfini sur11(authentification OAuth 2.0) -
Auth_Flowdéfini sur0(mode de transmission directe de jeton) -
Auth_AccessTokendéfini sur un jeton OAuth Azure Databricks ou un idP externe JWT
Consultez les propriétés d’authentification.
Pour une URL de connexion JDBC :
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>
Dans le code 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);
// ...
Fédération de jetons avec un fournisseur d’identité externe
Si vous vous authentifiez avec un jeton à partir d’un fournisseur d’identité externe tel qu’Okta, Microsoft Entra ID, Keycloak ou un idP conforme à OIDC, Azure Databricks effectue automatiquement l’échange de jetons. La configuration JDBC est la même que la transmission directe de jeton. Passez le jeton IdP dans Auth_AccessToken et le pilote gère le reste.
Avant d’utiliser la fédération de jetons, vous devez :
- Créez une stratégie de fédération dans votre compte Azure Databricks qui approuve le fournisseur d’identité externe. Une stratégie de fédération spécifie l’URL de l’émetteur, les valeurs d’audience attendues et la revendication JWT utilisée pour mapper à un utilisateur Azure Databricks. Consultez Authentifier l’accès à Azure Databricks à l’aide de la fédération de jeton OAuth.
- Vérifiez qu’un utilisateur Azure Databricks correspondant existe. L’e-mail de l’utilisateur ou un autre identificateur doit correspondre à la
subject_claimvaleur dans le JWT. - Vérifiez que le point de terminaison de découverte OIDC du fournisseur d’identité est accessible publiquement afin qu’Azure Databricks puisse récupérer des clés de signature pour vérifier le jeton.
Authentification OAuth de l'utilisateur à la machine (U2M)
L’authentification OAuth U2M vous permet de vous connecter à Azure Databricks via un navigateur. Le pilote ouvre une fenêtre de navigateur, vous vous authentifiez et le pilote reçoit un jeton OAuth. Le pilote utilise l'ID client OAuth intégré databricks-sql-jdbc.
Ce type d’authentification n’a aucun prérequis. Les jetons ont une durée de vie par défaut d’une heure et s’actualisent automatiquement lorsqu’ils expirent.
Note
OAuth U2M fonctionne uniquement avec les applications exécutées localement. Elle ne fonctionne pas avec les applications basées sur le serveur ou cloud.
Dans les exemples suivants, remplacez les espaces réservés suivants :
-
<passphrase>avec 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 Configurer une connexion à Databricks à l’aide du pilote JDBC de Databricks.
Les propriétés requises sont les suivantes :
-
AuthMechdéfini sur11(authentification OAuth 2.0) -
Auth_Flowdéfini sur2(mode basé sur le navigateur U2M) -
TokenCachePassPhrasedéfinissez la phrase secrète utilisée pour chiffrer vos informations d’identification OAuth U2M mises en cache. Cela empêche les authentifications répétées basées sur un navigateur. Pour refuser la mise en cache des jetons, définissezEnableTokenCacheà0.
Consultez les propriétés d’authentification.
Dans une URL de connexion JDBC :
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0
Dans le code 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);
// ...
Authentification machine à machine (M2M) OAuth
Le pilote JDBC prend en charge l’authentification machine à machine (M2M) OAuth à l’aide de l’un des principaux ou identités suivants. Consultez Autoriser l’accès du principal du service à Azure Databricks avec OAuth.
- Un principal de service Databricks
- Un principal de service managé Azure
- Une identité managée d'Azure (attribuée par le système ou par l'utilisateur)
M2M à l’aide du principal de service géré Databricks
Pour configurer l’authentification à l’aide d’un principal de service managé Databricks :
Créez un principal de service managé Databricks et affectez-le aux comptes et espaces de travail Databricks.
Créez un secret Databricks OAuth pour le principal de service. Consultez Générer manuellement des jetons d’accès OAuth M2M.
Accordez des autorisations d’accès aux clusters et aux entrepôts SQL.
Ajoutez les propriétés suivantes à votre URL de connexion JDBC ou à l’objet
java.util.Propertiesexistant :-
AuthMechdéfini sur11(authentification OAuth 2.0) -
Auth_Flowdéfini sur1(mode d’informations d’identification du client M2M) -
OAuth2ClientIDdéfini sur la valeur d’ID d’application (client) du principal de service -
OAuth2Secretdéfini sur le secret OAuth de Databricks du principal de service
Consultez les propriétés d’authentification.
-
M2M à l’aide du principal de service géré Azure
Pour configurer l’authentification à l’aide d’un principal de service managé Azure :
Créez un secret Databricks OAuth pour le principal de service. Consultez Générer manuellement des jetons d’accès OAuth M2M.
Accordez des autorisations d’accès aux clusters et aux entrepôts SQL.
Ajoutez les propriétés suivantes à votre URL de connexion JDBC ou à l’objet
java.util.Propertiesexistant :-
AuthMechdéfini sur11(authentification OAuth 2.0) -
Auth_Flowdéfini sur1(mode d’informations d’identification du client M2M) -
OAuth2ClientIDdéfini sur la valeur d’ID d’application (client) du principal de service -
AzureTenantIDdéfini sur l’ID de tenant Azure trouvé dans Azure Active Directory -
OAuth2Secretdéfini sur le secret OAuth de Databricks du principal de service
Consultez les propriétés d’authentification.
-
M2M à l’aide d’identités managées Azure
Pour configurer l’authentification à l’aide d’identités managées Azure :
Configurez des identités managées pour vos ressources Azure.
Accordez des autorisations d’accès aux clusters et aux entrepôts SQL.
Ajoutez les propriétés suivantes à votre URL de connexion JDBC ou à l’objet
java.util.Propertiesexistant :-
AuthMechdéfini sur11(authentification OAuth 2.0) -
Auth_Flowdéfini sur3(mode identité managée) -
OAuth2ClientIDdéfini sur l’ID client de l’identité managée. Cela n’est nécessaire que si vous utilisez une identité managée affectée par l’utilisateur. -
Azure_workspace_resource_iddéfini sur l’ID de ressource Azure de votre espace de travail Databricks
Consultez les propriétés d’authentification.
-
Jeton d’accès personnel Databricks
Note
Les jetons d’accès personnels sont les meilleurs pour les scénarios de test. Azure 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 décrites dans Créer des jetons d’accès personnels pour les utilisateurs de l’espace de travail.
Dans les exemples suivants, remplacez les espaces réservés suivants :
-
<personal-access-token>avec le jeton d’accès personnel Databricks pour l'utilisateur de votre espace de travail. - Pour obtenir les valeurs pour
<server-hostname>et<http-path>, consultez Configurer une connexion à Databricks à l’aide du pilote JDBC de Databricks.
Les propriétés requises sont les suivantes :
-
AuthMechdéfini sur3(authentification par jeton) -
UIDdéfini comme la chaîne littéraletoken -
PWDoupassworddéfini à la valeur de votre jeton d’accès personnel Databricks
Consultez les propriétés d’authentification.
Dans une URL de connexion JDBC :
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=3;UID=token;PWD=<personal-access-token>
Dans le code 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);
// ...