Partage via


Autoriser l’accès interactif aux ressources Azure Databricks avec un compte d’utilisateur à l’aide d’OAuth

Cette rubrique fournit des étapes et des détails pour autoriser l’accès aux ressources Azure Databricks lors de l’exécution interactive des commandes CLI Azure Databricks ou de l’appel d’API REST Azure Databricks.

Azure Databricks utilise OAuth comme protocole préféré pour l’autorisation et l’authentification utilisateur lors de l’interaction avec les ressources Azure Databricks en dehors de l’interface utilisateur. Azure Databricks fournit également l’outil d’authentification client unifié pour automatiser l’actualisation des jetons d’accès générés dans le cadre de la méthode d’authentification d’OAuth.

Pour plus d’informations générales, consultez Autoriser l’accès aux ressources Azure Databricks.

Quelles sont mes options d’autorisation et d’authentification lors de l’accès aux ressources Azure Databricks ?

Dans cette rubrique, autorisation fait référence au protocole (OAuth) utilisé pour négocier l’accès à des ressources Azure Databricks spécifiques via une délégation. l’authentification fait référence au mécanisme par lequel les informations d’identification sont représentées, transmises et vérifiées, qui, dans ce cas, sont des jetons d’accès .

Azure Databricks utilise l’autorisation basée sur OAuth 2.0 pour permettre l’accès aux ressources de compte et d’espace de travail Azure Databricks depuis la ligne de commande ou du code pour le compte d’un utilisateur disposant des autorisations nécessaires pour accéder à ces ressources. Une fois que l’utilisateur s’est connecté et a donné son consentement à la demande d’authentification OAuth, un jeton OAuth est donné à l’outil ou au kit de développement logiciel (SDK) participant pour effectuer l’authentification basée sur les jetons au nom de l’utilisateur à partir de ce moment-là. Le jeton d’accès OAuth a une durée de vie d’une heure, après laquelle l’outil ou le Kit de développement logiciel (SDK) impliqué effectue une tentative automatique d’arrière-plan pour obtenir un nouveau jeton qui est également valide pendant une heure.

Azure Databricks prend en charge deux façons d’autoriser l’accès pour un compte d’utilisateur avec OAuth :

  • Principalement automatiquement, avec la prise en charge de l’authentification client unifiée Databricks. Utilisez cette approche simplifiée si vous utilisez des outils et des SDK Azure Databricks spécifiques (comme le SDK Databricks Terraform). Les outils et SDK pris en charge sont répertoriés dans Authentification client unifiée Databricks.
  • Manuellement, en générant directement un vérificateur de code OAuth/une paire de vérificateur et un code d’autorisation, et en les utilisant pour créer le jeton OAuth initial que vous fournirez dans votre configuration. Utilisez cette approche si vous n’utilisez pas d’API prise en charge par l’authentification client unifiée Databricks. Pour plus d’informations, consultez :Générer manuellement et utiliser des jetons d’accès pour l’authentification utilisateur à machine (U2M) OAuth.

Autorisation utilisateur interactive avec l'authentification unifiée du client Databricks

Remarque

Avant de commencer à configurer votre autorisation, passez en revue les autorisations de liste de contrôle d’accès pour la catégorie spécifique d’opérations que vous effectuerez sur les objets d’espace de travail et déterminez si votre compte a le niveau d’accès dont vous avez besoin. Pour plus de détails, consultez Listes de contrôle d'accès.

Pour effectuer une autorisation OAuth avec des kits de développement logiciel (SDK) Azure Databricks et des outils qui prennent en charge l’authentification client unifiée, intégrez ce qui suit dans votre code :

Environment

Pour utiliser des variables d’environnement pour un type d’authentification Azure Databricks spécifique avec un outil ou un Kit de développement logiciel (SDK), consultez autoriser l’accès aux ressources Azure Databricks ou à la documentation de l’outil ou du Kit de développement logiciel (SDK). Consultez également Variables et champs d’environnement pour l’authentification unifiée du client et Méthodes par défaut pour l’authentification unifiée du client.

Pour les opérations au niveau du compte, définissez les variables d’environnement suivantes :

  • DATABRICKS_HOST, défini sur la valeur de l’URL de la console de votre compte Azure Databricks, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID

