Activer la fédération Open ID Connect (OIDC) pour les destinataires OpenSharing
Cette page explique comment les fournisseurs de données dans Databricks peuvent fédérer l'authentification à un fournisseur d'identité (IdP) pour régir l'accès aux partages OpenSharing créés dans Databricks. Ce flux d'authentification utilise la fédération OIDC, permettant aux jetons Web JSON (JWT) émis par l'IdP du destinataire d'être des jetons OAuth de courte durée authentifiés par Databricks. Cette méthode d'authentification de partage ouvert Databricks est conçue pour les destinataires qui n'ont pas accès à un workspace Databricks sur lequel Unity Catalog est activé.
Dans la fédération OIDC, l'IdP du destinataire est responsable de l'émission des jetons JWT et de l'application des politiques de sécurité, telles que l'authentification multifacteur (MFA). De même, la durée de vie du jeton JWT est régie par l'IdP du destinataire.
Databricks ne génère ni ne gère ces jetons. Il fédère uniquement l'authentification au fournisseur d'identité du destinataire et valide le JWT par rapport à la politique de fédération configurée du destinataire. Les fournisseurs de données peuvent également choisir de fédérer l'authentification à leur propre IdP lors du partage de données en interne avec d'autres utilisateurs ou services au sein de leur organisation.
La fédération OIDC est une alternative à l’utilisation de jetons d’authentification émis par Databricks et à longue durée de vie pour connecter des destinataires non-Databricks à des fournisseurs. Il permet un contrôle d'accès précis, prend en charge l'authentification multifacteur (MFA) et réduit les risques de sécurité en éliminant la nécessité pour les destinataires de gérer et de sécuriser les identifiants partagés.
Pour des informations sur l'utilisation de jetons porteurs pour gérer l'authentification aux partages à la place, consultez Créer un objet destinataire pour les utilisateurs non-Databricks à l'aide de jetons porteurs (partage Databricks vers Open).
Comment la fédération OIDC fonctionne-t-elle dans OpenSharing ?
-
Lorsque le fournisseur de données crée le destinataire dans OpenSharing sur Databricks, il configure une politique de fédération de jetons OIDC qui spécifie l'URL de l'émetteur de l'IdP du destinataire, tel que Microsoft Entra ID ou Okta, et définit l'utilisateur, le groupe, le Service Principal ou l'application OAuth du destinataire qui doit avoir accès au partage.
-
Databricks génère une URL de portail web de profil OIDC, en fonction de la politique, et le fournisseur partage cette URL avec le destinataire.
L'utilisateur final copie l'URL de l'Endpoint ou download le fichier de profil, selon sa plateforme préférée, et fournit l'URL ou le fichier de profil à la plateforme sur laquelle il query les données partagées. Ce fichier de profil partagé téléchargé depuis le portail Web OIDC de Databricks ne contient aucune information sensible.
- Pour l’authentification utilisateur-machine (U2M), le destinataire saisit l’Endpoint destinataire du portail web du profil OIDC dans son application U2M.
- Pour l'authentification de machine à machine (M2M), le développeur de l'application destinataire download le fichier de profil et y fait référence dans l'application cliente destinataire.
-
Lorsque le destinataire tente d'accéder aux données partagées à l'aide de sa plateforme préférée, l'authentification est fédérée auprès de son IdP.
Databricks ne génère ni ne gère aucun jeton ou identifiant. À la place, l'IdP du destinataire génère un JWT contenant des revendications d'identité. La durée de vie de ce jeton de courte durée est appliquée par l'IdP du destinataire. Le service OpenSharing valide ensuite le JWT par rapport à la politique du destinataire pour s'assurer qu'il correspond aux claims attendus, y compris l'émetteur, l'audience et le sujet. Si la validation réussit, la requête est authentifiée et l'accès est accordé en fonction des autorisations Unity Catalog.
Avant de commencer
Pour créer un destinataire, vous devez remplir les conditions suivantes :
- Vous devez disposer du privilège
CREATE RECIPIENTpour le métastore Unity Catalog où les données que vous souhaitez partager sont enregistrées. - Vous devez créer le destinataire à l'aide d'un Workspace Databricks auquel ce métastore Unity Catalog est attaché.
- Si vous utilisez un notebook Databricks pour créer le destinataire, votre compute doit utiliser Databricks Runtime 11.3 LTS ou une version ultérieure, et soit le mode d’accès standard, soit le mode d’accès dédié (précédemment modes d’accès partagé et mono-utilisateur).
Quel fournisseur d'identité utiliser ?
Vous pouvez utiliser la fédération OIDC avec un fournisseur d'identité interne ou externe, selon votre scénario de partage :
-
Fournisseur d'identité interne (géré par le fournisseur)
- C'est utile pour partager des données au sein de grandes organisations où les différents départements n'ont pas d'accès direct à Databricks mais partagent le même IdP.
- Cette approche permet au fournisseur de gérer l'accès au nom du destinataire.
- Les politiques de sécurité, telles que le MFA et le contrôle d'accès basé sur les rôles, sont appliquées par l'IdP du fournisseur.
-
Fournisseur d’identité externe (géré par le destinataire)
- Le fournisseur configure la politique de partage pour faire confiance à l'IdP du destinataire.
- L'organisation destinataire conserve le contrôle total sur les personnes qui peuvent accéder aux données partagées.
- Les stratégies de sécurité, telles que l’AMF et le contrôle d’accès basé sur les rôles, sont appliquées par l’IdP du destinataire.
Scénario d'authentification U2M ou M2M
Le partage ouvert et sécurisé avec la fédération de jetons OIDC prend en charge les flux d'authentification utilisateur-machine (U2M) et machine-machine (M2M), permettant un large éventail de scénarios de partage de données sécurisé.
Authentification utilisateur-à-machine (U2M)
Un utilisateur de l'organisation destinataire s'authentifie à l'aide de son IdP. Si MFA est configurée, elle est appliquée lors de la connexion.
Une fois authentifiés, les utilisateurs peuvent accéder aux données partagées à l'aide d'outils tels que Power BI ou Tableau. Le fournisseur de données peut définir des politiques d'accès qui limitent l'accès aux données à des utilisateurs ou des groupes spécifiques au sein de l'organisation destinataire, garantissant un contrôle précis sur ceux qui peuvent accéder aux ressources partagées. L'application cliente U2M (par exemple, Power BI) utilise le flux d'octroi de code d'autorisation OAuth pour obtenir des jetons d'accès de l'IdP.
Authentification machine à machine (M2M)
M2M est idéal pour les charges de travail automatisées, telles que les Jobs nocturnes ou les services d'arrière-plan, qui nécessitent un accès sans interaction de l'utilisateur. L'organisation destinataire enregistre un Service Principal dans son IdP. Cette identité de service permet aux applications ou aux scripts d'accéder en toute sécurité aux ressources par programmation. Aucun secret ni identifiant ne sont échangés entre Databricks, le fournisseur ou le destinataire. Toute la gestion des secrets reste interne à chaque organisation. Les clients M2M, tels que le client Python OpenSharing ou le client Spark OpenSharing, utilisent le flux d'octroi d'identifiants client OAuth pour récupérer les jetons d'accès auprès de l'IdP.
Créez un destinataire qui utilise une politique de fédération OIDC
Étape 1. Créer un destinataire de fédération OIDC ouvert
Pour créer un destinataire qui s'authentifie à l'aide d'OIDC :
-
Dans votre workspace Databricks, cliquez sur
Catalogue .
-
En haut du volet Catalog , cliquez sur l'icône en forme d'engrenage
et sélectionnez OpenSharing .
Sinon, dans le coin supérieur droit, cliquez sur **Partager > OpenSharing**.
-
Dans l'onglet Shared by me , cliquez sur Nouveau destinataire .
-
Saisissez le Nom du destinataire .
-
Pour Type de destinataire , sélectionnez Open .
-
Choisissez la fédération OIDC comme méthode d'authentification Open.
-
Cliquez sur Créer .
-
(Facultatif) Créez des **propriétés du destinataire** personnalisées. Dans l'onglet **Détails** du destinataire, cliquez sur **Modifier les propriétés > +Ajouter une propriété**. Ensuite, ajoutez un nom de propriété ( clé ) et une valeur . Pour plus de détails, consultez Gérer les propriétés du destinataire.
Étape 2. Créer une politique de fédération OIDC
Avant de créer la politique, veuillez recueillir les informations nécessaires auprès du destinataire concernant son IdP, y compris les utilisateurs, les groupes, les Service Principals ou les applications OAuth qui devraient avoir accès au partage. Si vous utilisez votre propre IdP (interne) pour le partage interne, récupérez cette information à partir de votre propre système d’identité.
Vous devez d'abord demander des informations au destinataire concernant son IdP ainsi que les utilisateurs, les groupes, les Service Principal ou les applications OAuth qui doivent avoir accès au partage. Vous fournissez ensuite cette information dans Databricks lors de la création du destinataire.
- Sur la page de modification du destinataire, sous Stratégies de fédération OIDC , cliquez sur Ajouter une stratégie .

