Partager via


Copier des données à partir de SharePoint Online List à l’aide d’Azure Data Factory ou d’Azure Synapse Analytics

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !

Cet article décrit comment utiliser l’activité de copie dans des pipelines Azure Data Factory et Azure Synapse pour copier des données à partir de SharePoint Online List. Il s’appuie sur l’article Activité de copie, qui présente une vue d’ensemble de cette activité.

Fonctionnalités prises en charge

Ce connecteur SharePoint Online List est pris en charge pour les fonctionnalités suivantes :

Fonctionnalités prises en charge IR
Activité de copie (source/-) ① ②
Activité de recherche ① ②

① Runtime d’intégration Azure ② Runtime d’intégration auto-hébergé

Pour obtenir la liste des magasins de données pris en charge en tant que sources ou récepteurs, consultez la table Magasins de données pris en charge.

Plus précisément, ce connecteur SharePoint List Online utilise l’authentification du principal du service et récupère les données suivant le protocole OData.

Conseil

Ce connecteur prend en charge la copie de données à partir d’une liste SharePoint Online List, et non de fichiers. Découvrez comment copier un fichier dans la section Copier un fichier à partir de SharePoint Online.

Démarrage

Pour effectuer l’activité Copie avec un pipeline, vous pouvez vous servir de l’un des outils ou kits SDK suivants :

Créer un service lié à une liste SharePoint Online à l'aide de l'interface utilisateur

Suivez les étapes suivantes pour créer un service lié à une liste SharePoint Online dans l'interface utilisateur du portail Azure.

  1. Accédez à l’onglet Gérer dans votre espace de travail Azure Data Factory ou Synapse et sélectionnez Services liés, puis cliquez sur Nouveau :

  2. Recherchez SharePoint et sélectionnez le connecteur SharePoint Online List.

    Capture d'écran du connecteur de liste SharePoint Online.

  3. Configurez les informations du service, testez la connexion et créez le nouveau service lié.

    Capture d’écran de la configuration du service lié pour une liste SharePoint en ligne.

Informations de configuration des connecteurs

Les sections suivantes fournissent des informations sur les propriétés permettant de définir les entités propres au connecteur SharePoint Online List.

Propriétés du service lié

Les propriétés prises en charge pour un service lié SharePoint Online List sont les suivantes :

Propriété Description Obligatoire
type La propriété type doit être définie sur : SharePointOnlineList. Oui
siteUrl URL du site SharePoint Online, par exemple https://contoso.sharepoint.com/sites/siteName. Oui
servicePrincipalId L’ID d’application (client) de l’application inscrite dans Microsoft Entra ID. Oui
servicePrincipalCredentialType Spécifiez le type d’informations d’identification à utiliser pour l’authentification de principal du service. Les valeurs autorisées sont ServicePrincipalCert et ServicePrincipalKey. Non
Pour ServicePrincipalCert
servicePrincipalEmbeddedCert Spécifiez le certificat codé en base64 de votre application inscrite dans Microsoft Entra ID, et vérifiez que le type de contenu du certificat est PKCS #12. Marquez ce champ en tant que SecureString afin de le stocker en toute sécurité, ou référencez un secret stocké dans Azure Key Vault. Vous devez configurer les paramètres d’autorisation faisant référence à cet article. Non
servicePrincipalEmbeddedCertPassword Spécifiez le mot de passe de votre certificat si votre certificat est sécurisé par un mot de passe. Marquez ce champ en tant que SecureString afin de le stocker en toute sécurité, ou référencez un secret stocké dans Azure Key Vault. Non
Pour ServicePrincipalKey
servicePrincipalKey La clé de l’application. Marquez ce champ en tant que SecureString afin de le stocker en toute sécurité, ou référencez un secret stocké dans Azure Key Vault. Pour plus d’informations, y compris sur les paramètres d’autorisation, consultez cette section. Non
tenantId ID du locataire sous lequel réside l’application. Oui
connectVia Runtime d’intégration à utiliser pour la connexion au magasin de données. À défaut de spécification, l’Azure Integration Runtime par défaut est utilisé. Non

Remarque

Si vous utilisez l’authentification de la clé du principal de service, basée sur Azure ACS (Access Control Services), nous vous recommandons de basculer vers l’authentification par certificat du principal de service en raison du plan de mise hors service d’ACS.

Exemple 1 : utilisation de l’authentification de la clé du principal de service