Pour les opérations au niveau de l’espace de travail, définissez les variables d’environnement suivantes :

  • DATABRICKS_HOST, défini sur la valeur de votre URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

Profil

Créez ou identifiez un profil de configuration Azure Databricks avec les champs suivants dans votre fichier .databrickscfg. Si vous créez le profil, remplacez les espaces réservés par les valeurs appropriées. Pour utiliser le profil avec un outil ou un SDK, consultez Autoriser l’accès aux ressources Azure Databricks ou la documentation de l’outil ou du SDK. Consultez également Variables et champs d’environnement pour l’authentification unifiée du client et Méthodes par défaut pour l’authentification unifiée du client.

Pour les opérations au niveau du compte, définissez les valeurs suivantes dans votre fichier .databrickscfg. Dans ce cas, l’URL de la console de compte Azure Databricks est https://accounts.azuredatabricks.net :

[<some-unique-configuration-profile-name>]
host       = <account-console-url>
account_id = <account-id>

Pour les opérations au niveau de l’espace de travail, définissez les valeurs suivantes dans votre fichier .databrickscfg. Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net :

[<some-unique-configuration-profile-name>]
host = <workspace-url>

INTERFACE DE LIGNE DE COMMANDE

Pour l’interface CLI Databricks, exécutez la commande databricks auth login avec les options suivantes :

Après avoir exécuté cette commande, suivez les instructions de votre navigateur web pour vous connecter à votre compte ou à votre espace de travail Azure Databricks.

Pour plus d’informations, consultez Autorisation OAuth avec l’interface CLI Databricks.

Connexion

Remarque

L’authentification U2M OAuth est prise en charge sur les versions de Databricks Connect suivantes :

  • Pour Python, Databricks Connect pour Databricks Runtime 13.1 et versions ultérieures.
  • Pour Scala, Databricks Connect pour Databricks Runtime 13.3 LTS et ultérieur.

Pour Databricks Connect, vous pouvez effectuer une des opérations suivantes :

  • Définissez les valeurs de votre fichier .databrickscfg pour les opérations au niveau de l’espace de travail Azure Databricks comme spécifié dans la section « Profil » de cet article. Définissez également la variable d’environnement cluster_id dans votre profil sur votre URL par espace de travail, par exemple https://adb-1234567890123456.7.azuredatabricks.net.
  • Définissez les variables d’environnement pour les opérations au niveau de l’espace de travail Azure Databricks, comme spécifié dans la section « Environnement » de cet article. Définissez également la variable d’environnement DATABRICKS_CLUSTER_ID sur votre URL par espace de travail, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

Les valeurs de votre fichier .databrickscfg sont toujours prioritaires sur les variables d’environnement.

Pour initialiser le client Databricks Connect avec ces variables d’environnement ou valeurs dans votre .databrickscfg fichier, consultez Configuration de calcul pour Databricks Connect.

VS Code

Pour l’extension Databricks pour Visual Studio Code, procédez comme suit :

  1. Dans le volet Configuration, cliquez sur Configurer Databricks.
  2. Dans la palette de commandes, pour Hôte Databricks, entrez votre URL par espace de travail, par exemple https://adb-1234567890123456.7.azuredatabricks.net, puis appuyez sur Enter.
  3. Sélectionnez OAuth (utilisateur à machine).
  4. Suivez les instructions à l’écran dans votre navigateur web pour terminer l’authentification avec votre compte Azure Databricks et autoriser l’accès à all-apis.

Pour plus d’informations, consultez Autorisation U2M OAuth avec l’interface CLI Databricks.

Terraform

Pour les opérations aux niveaux du compte et de l’espace de travail , vous devez utiliser l'interface CLI Databricks pour exécuter la commande suivante avant d’appliquer votre configuration Terraform. Cette commande indique à l’interface CLI Databricks de générer et de mettre en cache le jeton OAuth nécessaire dans le chemin d’accès .databricks/token-cache.json dans le dossier de base de votre utilisateur sur votre ordinateur :

Configuration pour les opérations au niveau du compte Databricks

databricks auth login --host <account-console-url> --account-id <account-id>

Remplacez les espaces réservés suivants :

  • Remplacez <account-console-url> par la valeur https://accounts.azuredatabricks.net. (Ne définissezpas cette valeur sur la valeur de l’URL de votre espace de travail Azure Databricks.)
  • Remplacez <account-id> par la valeur de votre compte Azure Databricks. Consultez Localiser votre ID de compte.

