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.
Important
Cette fonctionnalité est en préversion publique dans les régions suivantes : westus, , westus2eastuseastus2, , centralus, southcentralus, , northeuropewesteurope, , australiaeastbrazilsouth, , canadacentral, centralindia, , . southeastasiauksouth
Cette page explique comment s’authentifier auprès d’une instance de base de données Lakebase. Il existe deux façons de s’authentifier :
- Obtenez un jeton OAuth et authentifiez-vous à l’aide d’identités Azure Databricks.
- Utilisez des rôles Postgres natifs avec des mots de passe.
S’authentifier avec des identités Azure Databricks
Lorsque vous vous authentifiez en tant qu’identité Azure Databricks, vous devez générer un jeton OAuth et l’utiliser comme mot de passe lors de la connexion à Postgres.
Considérations avant de commencer
Les jetons OAuth expirent après une heure, mais l’expiration est appliquée uniquement lors de la connexion. Les connexions ouvertes restent actives même si le jeton expire. Toutefois, toute commande PostgreSQL qui nécessite une authentification échoue si le jeton a expiré.
Les jetons OAuth utilisés pour l’authentification Postgres sont délimités à l’espace de travail et doivent appartenir au même espace de travail que celui qui possède l’instance de base de données. L’authentification par jeton entre espaces de travail n’est pas prise en charge. Pour en savoir plus sur l’authentification, consultez Authentification pour l’interface CLI Databricks.
L’authentification basée sur les jetons nécessite un mot de passe en texte clair. Par conséquent, seules les connexions SSL sont autorisées. Vérifiez que la bibliothèque cliente que vous utilisez pour accéder à Postgres avec l’authentification basée sur des jetons est configurée pour établir une connexion SSL.
Obtenir un jeton OAuth dans un flux utilisateur à machine
Si vous êtes propriétaire de base de données, administrateur ou votre identité Azure Databricks a un rôle Postgres correspondant pour l’instance de base de données, vous pouvez obtenir un jeton OAuth à partir de l’interface utilisateur, de l’interface CLI Databricks ou de l’un des kits SDK Databricks. Vous pouvez restreindre l’étendue du jeton de manière appropriée à l’aide de l’interface CLI Databricks.
Pour les autres utilisateurs d’identité Azure Databricks, consultez Autoriser l’accès utilisateur à Azure Databricks avec OAuth pour obtenir des jetons OAuth au niveau de l’espace de travail.
IU
Lorsque l’état de votre instance de base de données est disponible, utilisez l’interface utilisateur Azure Databricks pour obtenir un jeton OAuth :
- Cliquez sur Calculer dans la barre latérale de l’espace de travail, puis sur l’onglet Lakebase provisionné.
- Recherchez et cliquez sur le nom de l’instance de base de données pour laquelle vous souhaitez obtenir un jeton OAuth.
- Cliquez sur l’onglet Détails de la connexion.
- Cliquez sur Obtenir le jeton OAuth. Un indicateur indique quand le jeton a été créé.
- Cliquez sur Copier OAuthToken pour copier le jeton dans votre Presse-papiers.
Interface de ligne de commande (CLI)
Lorsque l’état de votre instance de base de données est disponible, utilisez l’interface CLI Databricks v0.256.0 et versions ultérieures pour obtenir un jeton OAuth :
- Utilisez la commande suivante pour récupérer un jeton.
databricks database generate-database-credential \ --request-id $(uuidgen) \ --json '{ "instance_names": ["db-instance-name"] }' - Cela génère une réponse au format suivant. Copiez le
tokende la réponse.{ "expiration_time": "2025-08-24T14:15:22Z", "token": "<string>" }
Pour plus d’informations sur l’utilisation de l’interface CLI Databricks pour obtenir un jeton OAuth, consultez l’authentification utilisateur à machine OAuth (U2M).
Kit de développement logiciel (SDK) Python
Vous pouvez générer un jeton OAuth à l’aide du Kit de développement logiciel (SDK) Databricks pour Python. Les liaisons du Kit de développement logiciel (SDK) Azure Databricks sont disponibles dans le Kit de développement logiciel (SDK) Databricks pour Python version v0.56.0.
Si vous exécutez avec une version antérieure du Kit de développement logiciel (SDK), exécutez d’abord ces commandes.
%pip install --upgrade databricks-sdk
%restart_python
Le Kit de développement logiciel (SDK) Databricks pour Python génère un jeton OAuth sécurisé, credpour votre instance de base de données. Entrez vos informations d’identification si nécessaire.
from databricks.sdk import WorkspaceClient
import uuid
w = WorkspaceClient()
instance_name = "<YOUR INSTANCE>"
cred = w.database.generate_database_credential(request_id=str(uuid.uuid4()), instance_names=[instance_name])
Kit de développement logiciel (SDK) Java
Vous pouvez générer un jeton OAuth à l’aide du Kit de développement logiciel (SDK) Databricks pour Java. Les liaisons du Kit de développement logiciel (SDK) de base de données sont disponibles dans le Kit de développement logiciel (SDK) Databricks pour Java version v0.53.0 ou ultérieure. Si vous exécutez avec une version antérieure du Kit de développement logiciel (SDK), vous devrez peut-être actualiser le SDK importé. Vous pourrez trouver plus d’informations ici.
%scala
import com.databricks.sdk.WorkspaceClient
import com.databricks.sdk.service.database.GetDatabaseInstanceRequest
import com.databricks.sdk.service.database.GenerateDatabaseCredentialRequest
import com.databricks.sdk.service.database.DatabaseInstance
import com.databricks.sdk.service.database.DatabaseCredential
import java.util.Collections
import java.util.UUID
val w = new WorkspaceClient()
val instanceName = "<YOUR INSTANCE>"
// Generate database credential
val cred = w.database().generateDatabaseCredential(
new GenerateDatabaseCredentialRequest()
.setRequestId(UUID.randomUUID().toString())
.setInstanceNames(Collections.singletonList(instanceName))
)
// Print out credential details
System.out.println("Credential: " + cred.getToken())
Obtenir un jeton OAuth dans un flux machine à machine
Pour activer l’accès sécurisé et automatisé (machine à ordinateur) à l’instance de base de données, vous devez obtenir un jeton OAuth à l’aide d’un principal de service Azure Databricks. Ce processus implique la configuration du principal de service, la génération d’informations d’identification et la frappe de jetons OAuth pour l’authentification.
Configurez un principal de service avec des informations d’identification valides indéfiniment. Pour obtenir des instructions, consultez Autoriser l’accès du principal de service à Azure Databricks avec OAuth.
Créez des jetons OAuth en tant que principal de service.
Interface de ligne de commande (CLI)
Lorsque l’état de votre instance de base de données est disponible, utilisez l’interface CLI Databricks v0.256.0 et versions ultérieures pour obtenir un jeton OAuth :
Utilisez la commande suivante pour récupérer un jeton.
databricks database generate-database-credential \ --request-id $(uuidgen) \ --json '{ "instance_names": ["db-instance-name"] }'Cela génère une réponse au format suivant. Copiez le
tokende la réponse.{ "expiration_time": "2025-08-24T14:15:22Z", "token": "<string>" }
Kit de développement logiciel (SDK) Python
Vous pouvez générer un jeton OAuth à l’aide du Kit de développement logiciel (SDK) Databricks pour Python. Les liaisons du Kit de développement logiciel (SDK) Azure Databricks sont disponibles dans le Kit de développement logiciel (SDK) Databricks pour Python version v0.56.0.
Si vous exécutez avec une version antérieure du Kit de développement logiciel (SDK), exécutez d’abord ces commandes.
%pip install --upgrade databricks-sdk %restart_pythonLe Kit de développement logiciel (SDK) Databricks pour Python génère un jeton OAuth sécurisé,
credpour votre instance de base de données. Entrez le nom de votre instance de base de données si nécessaire.from databricks.sdk import WorkspaceClient import uuid w = WorkspaceClient( host = "https://<YOUR WORKSPACE URL>/", client_id = "<YOUR SERVICE PRINCIPAL ID>", client_secret = "REDACTED" ) instance_name = "<YOUR INSTANCE>" cred = w.database.generate_database_credential(request_id=str(uuid.uuid4()), instance_names=[instance_name])Kit de développement logiciel (SDK) Java
Vous pouvez générer un jeton OAuth à l’aide du Kit de développement logiciel (SDK) Databricks pour Java. Les liaisons du Kit de développement logiciel (SDK) de base de données sont disponibles dans le Kit de développement logiciel (SDK) Databricks pour Java version v0.53.0 ou ultérieure. Si vous exécutez avec une version antérieure du SDK, vous devrez peut-être effectuer une mise à jour vers un sdk plus récent. Vous pourrez trouver plus d’informations ici.
%scala import com.databricks.sdk.WorkspaceClient import com.databricks.sdk.core.DatabricksConfig import com.databricks.sdk.service.database.GetDatabaseInstanceRequest import com.databricks.sdk.service.database.GenerateDatabaseCredentialRequest import com.databricks.sdk.service.database.DatabaseInstance import com.databricks.sdk.service.database.DatabaseCredential import java.util.Collections import java.util.UUID val config = new DatabricksConfig() // See https://github.com/databricks/databricks-sdk-java#authentication val w = new WorkspaceClient(config) val instanceName = "<YOUR INSTANCE>" // Generate database credential val cred = w.database().generateDatabaseCredential( new GenerateDatabaseCredentialRequest() .setRequestId(UUID.randomUUID().toString()) .setInstanceNames(Collections.singletonList(instanceName)) ) // Print out credential details System.out.println("Credential: " + cred.getToken())
Note
Faire pivoter les jetons OAuth avant l’expiration horaire :
- Vérifiez l’heure d’expiration du jeton OAuth sur chaque utilisation et actualisez si nécessaire.
- Vous pouvez également configurer un thread d’arrière-plan pour actualiser régulièrement le jeton OAuth actuel.
Résoudre les problèmes d'identification de jeton
Si l’identité de votre jeton ne correspond pas à l’étiquette de sécurité, vous pouvez recevoir un message d’erreur comme suit.
A valid oauth token was supplied but the token's identity "<USER>" did not match the security label configured for role "<SERVICE PRINCIPAL>". Please ensure that the token is generated for the correct databricks identity.
Exécutez la commande suivante pour vérifier l’identité Azure Databricks retournée :
Interface de ligne de commande (CLI)
databricks current-user me
Kit de développement logiciel (SDK) Python
w.current_user.me().user_name
Kit de développement logiciel (SDK) Java
w.currentUser.me().getUserName()
Si l’identité attendue n’est pas retournée, vérifiez que les informations d’identification appropriées ont été utilisées lors de l’initialisation du client d’espace de travail.
S’authentifier avec l’ID Microsoft Entra
Pour Azure Databricks, les identités et jetons d’ID Microsoft Entra peuvent également être utilisées pour s’authentifier auprès des API Azure Databricks. Utilisez ces API pour obtenir un jeton pour s’authentifier auprès de Postgres.
Consultez Gérer les utilisateurs, les principaux de service et les groupes pour savoir comment gérer les identités managées d’ID Microsoft Entra dans Azure Databricks. Les utilisateurs, les groupes et les principaux de service de Microsoft Entra ID peuvent être créés dans Azure Databricks. Une fois ces identités ajoutées à Azure Databricks, vous pouvez les ajouter à l’instance de base de données comme décrit dans Gérer les rôles Postgres.
Pour récupérer des jetons d’ID Microsoft Entra, consultez les rubriques suivantes :
- Obtenez des jetons d’ID Microsoft Entra pour les utilisateurs.
- Obtenir des jetons Microsoft Entra ID pour les entités de service
S’authentifier en tant que groupe Azure Databricks
Les groupes et les appartenances aux groupes ne sont pas synchronisés à partir d’Azure Databricks dans Postgres et ni les autorisations du catalogue Unity. Toutefois, une fois qu’un groupe Azure Databricks est ajouté à Postgres, tout utilisateur Azure Databricks du groupe peut se connecter en tant que groupe à l’aide du mot de passe de l’utilisateur. Cela vous permet de gérer les autorisations au niveau du groupe dans Postgres. Tout membre direct ou indirect (utilisateur ou principal de service) de l’identité de groupe Azure Databricks peut s’authentifier auprès de Postgres et se connecter en tant que rôle Postgres du groupe Azure Databricks.
Lors de l’authentification en tant qu’identité de groupe à l’aide d’un jeton d’utilisateur ou de principal de service, l’appartenance au groupe est validée uniquement au moment de l’authentification. Toute connexion ouverte avec un jeton de membre de groupe reste ouverte si le membre est supprimé du groupe après l’authentification. Toute nouvelle demande de connexion d’un membre de groupe supprimé est rejetée pendant l’authentification.
export PGPASSWORD='<OAuth token of a group member>'
export GROUPROLENAME=<pg-case-sensitive-group-role-name>
psql -h $HOSTNAME -p 5432 -d databricks_postgres -U $GROUPROLENAME
Seuls les groupes affectés à l’espace de travail Azure Databricks de l’instance de base de données sont pris en charge pour la connexion Postgres basée sur un groupe. Pour savoir comment affecter un groupe à un espace de travail, consultez Affecter un groupe à un espace de travail.
S’authentifier avec les rôles et mots de passe Postgres
Si vous avez des clients qui ne prennent pas en charge la rotation des informations d’identification après une heure, vous pouvez créer des rôles Postgres natifs avec des mots de passe :
Cliquez sur Calcul dans la barre latérale de l’espace de travail.
Cliquez sur l’onglet Instances de base de données .
Sélectionnez l’instance de base de données à mettre à jour.
Cliquez sur Modifier en haut à droite.
Activez la connexion de rôle natif Postgres.
Cliquez sur Enregistrer.
Connectez-vous à Postgres ou utilisez l’Éditeur SQL pour créer un rôle avec un mot de passe.
CREATE ROLE new_role LOGIN PASSWORD 'your strong password';Accordez des autorisations Postgres supplémentaires au nouveau rôle. Consultez accorder des privilèges aux rôles Postgres à l’aide de PostgreSQL.
Étapes suivantes
Après avoir obtenu des informations d’identification (jeton OAuth ou mot de passe), vous pouvez vous connecter à votre instance de base de données :