-
Saisissez les informations suivantes :
-
Nom de la politique : nom lisible par un humain pour la politique.
-
**URL de l'émetteur** : L'URL HTTPS de l'IdP émettant le jeton JWT.
-
Revendication de sujet : La revendication dans le JWT qui identifie le type d'identité d'authentification. Dans Microsoft Entra ID, vous pouvez configurer les valeurs suivantes :
oid(ID d'objet) : sélectionnez si un utilisateur doit accéder aux données via une application U2M, telle que PowerBI.groups: sélectionner si un groupe d'utilisateurs est censé accéder aux données via une application U2M, comme PowerBI.azp: Sélectionnez si une application OAuth est destinée à accéder aux données via une application M2M, telle que le client Python OpenSharing ou le client Spark OpenSharing.
Dans d'autres IdP, des revendications telles que sub ou d'autres peuvent être utilisées. Reportez-vous à la documentation d'IdP pour déterminer la revendication correcte pour votre cas d'utilisation.
-
**Objet** : l’utilisateur, le groupe ou l’application spécifique autorisé à accéder au partage.
-
Audiences : un ou plusieurs identifiants de ressources que le jeton JWT doit faire correspondre. Un jeton est considéré comme valide si sa revendication d’audience correspond à l'une des audiences répertoriées.
-
-
Cliquez sur Enregistrer .
Si vous n'êtes pas sûr des valeurs à utiliser (émetteur, revendication de sujet, sujet, audience), reportez-vous à l'exemple suivant. Vous devez déterminer les détails de la stratégie de fédération OIDC avant de la créer.
Si vous utilisez un IdP géré par un destinataire externe, demandez les informations suivantes au destinataire, partagées via un canal sécurisé. Si vous utilisez votre IdP géré par votre fournisseur interne, ces informations proviennent de votre propre IdP, en fonction des identités que vous partagez.
Exemple pour U2M lorsque l'IdP est Entra ID :
Il s'agit d'une configuration d'exemple pour le partage avec un utilisateur spécifique ayant l'ID d'objet 11111111-2222-3333-4444-555555555555 dans le tenant Entra ID aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee
- Émetteur :
https://login.microsoftonline.com/aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee/v2.0 - revendication du sujet :
oid(ID de l’objet) - Objet :
11111111-2222-3333-4444-555555555555 - Audiences :
64978f70-f6a6-4204-a29e-87d74bfea138(il s'agit de l'identifiant client de l'application multi-tenant enregistrée par Databricks dans Entra ID)
Il s'agit d'un exemple de configuration de partage avec un groupe spécifique ayant l'ID d'objet 66666666-2222-3333-4444-555555555555 dans le tenant Entra ID aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee
- Émetteur :
https://login.microsoftonline.com/aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee/v2.0 - revendication de sujet :
groups - Objet :
66666666-2222-3333-4444-555555555555 - Audiences :
64978f70-f6a6-4204-a29e-87d74bfea138(il s'agit de l'identifiant client de l'application multi-tenant enregistrée par Databricks dans Entra ID)
Pour les applications U2M comme Power BI et Tableau, l'audience doit être l'ID d'application multi-tenant enregistré par Databricks dans Entra ID, qui est 64978f70-f6a6-4204-a29e-87d74bfea138.
Pour plus d'information sur les applications U2M et leurs stratégies de fédération OIDC, consultez Lire les données partagées à l'aide de la fédération Open ID Connect (OIDC) dans un flux U2M.
Exemple pour M2M lorsque IdP est Entra ID :
Pour une application OAuth M2M avec l'ID d'application (client) 11111111-2222-3333-4444-555555555555 dans le tenant Entra ID aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee:
- Émetteur :
https://login.microsoftonline.com/aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee/v2.0 - Revendication de sujet :
azp - objet :
11111111-2222-3333-4444-555555555555(il s'agit de l'ID d'application (client), qui est l'ID client de l'application OAuth enregistrée et se trouve dans le portail Entra ID du destinataire) - Audiences :
66666666-2222-3333-4444-555555555555(il peut s'agir de tout identifiant d'audience valide défini par le destinataire, tel que l'ID client de l'application OAuth enregistrée.) Pour plus d'informations sur les applications M2M et leurs politiques de fédération OIDC, consultez Lire les données partagées à l'aide de la fédération Open ID Connect (OIDC) dans un flux M2M.
Étape 3. Accorder l'accès à un partage au destinataire
Après avoir créé le destinataire et les partages, vous pouvez accorder au destinataire l'accès à ces partages.
Pour accorder l'accès en partage aux destinataires, vous pouvez utiliser l'Explorateur de catalogues, le CLI Databricks Unity Catalog ou la commande GRANT ON SHARE SQL dans un notebook Databricks ou l'éditeur de query Databricks SQL.
Autorisations requises : l'une des suivantes :
- Administrateur du métastore.
- Autorisations déléguées ou propriété sur le partage et les objets destinataires ((
USE SHARE+SET SHARE PERMISSION) ou propriétaire du partage) et (USE RECIPIENTou propriétaire du destinataire).
Pour obtenir des instructions, consultez Gérer l'accès aux partages de données OpenSharing (pour les fournisseurs).
Partager avec le destinataire Iceberg
Si votre destinataire OIDC lit des assets de données partagés à l'aide d'un catalogue Iceberg REST, partagez le Iceberg OIDC profile generation portal Link .
Envoyez le Link après avoir créé un destinataire qui utilise une politique de fédération OIDC :
-
Dans votre workspace Databricks, cliquez sur
Catalogue .
-
En haut du volet Catalog , cliquez sur l'icône en forme d'engrenage
et sélectionnez OpenSharing .
Sinon, dans le coin supérieur droit, cliquez sur **Partager > OpenSharing**.
-
Sous l'onglet **Shared by me** tab, cliquez sur **Destinataires**.
-
Recherchez et sélectionnez le destinataire OIDC.
-
Sur le côté droit de la page, sous Stratégies de fédération OIDC , cliquez sur Stratégie OIDC default .
-
Copiez le Iceberg OIDC profile generation portal Link et partagez-le avec votre destinataire par un moyen sécurisé.
-
Le Link inclut également les noms des partages, dont le destinataire a besoin pour lire les données partagées.
Flux de travail du destinataire
Pour savoir comment les destinataires s'authentifient et accèdent aux partages à l'aide de la fédération de jetons OIDC, consultez :