Remarque

Si vous disposez déjà d’un profil de configuration Azure Databricks avec les champs host et account_id déjà définis, vous pouvez remplacer --host <account-console-url> --account-id <account-id> par --profile <profile-name>.

Après avoir exécuté la commande auth login, vous êtes invité à enregistrer l’URL de connexion du compte et l’ID de compte en tant que profil de configuration Azure Databricks. Quand vous y êtes invité, entrez le nom d’un profil nouveau ou existant dans votre fichier .databrickscfg. Tout profil existant portant le même nom dans votre fichier .databrickscfg est remplacé.

Si vous y êtes invité, suivez les instructions sur l’écran de votre navigateur web pour établir la connexion. Utilisez ensuite le code Terraform similaire à l’un des extraits de code suivants :

Pour l’authentification par défaut :

provider "databricks" {
  alias = "account"
}

Pour une configuration directe, définissez la provider à l’aide de la configuration suivante. Remplacez les espaces réservés retrieve- par votre propre implémentation afin de récupérer les valeurs auprès de la console ou d’un autre magasin de configuration, comme HashiCorp Vault. Consultez également Fournisseur de coffres. Dans cet exemple, vous pouvez définir account_id comme l'URL de la console de votre compte Azure Databricks .

provider "databricks" {
  alias      = "account"
  host       = <retrieve-account-console-url>
  account_id = <retrieve-account-id>
}

Configuration pour les opérations au niveau de l’espace de travail Azure Databricks

databricks auth login --host <workspace-url>

Remplacez l’espace réservé <workspace-url> par l’URL de l’espace de travail Azure Databricks cible, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

Remarque

Si vous disposez déjà d’un profil de configuration Azure Databricks avec le champ host déjà défini, vous pouvez remplacer --host <workspace-url> par --profile <profile-name>.

Après avoir exécuté la commande auth login, vous êtes invité à enregistrer l’URL de l’espace de travail en tant que profil de configuration Azure Databricks. Quand vous y êtes invité, entrez le nom d’un profil nouveau ou existant dans votre fichier .databrickscfg. Tout profil existant portant le même nom dans votre fichier .databrickscfg est remplacé.

Si vous y êtes invité, suivez les instructions sur l’écran de votre navigateur web pour établir la connexion. Utilisez ensuite le code Terraform similaire à l’un des extraits de code suivants :

Pour l’authentification par défaut :

  provider "databricks" {
  alias = "workspace"
}

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs auprès de la console ou d’un autre magasin de configuration comme HashiCorp Vault). Consultez également Fournisseur de coffres. Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net :

provider "databricks" {
  alias = "workspace"
  host  = <retrieve-workspace-url>
}

Pour plus d’informations sur l’authentification avec le fournisseur Databricks Terraform, consultez Authentification.

Python

Pour les opérations au niveau du compte et au niveau de l’espace de travail, vous devez utiliser l’interface CLI Databricks pour exécuter la commande suivante avant d’exécuter votre code Python. Cette commande indique à l’interface CLI Databricks de générer et de mettre en cache le jeton OAuth nécessaire dans le chemin d’accès .databricks/token-cache.json dans le dossier de base de votre utilisateur sur votre ordinateur :

Configuration pour les opérations au niveau du compte Databricks

databricks auth login --host <account-console-url> --account-id <account-id>

Remplacez les espaces réservés suivants :

  • Remplacez <account-console-url> par la valeur https://accounts.azuredatabricks.net. (Ne définissezpas cette valeur sur la valeur de l’URL de votre espace de travail Azure Databricks.)
  • Remplacez <account-id> par la valeur de votre compte Azure Databricks. Consultez Localiser votre ID de compte.

Remarque

Si vous disposez déjà d’un profil de configuration Azure Databricks avec les champs host et account_id déjà définis, vous pouvez remplacer --host <account-console-url> --account-id <account-id> par --profile <profile-name>.

Après avoir exécuté la commande auth login, vous êtes invité à enregistrer l’URL de connexion du compte et l’ID de compte en tant que profil de configuration Azure Databricks. Quand vous y êtes invité, entrez le nom d’un profil nouveau ou existant dans votre fichier .databrickscfg. Tout profil existant portant le même nom dans votre fichier .databrickscfg est remplacé.

