Aller au contenu principal

Configurer OAuth M2M pour l'ingestion SharePoint

Pour la plupart des utilisateurs, Databricks recommande OAuth U2M: géré par Databricks, qui ne nécessite aucune inscription d'application Azure et est entièrement géré par Databricks. Utilisez M2M pour des pipelines de production entièrement automatisés qui s'exécutent sans interaction de l'utilisateur.

Quel modèle d'autorisation devrais-je utiliser ?​

L'authentification M2M prend en charge les modèles d'autorisation suivants dans Microsoft Azure :

  • Sites.Read.All : Accorde l'accès à tous les sites SharePoint de votre organisation. Cette option comporte moins d'étapes de configuration mais offre un accès plus large.
  • Sites.Selected : Accorde l'accès uniquement à des sites SharePoint spécifiques. Cela nécessite une configuration supplémentaire, mais respecte le principe du moindre privilège.

Databricks recommande d'utiliser Sites.Selected si possible pour limiter l'accès du Service Principal aux seuls sites que vous devez ingérer.

Quel type d’identifiant dois-je utiliser ?​

L’authentification M2M prend en charge les types d’identifiants suivants pour l’application Microsoft Entra ID :

  • Certificat : un certificat X.509 et sa clé privée.
  • Secret du client : chaîne secrète que vous générez dans le portail Azure.

Databricks recommande d’utiliser un certificat. Une connexion utilise un type d'identifiant, un certificat ou un secret client.

Prérequis​

  • Privilèges d'administrateur dans votre tenant Microsoft Entra ID.

Sites.Read.All autorisations​

Cette option accorde au Service Principal l'accès à tous les sites SharePoint de votre organisation.

Étape 1 : Obtenir l'ID de site SharePoint​

  1. Consultez le site SharePoint souhaité dans votre navigateur.
  2. Ajoutez /_api/site/id à l'URL.
  3. Tapez Entrée .

Étape 2 : Obtenir les noms de lecteurs SharePoint (facultatif)​

Si vous souhaitez ingérer tous les lecteurs et documents de votre site SharePoint, ignorez cette étape. Si vous ne souhaitez ingérer qu'un sous-ensemble des lecteurs, vous devez collecter leurs noms.

Les noms des lecteurs sont répertoriés dans le menu latéral gauche. Il y a un lecteur default appelé Documents dans chaque site. Cependant, votre organisation pourrait avoir des lecteurs supplémentaires. Par exemple, les lecteurs dans la capture d'écran suivante incluent doclib1, subsite1doclib1, et plus encore.

Affichez les lecteurs SharePoint

Certains drives peuvent être masqués dans la liste. Le créateur du drive peut configurer cela dans les paramètres du drive. Dans ce cas, les drives masqués peuvent être visibles dans la section Site contents .

Afficher les lecteurs SharePoint masqués

Étape 3 : créer une application Microsoft Entra ID​