{
    "name": "SharePointOnlineList",
    "properties": {
        "type": "SharePointOnlineList",
        "typeProperties": {
            "siteUrl": "<site URL>",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalCredentialType":  "ServicePrincipalKey",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenantId": "<tenant ID>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Exemple 2 : utilisation de l’authentification par certificat du principal du service

{
    "name": "SharePointOnlineList",
    "properties": {
        "type": "SharePointOnlineList",
        "typeProperties": {
            "siteUrl": "<site URL>",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalCredentialType": "ServicePrincipalCert",
            "servicePrincipalEmbeddedCert": { 
                "type": "SecureString", 
                "value": "<base64 encoded string of (.pfx) certificate data>"
            },
            "servicePrincipalEmbeddedCertPassword": { 
                "type": "SecureString", 
                "value": "<password of your certificate>"
            },
            "tenantId": "<tenant ID>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Accorder l’autorisation d’utilisation de la clé de principal de service

Le connecteur SharePoint List Online utilise l’authentification du principal du service pour se connecter à SharePoint. Suivez la procédure ci-dessous pour le configurer :

  1. Inscrire une application à l’aide de la plateforme d’identités Microsoft. Pour savoir comment, regardez Démarrage rapide : Inscrire une application à l’aide de la plateforme d’identités Microsoft. Prenez note des valeurs suivantes qui vous permettent de définir le service lié :

    • ID de l'application
    • Clé de l'application
    • ID client
  2. Accordez l’autorisation de site SharePoint Online à votre application inscrite en suivant les étapes ci-dessous. Pour ce faire, vous avez besoin d’un rôle d’administrateur de site.

    1. Ouvrez le lien de votre site SharePoint Online. Par exemple, l’URL au format https://<your-site-url>/_layouts/15/appinv.aspx où l’espace réservé <your-site-url> est votre site.

    2. Recherchez l’ID d’application que vous avez enregistré, renseignez les champs vides, puis cliquez sur « Créer ».

      • Domaine d'application : contoso.com

      • URL de redirection : https://www.contoso.com

      • XML de la demande d’autorisation :

        <AppPermissionRequests AllowAppOnlyPolicy="true">
            <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="Read"/>
        </AppPermissionRequests>
        

        Accordez une autorisation de site SharePoint Online à votre application inscrite lorsque vous avez le rôle Administrateur du site.

      Remarque

      Dans le contexte de la configuration du connecteur SharePoint, « Domaine d’application » et « URL de redirection » font référence à l’application SharePoint que vous avez inscrite dans Microsoft Entra ID pour autoriser l’accès à vos données SharePoint. Le « domaine d’application » est le domaine où votre site SharePoint est hébergé. Par exemple, si votre site SharePoint se trouve sur « https://contoso.sharepoint.com" », le « domaine d’application » est « contoso.sharepoint.com ». L’« URL de redirection » est l’URL vers laquelle l’application SharePoint redirige l’utilisateur une fois qu’il s’est authentifié et a accordé des autorisations à l’application. Cette URL doit être une page de votre site SharePoint à laquelle l’application est autorisée à accéder. Par exemple, vous pouvez utiliser l’URL d’une page qui affiche une liste de fichiers dans une bibliothèque ou qui affiche le contenu d’un document.

    3. Cliquez sur « Faire confiance à cette application ».

Propriétés du jeu de données

Pour obtenir la liste complète des sections et propriétés disponibles pour la définition de jeux de données, consultez Jeux de données et services liés. Cette section fournit la liste des propriétés prises en charge par le jeu de données de la table SAP.

Propriété Description Obligatoire
type La propriété type du jeu de données doit être définie sur SharePointOnlineLResource. Oui
listName Nom de la liste SharePoint Online List. Notez que l’apostrophe (') n’est pas autorisée dans les noms de fichiers. Oui

Exemple

{
    "name": "SharePointOnlineListDataset",
    "properties":
    {
        "type": "SharePointOnlineListResource",
        "linkedServiceName": {
            "referenceName": "<SharePoint Online List linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties":
        {
            "listName": "<name of the list>"
        }
    }
}

Propriétés de l’activité de copie

Pour obtenir la liste complète des sections et des propriétés permettant de définir des activités, consultez Pipelines. La section suivante donne la liste des propriétés prises en charge par la source SharePoint Online List.

Source SharePoint Online List

Pour copier des données à partir de SharePoint Online List, les propriétés prises en charge dans la section source de l’activité de copie sont les suivantes :

Propriété Description Obligatoire
type La propriété type de la source de l’activité de copie doit être définie sur SharePointOnlineListSource. Oui
query Options de requête OData personnalisées pour filtrer les données. Exemple : "$top=10&$select=Title,Number". Non
httpRequestTimeout Délai d’expiration (en secondes) pour que la requête HTTP reçoive une réponse. Valeur par défaut : 300 (5 minutes). Non

Exemple

"activities":[
    {
        "name": "CopyFromSharePointOnlineList",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<SharePoint Online List input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SharePointOnlineListSource",
                "query": "<OData query e.g. $top=10&$select=Title,Number>"
            }, 
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Notes

Il n’est pas possible de sélectionner plus d’un type de données choix pour une source SharePoint Online List.

Mappage de type de données pour SharePoint Online List

Lors de la copie de données à partir de SharePoint Online List, les mappages suivants sont utilisés entre les types de données SharePoint Online List et les types de données intermédiaires utilisés en interne par le service.

Type de données SharePoint Online Type de données OData Type de données intermédiaire
Ligne de texte unique Edm.String String
Plusieurs lignes de texte Edm.String String
Choix (menu de sélection) Edm.String String
Nombre (1, 1.0, 100) Edm.Double Double
Devise ($, ¥, €) Edm.Double Double
Date et heure Edm.DateTime DateTime
Recherche (informations déjà présentes sur ce site) Edm.Int32 Int32
Oui/Non (case à cocher) Edm.Boolean Boolean
Personne ou groupe Edm.Int32 Int32
Lien hypertexte ou image Edm.String String
Calculé (à partir d’autres colonnes) Edm.String / Edm.Double / Edm.DateTime / Edm.Boolean Chaîne / Double / DateHeure / Booléen
Pièce jointe Non pris en charge
Sortie de la tâche Non pris en charge
Données externes Non pris en charge
Métadonnées gérées Non pris en charge

Copie d’un fichier à partir de SharePoint Online

Pour copier un fichier à partir de SharePoint Online, vous pouvez utiliser l’activité web afin d’authentifier et de récupérer un jeton d’accès auprès de SPO, puis le transmettre à l’activité de copie suivante afin de copier des données avec le connecteur HTTP comme source.

Flux de copie de fichier SharePoint

  1. Suivez la section Accorder l’autorisation d’utilisation de la clé de principal de service pour créer une application Microsoft Entra et accorder l’autorisation à SharePoint Online.

  2. Créez une activité web pour récupérer le jeton d’accès auprès de SharePoint Online :

    • URL : https://accounts.accesscontrol.windows.net/[Tenant-ID]/tokens/OAuth/2. Remplacez l’ID de locataire.
    • Méthode : POST
    • Headers :
      • Content-Type : application/x-www-form-urlencoded
    • Corps : grant_type=client_credentials&client_id=[Client-ID]@[Tenant-ID]&client_secret=[Client-Secret]&resource=00000003-0000-0ff1-ce00-000000000000/[Tenant-Name].sharepoint.com@[Tenant-ID]. Remplacez l’ID client (ID d’application), la clé secrète client (clé d’application), l’ID locataire et le nom du locataire (du locataire SharePoint).

    Attention

    Définissez l’option Sortie sécurisée sur « True » dans l’activité web pour empêcher la journalisation en texte brut de la valeur du jeton. Pour toutes les autres activités qui consomment cette valeur, l’option d’entrée sécurisée doit être définie sur « True ».

  3. Chaînez avec une activité de copie en utilisant comme source le connecteur HTTP pour copier le contenu du fichier SharePoint Online :

    • Service lié HTTP :
      • URL de base : https://[site-url]/_api/web/GetFileByServerRelativeUrl('[relative-path-to-file]')/$value. Remplacez l’URL du site et le chemin relatif du fichier. Veillez à inclure l’URL du site SharePoint ainsi que le nom de domaine, par exemple https://[sharepoint-domain-name].sharepoint.com/sites/[sharepoint-site]/_api/web/GetFileByServerRelativeUrl('/sites/[sharepoint-site]/[relative-path-to-file]')/$value.
      • Type d’authentification : Anonymes (pour utiliser le jeton du porteur configuré dans la source de l’activité de copie ultérieurement)
    • Jeu de données : choisissez le format souhaité. Pour copier le fichier tel quel, sélectionnez le type « Binaire ».
    • Source de l’activité de copie :
      • Méthode de demande : GET
      • En-tête supplémentaires : utilisez l’expression @{concat('Authorization: Bearer ', activity('<Web-activity-name>').output.access_token)}, qui se sert du jeton du porteur généré par l’activité web en amont comme en-tête d’autorisation. Remplacez le nom de l’activité web.
    • Configurez le récepteur de l’activité Copy pour toute destination de récepteur prise en charge.

Remarque

Même si une application Microsoft Entra dispose des autorisations FullControl sur SharePoint Online, vous ne pouvez pas copier les fichiers des bibliothèques de documents avec IRM activé.

Propriétés de l’activité Lookup

Pour en savoir plus sur les propriétés, consultez Activité Lookup.

Pour obtenir la liste des magasins de données pris en charge en tant que sources et récepteurs pour l’activité de copie, consultez Magasins de données et formats pris en charge.