Si vous y êtes invité, suivez les instructions sur l’écran de votre navigateur web pour établir la connexion. Utilisez ensuite du code Python similaire à un des extraits de code suivants :

Pour l'autorisation par défaut à l’aide de l’authentification client unifiée Databricks:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’URL de la console de compte Azure Databricks est https://accounts.azuredatabricks.net :

from databricks.sdk import AccountClient

a = AccountClient(
  host       = retrieveAccountConsoleUrl(),
  account_id = retrieveAccountId()
)
# ...

Configuration pour les opérations au niveau de l’espace de travail Azure Databricks

databricks auth login --host <worskpace-url>

Remplacez l’espace réservé <workspace-url> par l’URL de l’espace de travail Azure Databricks cible, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

Remarque

Si vous disposez déjà d’un profil de configuration Azure Databricks avec le champ host déjà défini, vous pouvez remplacer --host <workspace-url> par --profile <profile-name>.

Après avoir exécuté la commande auth login, vous êtes invité à enregistrer l’URL de l’espace de travail en tant que profil de configuration Azure Databricks. Quand vous y êtes invité, entrez le nom d’un profil nouveau ou existant dans votre fichier .databrickscfg. Tout profil existant portant le même nom dans votre fichier .databrickscfg est remplacé.

Si vous y êtes invité, suivez les instructions sur l’écran de votre navigateur web pour établir la connexion. Utilisez ensuite du code Python similaire à un des extraits de code suivants :

Pour l'autorisation par défaut à l'aide de l'authentification client unifiée Databricks:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net :

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(host = retrieveWorkspaceUrl())
# ...

Pour plus d’informations sur l’authentification avec les outils et les kits de développement logiciel (SDK) Databricks qui utilisent Python et qui implémentent l’Authentification unifiée du client Databricks, consultez :

Java

Pour les opérations au niveau du compte et au niveau de l’espace de travail, vous devez utiliser l’interface CLI Databricks pour exécuter la commande suivante avant d’exécuter votre code Java. Cette commande indique à l’interface CLI Databricks de générer et de mettre en cache le jeton OAuth nécessaire dans le chemin d’accès .databricks/token-cache.json dans le dossier de base de votre utilisateur sur votre ordinateur :

Configuration pour les opérations au niveau du compte Databricks

databricks auth login --host <account-console-url> --account-id <account-id>

Remplacez les espaces réservés suivants :

  • Remplacez <account-console-url> par la valeur https://accounts.azuredatabricks.net. (Ne définissezpas cette valeur sur la valeur de l’URL de votre espace de travail Azure Databricks.)
  • Remplacez <account-id> par la valeur de votre compte Azure Databricks. Consultez Localiser votre ID de compte.

Remarque

Si vous disposez déjà d’un profil de configuration Azure Databricks avec les champs host et account_id déjà définis, vous pouvez remplacer --host <account-console-url> --account-id <account-id> par --profile <profile-name>.

Après avoir exécuté la commande auth login, vous êtes invité à enregistrer l’URL de connexion du compte et l’ID de compte en tant que profil de configuration Azure Databricks. Quand vous y êtes invité, entrez le nom d’un profil nouveau ou existant dans votre fichier .databrickscfg. Tout profil existant portant le même nom dans votre fichier .databrickscfg est remplacé.

Si vous y êtes invité, suivez les instructions sur l’écran de votre navigateur web pour établir la connexion. Utilisez ensuite du code Java similaire à un des extraits de code suivants :

Pour l'autorisation par défaut en utilisant l'authentification client unifiée Databricks:

import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’URL de la console de compte Azure Databricks est https://accounts.azuredatabricks.net :

import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveAccountConsoleUrl())
  .setAccountId(retrieveAccountId());
AccountClient a = new AccountClient(cfg);
// ...

Configuration pour les opérations au niveau de l’espace de travail Azure Databricks

Pour les opérations au niveau de l’espace de travail, vous devez d’abord utiliser l’interface CLI Databricks pour exécuter la commande suivante avant d’exécuter votre code Java. Cette commande indique à l’interface CLI Databricks de générer et de mettre en cache le jeton OAuth nécessaire dans le chemin d’accès .databricks/token-cache.json dans le dossier de base de votre utilisateur sur votre ordinateur :

