Databricks OAUTH avec Entra SPN

Décrivez le problème/l’erreur/la question

Mon organisation utilise Azure Databricks et interdit l’authentification OAUTH native de Databricks et les PATs. La seule méthode d’authentification autorisée est via Entra SPN OAUTH.

Pour cette configuration, je dois envoyer une requête à <https://login.microsoftonline.com/{tenantID}/oauth2/v2.0/token> avec mon clientID et clientSecret ainsi que l’étendue bien connue 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default

Le type de credential Databricks de n8n ne permet pas de modifier l’URL du token d’accès et l’étendue pour supporter ce type de connexion

Le nœud Databricks de n8n ne permet pas non plus la sélection d’un type de credential Oauth générique, ce qui me permettrait également de m’authentifier correctement.

En raison de ces deux limitations, il n’existe aucun moyen possible d’utiliser le nœud Databricks avec cette authentification. J’ai dû revenir à l’utilisation des nœuds HTTP, ce qui est moins souhaitable.

Je cherche un moyen d’utiliser le nœud Databricks natif avec ce point de terminaison Oauth

Informations sur votre configuration n8n

  • Version n8n : 2.34.6
  • Base de données (par défaut : SQLite) : postgres
  • Paramètre n8n EXECUTIONS_PROCESS (par défaut : own, main) : default
  • Exécution de n8n via (Docker, npm, n8n cloud, application de bureau) : Docker
  • Système d’exploitation : macOS

Salut @spyder, en attendant une réponse, voici quelques ressources qui pourraient t’aider :

Ressources suggérées

Automatiquement associées à ta question.

Docs :

Forum :

@Erick_Torres - tu as déjà aidé avec des problèmes similaires, tu pourrais jeter un œil ?

Suggéré automatiquement par le bot communautaire d’n8n. C’est un pilote - partage tes commentaires ici.

@spyder Je sais que tu préférerais utiliser le nœud directement, mais ça ne fonctionnera pas, donc https est ta meilleure option, même si ce n’est pas idéal. Cependant, une requête https comme celle-ci devrait suffire.
configure les credentials comme ceci :

Le JSON est valide, c’est juste qu’il ne s’affichera pas parce qu’il est auto-hébergé

Bonjour @spyder
Les identifiants Databricks sont limités aux PAT natifs de Databricks et à OAuth M2M de Databricks par rapport au point de terminaison du jeton d’espace de travail, il n’y a donc aucun chemin dans le nœud vers un émetteur tiers. Le nœud HTTP Request couvre cela sans étape de récupération de jeton, car ses identifiants OAuth2 génériques exécutent eux-mêmes l’octroi des identifiants du client et mettent en cache et actualisent le jeton pour vous.
Créez une nouvelle identifiant de type « OAuth2 API » et définissez :

  • Grant Type : Client Credentials
  • Access Token URL : Sign in to your account
  • Client ID et Client Secret : vos valeurs SPN
  • Scope : 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default
  • Authentication : Body
    Sur chaque nœud HTTP Request, définissez Authentication sur Generic Credential Type, puis OAuth2 API, puis sélectionnez cet identifiant. Pointez l’URL directement sur votre API d’espace de travail, sans en-tête Authorization et sans nœud de jeton. Définissez Allowed HTTP Request Domains sur l’identifiant pour votre hôte d’espace de travail afin que le jeton ne soit jamais envoyé ailleurs.
    HTTP Request credentials | Nodes | n8n Docs

Merci. C’est ce que j’ai fini par faire, mais ce n’est bien sûr pas idéal.

De rien ! J’aurais aimé qu’il y ait une meilleure solution ! Tu devrais soumettre une pull request sur github pour n8n ! Passe une excellente journée, et n’hésite pas à marquer l’une des réponses comme solution !