Cette étape crée une inscription d'application qui peut accéder aux fichiers SharePoint à l'aide d'un Service Principal.

  1. Dans le portail Microsoft Azure (https://portal.azure.com), Cliquez sur Microsoft Entra ID . Vous devrez peut-être rechercher « Microsoft Entra ID ».

    Portail Azure : carte d'identité Entra

  2. Dans la barre latérale gauche, sous la section Gérer , cliquez sur Enregistrements d'applications .

  3. Cliquez sur Nouvelle inscription .

    Nouveau bouton d'enregistrement pour l'application Entra ID

  4. Dans le formulaire Enregistrer une application , spécifiez les éléments suivants :

    • Un nom pour votre application (par exemple, « Databricks SharePoint Ingestion »).
    • Si vous souhaitez que d'autres tenants accèdent à cette application.

    Vous n'avez pas besoin de spécifier une URL de redirection pour l'authentification M2M.

  5. Cliquez sur **S'inscrire**. Vous êtes redirigé vers la page de détails de l'application.

  6. Veuillez prendre note des valeurs suivantes :

    • ID de l'application (client)
    • ID du répertoire (tenant)

Ensuite, ajoutez des identifiants client à l’application. Suivez les étapes correspondant au type d’identifiant choisi. Consultez Quel type d’identifiant dois-je utiliser ?.

La connexion nécessite un certificat X.509 au format PEM et une clé privée RSA non chiffrée au format PKCS #8 PEM. Les clés privées chiffrées ne sont pas prises en charge.

  1. Générez un certificat et une clé privée. Par exemple, la commande OpenSSL suivante crée un certificat auto-signé valide pendant deux ans :

    Bash
    openssl req -x509 -newkey rsa:2048 -sha256 -days 730 -nodes \
    -keyout ~/databricks_key.pem -out ~/databricks_cert.pem \
    -subj "/CN=databricks-sharepoint"

    La commande crée databricks_cert.pem ( le certificat public ) et databricks_key.pem ( la clé privée ) dans votre répertoire d'accueil. Vous pouvez également utiliser un certificat émis par l'autorité de certification de votre organisation.

  2. Si vous utilisez une clé privée provenant d'une autre source, confirmez que le fichier start par le délimiteur BEGIN PRIVATE KEY. S’il start par le délimiteur BEGIN RSA PRIVATE KEY, convertissez-le au format PKCS #8 et utilisez le fichier converti comme clé privée :

    Bash
    openssl pkcs8 -topk8 -nocrypt -in <private-key-file> -out ~/databricks_key.pem
  3. Dans la barre latérale gauche de la page d’enregistrement de l’application, sous Gérer , cliquez sur Certificats et secrets .

  4. Cliquez sur le tab Certificats .

  5. Cliquez sur Upload un certificat .

  6. Sélectionnez databricks_cert.pem, ajoutez une description et cliquez sur Ajouter .

    Panneau d’upload du certificat sur la page Certificats et secrets de l’enregistrement de l’application

  7. Stockez le fichier de clé privée en toute sécurité. Vous saisissez le certificat et la clé privée lors de la création de la connexion.

Les certificats expirent. Avant que le certificat n’expire, upload un nouveau certificat sur l’application et mettez à jour la connexion avec le nouveau certificat et la nouvelle clé privée.

Étape 4 : Configurer les autorisations API​

Accorder à l’application les autorisations nécessaires pour lire les fichiers SharePoint.

  1. Dans la page d'enregistrement de l'application, cliquez sur Autorisations d'API dans le menu de gauche.

  2. Cliquez sur + Ajouter une autorisation .

  3. Dans le panneau **Demander des autorisations d'API**, cliquez sur **Microsoft Graph**.

  4. Cliquez sur Autorisations de l'application .

  5. Recherchez et sélectionnez les autorisations suivantes :

    • Sites.Read.All
    • Files.Read.All
  6. Cliquez sur Ajouter des autorisations .

  7. Cliquez sur **Accorder le consentement administrateur pour [votre organisation]**.

  8. Cliquez sur Oui pour confirmer.

    La liste des permissions affiche une coche verte dans la colonne État , indiquant que le consentement de l'administrateur a été accordé.

Étape 5 : Créer une connexion dans Databricks​

  1. Dans l’Explorateur de catalogues, cliquez sur Données externes dans le menu de gauche.

  2. Cliquez sur Créer une connexion .

  3. Dans la boîte de dialogue **Créer une connexion**, spécifiez les éléments suivants :

    • **Nom de la connexion** : Un nom unique pour votre connexion
    • **Type de connexion** : Microsoft SharePoint
    • Type d'authentification : OAuth Machine to Machine
    • ID client : l'ID de l'application (client) de l'étape 3
    • Utiliser un certificat : cochez cette case pour vous authentifier avec un certificat. Laissez cette case décochée pour vous authentifier à l'aide d'un secret client.
    • Secret du client : la valeur du secret du client de l'étape 3. Ce champ s'affiche uniquement lorsque Utiliser un certificat est désactivé.
    • Pem de certificat client : contenu de databricks_cert.pem de l'étape 3, y compris les délimiteurs BEGIN CERTIFICATE et END CERTIFICATE. Requis quand Utiliser le certificat est sélectionné.
    • Clé privée client PEM : le contenu de databricks_key.pem de l'étape 3, y compris les délimiteurs BEGIN PRIVATE KEY et END PRIVATE KEY. Requis quand Utiliser le certificat est sélectionné.
    • Domaine : votre domaine SharePoint au format https://YOURINSTANCE.sharepoint.com
    • Identifiant du tenant : L'ID du répertoire (tenant) de l'étape 3
  4. Cliquez sur Créer .

Sites.Selected autorisations​

Cette option restreint l'accès du Service Principal uniquement à des sites SharePoint spécifiques.

Étapes 1 à 3 : Terminez la configuration de base​

Suivez les étapes de 1 à 3 dans la sectionSites.Read.All. Ces étapes sont les mêmes pour les deux modèles d'autorisation.

  1. Obtenir l'ID du site SharePoint.
  2. Obtenir les noms de lecteurs SharePoint (facultatif).
  3. Créez une application Microsoft Entra ID.

Étape 4 : Configurer les autorisations d'API pour Sites.Selected​

Octroyez à l'application des autorisations restreintes qui nécessitent une autorisation supplémentaire spécifique au site.

  1. Dans la page d'enregistrement de l'application, cliquez sur Autorisations d'API dans le menu de gauche.

  2. Cliquez sur + Ajouter une autorisation .

  3. Dans le panneau **Demander des autorisations d'API**, cliquez sur **Microsoft Graph**.

  4. Cliquez sur Autorisations de l'application .

  5. Recherchez et sélectionnez Sites.Selected .

  6. Cliquez sur Ajouter des autorisations .

  7. Cliquez sur **Accorder le consentement administrateur pour [votre organisation]**.

    Cette étape nécessite des privilèges d'administrateur dans votre tenant Microsoft Entra ID.

  8. Cliquez sur Oui pour confirmer.

    La liste des permissions affiche une coche verte dans la colonne État , indiquant que le consentement de l'administrateur a été accordé.

Étape 4b : Accorder des autorisations spécifiques au site​

Après avoir configuré Sites.Selected dans Azure, vous devez explicitement accorder à l'application l'accès à des sites SharePoint spécifiques. Vous pouvez le faire en utilisant Microsoft Graph Explorer ou un Notebook Python.

  1. Accédez à Microsoft Graphe Explorer.

  2. Connectez-vous avec un compte qui dispose des autorisations d'administrateur pour votre site SharePoint.

  3. Cliquez sur Modifier les autorisations et donnez votre consentement aux autorisations requises (Sites.FullControl.All).

  4. Changer la méthode HTTP en POST .

  5. Saisissez l'URL suivante, en remplaçant {site_id} par l'ID de votre site SharePoint de l'étape 1 :

    https://graph.microsoft.com/v1.0/sites/{site_id}/permissions
  6. Dans la section Corps de la requête , collez le JSON suivant en remplaçant les valeurs d'espace réservé :

    JSON
    {
    "roles": ["read"],
    "grantedToIdentities": [
    {
    "application": {
    "id": "<YOUR_CLIENT_ID>",
    "displayName": "<YOUR_APP_NAME>"
    }
    }
    ]
    }

    Remplacer :

    • <YOUR_CLIENT_ID>: l'ID de l'application (client) de l'étape 3
    • <YOUR_APP_NAME>: Le nom de votre enregistrement d’application
  7. Cliquez sur Exécuter la query .

    Une réponse positive indique que l'autorisation a été accordée.

Étape 5 : Créer une connexion dans Databricks​

Suivez les étapes de l'Étape 5 : Créer une connexion dans Databricks pour créer la connexion dans Databricks à l'aide des identifiants de l'enregistrement de votre application.

Étapes suivantes​

  1. Ingérer des données depuis SharePoint
  2. Tâches courantes de maintenance de pipeline