databricks auth login --host <worskpace-url>

Remplacez l’espace réservé <workspace-url> par l’URL de l’espace de travail Azure Databricks cible, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

Remarque

Si vous disposez déjà d’un profil de configuration Azure Databricks avec le champ host déjà défini, vous pouvez remplacer --host <workspace-url> par --profile <profile-name>.

Après avoir exécuté la commande auth login, vous êtes invité à enregistrer l’URL de l’espace de travail en tant que profil de configuration Azure Databricks. Quand vous y êtes invité, entrez le nom d’un profil nouveau ou existant dans votre fichier .databrickscfg. Tout profil existant portant le même nom dans votre fichier .databrickscfg est remplacé.

Si vous y êtes invité, suivez les instructions sur l’écran de votre navigateur web pour établir la connexion. Utilisez ensuite du code Java similaire à un des extraits de code suivants :

Pour l’autorisation par défaut en utilisant l’authentification client unifiée de Databricks :

import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net :

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveWorkspaceUrl())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

Pour plus d'informations sur l'autorisation et l'authentification avec les outils et kits SDK de Databricks qui utilisent Java et implémentent l'authentification unifiée du client Databricks, consultez :

Go

Pour les opérations au niveau du compte et au niveau de l’espace de travail, vous devez utiliser l’interface CLI Databricks pour exécuter la commande suivante avant d’exécuter votre code Go. Cette commande indique à l’interface CLI Databricks de générer et de mettre en cache le jeton OAuth nécessaire dans le chemin d’accès .databricks/token-cache.json dans le dossier de base de votre utilisateur sur votre ordinateur :

Configuration pour les opérations au niveau du compte Databricks

databricks auth login --host <account-login-url> --account-id <account-id>

Remplacez les espaces réservés suivants :

  • Remplacez <account-console-url> par la valeur https://accounts.azuredatabricks.net. (Ne définissezpas cette valeur sur la valeur de l’URL de votre espace de travail Azure Databricks.)
  • Remplacez <account-id> par la valeur de votre compte Azure Databricks. Consultez Localiser votre ID de compte.

Remarque

Si vous disposez déjà d’un profil de configuration Azure Databricks avec les champs host et account_id déjà définis, vous pouvez remplacer --host <account-console-url> --account-id <account-id> par --profile <profile-name>.

Après avoir exécuté la commande auth login, vous êtes invité à enregistrer l’URL de connexion du compte et l’ID de compte en tant que profil de configuration Azure Databricks. Quand vous y êtes invité, entrez le nom d’un profil nouveau ou existant dans votre fichier .databrickscfg. Tout profil existant portant le même nom dans votre fichier .databrickscfg est remplacé.

Si vous y êtes invité, suivez les instructions sur l’écran de votre navigateur web pour établir la connexion. Utilisez ensuite du code Go similaire à un des extraits de code suivants :

Pour l’autorisation par défaut en utilisant l’authentification client unifiée de Databricks :

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’URL de la console de compte Azure Databricks est https://accounts.azuredatabricks.net :

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:      retrieveAccountConsoleUrl(),
  AccountId: retrieveAccountId(),
}))
// ...

Configuration pour les opérations au niveau de l’espace de travail Azure Databricks

Pour les opérations au niveau de l’espace de travail, vous devez d’abord utiliser l’interface CLI Databricks pour exécuter la commande suivante avant d’exécuter votre code Go. Cette commande indique à l’interface CLI Databricks de générer et de mettre en cache le jeton OAuth nécessaire dans le chemin d’accès .databricks/token-cache.json dans le dossier de base de votre utilisateur sur votre ordinateur :

databricks auth login --host <worskpace-url>

Remplacez l’espace réservé <workspace-url> par l’URL de l’espace de travail Azure Databricks cible, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

Remarque

Si vous disposez déjà d’un profil de configuration Azure Databricks avec le champ host déjà défini, vous pouvez remplacer --host <workspace-url> par --profile <profile-name>.

Après avoir exécuté la commande auth login, vous êtes invité à enregistrer l’URL de l’espace de travail en tant que profil de configuration Azure Databricks. Quand vous y êtes invité, entrez le nom d’un profil nouveau ou existant dans votre fichier .databrickscfg. Tout profil existant portant le même nom dans votre fichier .databrickscfg est remplacé.

Si vous y êtes invité, suivez les instructions sur l’écran de votre navigateur web pour établir la connexion. Utilisez ensuite du code Go similaire à un des extraits de code suivants :

Pour l’authentification par défaut :

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net :

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host: retrieveWorkspaceUrl(),
}))
// ...

Pour plus d’informations sur l’authentification avec les outils et les kits de développement logiciel (SDK) Databricks qui utilisent Go et qui implémentent l’Authentification unifiée du client Databricks, consultez Authentifier le kit de développement logiciel (SDK) Databricks pour Go avec votre compte ou votre espace de travail Azure Databricks.

Générer manuellement et utiliser des jetons d’accès pour l’authentification utilisateur à machine (U2M) OAuth

Remarque

Cette section est fournie aux utilisateurs disposant d’outils ou de services tiers qui ne fonctionnent pas avec la norme d’authentification unifiée du client Databricks.

Si pour une raison quelconque, vous devez générer, actualiser ou utiliser des jetons d’accès OAuth Azure Databricks pour l’authentification U2M OAuth, suivez les instructions de cette section.

Étape 1 : Générer une paire vérificateur de code et test de code OAuth

Pour générer et utiliser manuellement des jetons d’accès pour l’authentification U2M OAuth, vous devez d’abord avoir un vérificateur de code OAuth et un test de code OAuth qui est dérivée du vérificateur de code. Vous utilisez le test de code à l’étape 2, pour générer un code d’autorisation OAuth. Vous utilisez le vérificateur de code et le code d’autorisation à l’étape 3, pour générer le jeton d’accès OAuth.

Remarque

Bien qu’il soit techniquement possible d’utiliser des chaînes de texte brut non codées pour le vérificateur de code et le test de code, Databricks encourage fortement à suivre au lieu de cela la norme OAuth pour générer le vérificateur de code et le test de code.

Plus précisément, le vérificateur de code doit être une chaîne aléatoire par chiffrement utilisant des caractères des ensembles A-Z, a-z et 0-9, et les signes de ponctuation -._~ (trait d’union, point, trait de soulignement et tilde), d’une longueur comprise entre 43 et 128 caractères. Le test de code doit être une chaîne codée sous forme d’URL en Base64 du hachage SHA256 du vérificateur de code. Pour plus d’informations, consultez Demande d’autorisation.

Vous pouvez exécuter le script Python suivant pour générer rapidement une paire unique de vérificateur de code et de test de code. Même si vous pouvez réutiliser cette paire de vérificateur de code et de test de code générée plusieurs fois, Databricks vous recommande de générer une nouvelle paire de vérificateur de code et de test de code chaque fois que vous générez manuellement des jetons d’accès pour l’authentification U2M OAuth.

import uuid, hashlib, base64

# Generate a UUID.
uuid1 = uuid.uuid4()

# Convert the UUID to a string.
uuid_str1 = str(uuid1).upper()

# Create the code verifier.
code_verifier = uuid_str1 + "-" + uuid_str1

# Create the code challenge based on the code verifier.
code_challenge = base64.urlsafe_b64encode(hashlib.sha256(code_verifier.encode()).digest()).decode('utf-8')

# Remove all padding from the code challenge.
code_challenge = code_challenge.replace('=', '')

# Print the code verifier and the code challenge.
# Use these in your calls to manually generate
# access tokens for OAuth U2M authentication.
print(f"code_verifier:  {code_verifier}")
print(f"code_challenge: {code_challenge}")

Étape 2 : Générer un code d’autorisation

Vous utilisez un code d’autorisation OAuth pour générer un jeton d’accès OAuth Azure Databricks. Le code d’autorisation expire immédiatement après que vous l’avez utilisé pour générer un jeton d’accès OAuth Azure Databricks. L’étendue du code d’autorisation dépend du niveau à partir duquel vous le générez. Vous pouvez générer un code d’autorisation au niveau du compte ou au niveau de l’espace de travail Azure Databricks, comme suit :

Générer un code d’autorisation au niveau du compte

  1. En tant qu’administrateur de compte, connectez-vous à la console de compte.

  2. Cliquez sur la flèche vers le bas à côté de votre nom d’utilisateur en haut à droite.

  3. Copiez votre ID de compte.

  4. Dans la barre d’adresse de votre navigateur web, accédez à l’URL suivante. Des sauts de ligne ont été ajoutés pour des raisons de lisibilité. Votre URL ne doit pas contenir ces sauts de ligne.

    Dans l’URL suivante, faites les remplacements suivants :

    • Remplacez <account-id> par l’ID de compte que vous avez copié.
    • Remplacez <redirect-url> par une URL de redirection vers votre machine locale, par exemple http://localhost:8020.
    • Remplacez <state> par une chaîne de texte brut que vous pouvez utiliser pour vérifier l’intégrité du code d’autorisation.
    • Remplacez <code-challenge> par le test de code que vous avez généré à l’étape 1.
    https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/authorize
    ?client_id=databricks-cli
    &redirect_uri=<redirect-url>
    &response_type=code
    &state=<state>
    &code_challenge=<code-challenge>
    &code_challenge_method=S256
    &scope=all-apis+offline_access
    
  5. Quand vous y êtes invité, suivez les instructions à l’écran pour vous connecter à votre compte Azure Databricks.

  6. Dans la barre d’adresse de votre navigateur web, copiez le code d’autorisation. Le code d’autorisation est la chaîne de caractères complète entre code= et le caractère & dans l’URL. Par exemple, le code d’autorisation dans l’URL suivante est dcod...7fe6 :

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    Vous devez vérifier l’intégrité de ce code d’autorisation en vérifiant visuellement que la valeur <state> dans cette URL de réponse correspond à la valeur state que vous avez fournie dans votre URL de demande. Si les valeurs sont différentes, vous ne devez pas utiliser ce code d’autorisation, car il peut être compromis.

  7. Passez à Générer manuellement un jeton d’accès au niveau du compte.

Générer un code d’autorisation au niveau de l’espace de travail

  1. Dans la barre d’adresse de votre navigateur web, accédez à l’URL suivante. Des sauts de ligne ont été ajoutés pour des raisons de lisibilité. Votre URL ne doit pas contenir ces sauts de ligne.

    Dans l’URL suivante, faites les remplacements suivants :

    • Remplacez <databricks-instance> par le nom de l’instance d’espace de travail Azure Databricks (par exemple, adb-1234567890123456.7.azuredatabricks.net).
    • Remplacez <redirect-url> par une URL de redirection vers votre machine locale, par exemple http://localhost:8020.
    • Remplacez <state> par une chaîne de texte brut que vous pouvez utiliser pour vérifier l’intégrité du code d’autorisation.
    • Remplacez <code-challenge> par le test de code que vous avez généré à l’étape 1.
    https://<databricks-instance>/oidc/v1/authorize
    ?client_id=databricks-cli
    &redirect_uri=<redirect-url>
    &response_type=code
    &state=<state>
    &code_challenge=<code-challenge>
    &code_challenge_method=S256
    &scope=all-apis+offline_access
    
  2. Quand vous y êtes invité, suivez les instructions à l’écran pour vous connecter à votre espace de travail Azure Databricks.

  3. Dans la barre d’adresse de votre navigateur web, copiez le code d’autorisation. Le code d’autorisation est la chaîne de caractères complète entre code= et le caractère & dans l’URL. Par exemple, le code d’autorisation dans l’URL suivante est dcod...7fe6 :

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    Vous devez vérifier l’intégrité de ce code d’autorisation en vérifiant visuellement que la valeur <state> dans cette URL de réponse correspond à la valeur state que vous avez fournie dans votre URL de demande. Si les valeurs sont différentes, vous ne devez pas utiliser ce code d’autorisation, car il peut être compromis.

Étape 3 : Utiliser le code d’autorisation pour générer un jeton d’accès OAuth

Vous utilisez le code d’autorisation OAuth de l’étape précédente pour générer un jeton d’accès OAuth Azure Databricks, comme suit :

Générer un jeton d’accès au niveau du compte

  1. Utilisez un client tel que curl avec le code d’autorisation au niveau du compte pour générer le jeton d’accès OAuth au niveau du compte. Dans l’appel curl suivant, remplacez les espaces réservés suivants :

    • Remplacez <account-id> par l’ID de compte de l’étape 2.
    • Remplacez <redirect-url> par l’URL de redirection de l’étape 2.
    • Remplacez <code-verifier> par le vérificateur de code que vous avez généré à l’étape 1.
    • Remplacez <authorization-code> par le code d’autorisation au niveau du compte que vous avez généré à l’étape 2.
    curl --request POST \
    https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/token \
    --data "client_id=databricks-cli" \
    --data "grant_type=authorization_code" \
    --data "scope=all-apis offline_access" \
    --data "redirect_uri=<redirect-url>" \
    --data "code_verifier=<code-verifier>" \
    --data "code=<authorization-code>"
    
  2. Dans la réponse, copiez le jeton d’accès OAuth au niveau du compte. Le jeton d’accès est la chaîne de caractères complète dans l’objet access_token. Par exemple, le jeton d’accès dans la réponse suivante est eyJr...Dkag :

    {
      "access_token": "eyJr...Dkag",
      "refresh_token": "doau...f26e",
      "scope": "all-apis offline_access",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    Ce jeton d’accès expire en une heure. Pour générer un nouveau jeton d’accès, répétez cette procédure à partir de l’étape 1.

  3. Passez à l’Étape 4 : Appeler une API REST Databricks.

Générer un jeton d’accès au niveau de l’espace de travail

  1. Utilisez un client tel que curl avec le code d’autorisation au niveau de l’espace de travail pour générer le jeton d’accès OAuth au niveau de l’espace de travail. Dans l’appel curl suivant, remplacez les espaces réservés suivants :

    • Remplacez <databricks-instance> par le nom de l’instance d’espace de travail Azure Databricks (par exemple, adb-1234567890123456.7.azuredatabricks.net).
    • Remplacez <redirect-url> par l’URL de redirection de l’étape 2.
    • Remplacez <code-verifier> par le vérificateur de code que vous avez généré à l’étape 1.
    • Remplacez <authorization-code> par le code d’autorisation au niveau de l’espace de travail que vous avez généré à l’étape 2.
    curl --request POST \
    https://<databricks-instance>/oidc/v1/token \
    --data "client_id=databricks-cli" \
    --data "grant_type=authorization_code" \
    --data "scope=all-apis offline_access" \
    --data "redirect_uri=<redirect-url>" \
    --data "code_verifier=<code-verifier>" \
    --data "code=<authorization-code>"
    
  2. Dans la réponse, copiez le jeton d’accès OAuth au niveau de l’espace de travail. Le jeton d’accès est la chaîne de caractères complète dans l’objet access_token. Par exemple, le jeton d’accès dans la réponse suivante est eyJr...Dkag :

    {
     "access_token": "eyJr...Dkag",
     "refresh_token": "doau...f26e",
     "scope": "all-apis offline_access",
     "token_type": "Bearer",
     "expires_in": 3600
    }
    

    Ce jeton d’accès expire en une heure. Pour générer un nouveau jeton d’accès, répétez cette procédure à partir de l’étape 1.

Étape 4 : Appeler une API REST Databricks

Vous utilisez le jeton d’accès OAuth au niveau du compte ou de l’espace de travail pour vous authentifier auprès des API REST au niveau du compte Azure Databricks et des API REST au niveau de l’espace de travail, selon l’étendue du jeton d’accès. Votre compte d’utilisateur Azure Databricks doit être un administrateur de compte pour appeler des API REST au niveau du compte.

Exemple de demande d’API REST au niveau du compte

Cet exemple utilise curl avec l’authentification Bearer pour obtenir la liste de tous les espaces de travail associés à un compte.

  • Remplacez <oauth-access-token> par le jeton d’accès OAuth au niveau du compte.
  • Remplacez <account-id> par votre ID de compte.
export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://accounts.azuredatabricks.net/api/2.0/accounts/<account-id>/workspaces"

Exemple de demande d’API REST au niveau de l’espace de travail

Cet exemple utilise curl avec l’authentification Bearer pour lister tous les clusters disponibles dans l’espace de travail spécifié.

  • Remplacez <oauth-access-token> par le jeton d’accès OAuth au niveau du compte ou de l’espace de travail.
  • Remplacez <databricks-instance> par le nom de l’instance d’espace de travail Azure Databricks (par exemple, adb-1234567890123456.7.azuredatabricks.net).
export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://<databricks-instance>/api/2.0/clusters/list"