Aller au contenu principal

Configurer l'authentification manuelle du jeton refresh pour l'ingestion Microsoft SharePoint

info

Bêta

Cette fonctionnalité est en Bêta. Les administrateurs du Workspace peuvent contrôler l'accès à cette fonctionnalité à partir de la page Previews . Consultez Gérer les aperçus Databricks.

Cette page décrit comment configurer l’authentification par refresh manuel de jeton pour l’ingestion de Microsoft SharePoint dans Databricks.

Étape 1 : Obtenez l'ID du 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, vous pouvez ignorer cette étape. Cependant, si vous souhaitez uniquement ingérer un sous-ensemble des lecteurs, vous devez collecter leurs noms.

Vous pouvez trouver les noms des lecteurs dans le menu de gauche. Il existe un lecteur par default appelé **Documents** dans chaque site. 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 un client dans Microsoft Entra ID

Cette étape crée un client qui peut accéder aux fichiers SharePoint.

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

    Portail Azure : carte d'identité Entra

  2. Dans le menu de gauche, sous la section Gérer , cliquez sur Inscriptions d'applications .

  3. Cliquez sur Nouvelle inscription .

    Nouveau bouton d'enregistrement pour l'application Entra ID

  4. Dans le formulaire d' enregistrement d'une application :

    • Si vous souhaitez que d'autres tenants accèdent à cette application.
    • L’URL de redirection que vous souhaitez utiliser pour obtenir le code d’authentification. Spécifiez l’une des options suivantes :
      • L'URL de redirection pour votre propre serveur
      • https://127.0.0.1 (Même si vous n’avez pas de serveur exécuté sur https://127.0.0.1, l’application tente de rediriger vers cette page. Le code se trouve dans l’URL résultante, et l’URL se présente sous le format suivant : https://127.0.0.1:5000/oauth2redirect?code=<code>)

    Formulaire d&#39;enregistrement d&#39;application

    Vous êtes redirigé vers la page des détails de l'application.

    Page de détails de l&#39;application OAuth.

  5. Veuillez prendre note des valeurs suivantes :

    • ID de l'application (client)
    • ID du répertoire (tenant)
  6. Cliquez sur Identifiants client : Ajouter un certificat ou un secret .

  7. Cliquez sur + Nouveau secret client .

    + Nouveau bouton de secret client

  8. Ajoutez une description.

  9. Cliquez sur **Ajouter**.

    La liste mise à jour des secrets client s'affiche.

  10. Copiez la valeur du secret client et stockez-la en toute sécurité. Après avoir quitté la page, vous ne pouvez pas accéder au secret client.

Étape 4 : Accordez au client l'accès aux fichiers SharePoint

Le client requiert les deux autorisations suivantes pour accéder à vos fichiers SharePoint :

  • sites.read.all
  • offline_access

Elles donnent au client l'accès à tous les fichiers dans tous les sites auxquels vous avez accès. Si vous êtes à l'aise avec ceci :

  1. Exécutez le code Python suivant dans un nouveau Notebook. Modifiez le tenant_id, le client_id et le redirect_url.

    Python
    import requests

    # This is the application (client) id (obtained from the App Registration page)

    client_id = ""

    # This is the tenant id (obtained from the App Registration page)

    tenant_id = ""

    # A redirect URL is used in OAuth to redirect users to an

    # application after they grant permission to access their account.

    # In this setup, the authentication code is sent to this server.

    redirect_url = ""

    # ================= Do not edit code below this line. ==================

    # Authorization endpoint URL

    authorization_url = f"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/authorize"

    scopes = ["Sites.Read.All"]
    scope = " ".join(["https://graph.microsoft.com/{}".format(s) for s in scopes])
    scope += ("&offline_access")

    # Construct the authorization request URL.

    auth_params = {
    "client_id": client_id,
    "redirect_uri": redirect_url,
    "response_type": "code",
    "scope": scope
    }

    auth_url = authorization_url + "?" + "&".join([f"{key}={value}" for key, value in auth_params.items()])

    print(auth_url)

    La sortie est une URL.

  2. Dans votre navigateur, visitez l'URL de la sortie du code.

  3. Connectez-vous avec vos identifiants Microsoft 365.

  4. Dans la boîte de dialogue Autorisations demandées , examinez les autorisations demandées. Confirmez qu'ils incluent sites.read.all et offline_access et que vous êtes à l'aise de les accorder.

  5. Confirmez que l'ID e-mail en haut de la page correspond à l'e-mail que vous utilisez pour accéder aux données SharePoint.

  6. Confirmez que le nom du client correspond aux identifiants de l'étape précédente.

    Boîte de dialogue des autorisations Microsoft demandées

  7. Cliquez sur Accepter .

    Vous êtes redirigé vers l'URL de redirection que vous avez spécifiée. Vous devriez également recevoir un code d’authentification.

  8. Prenez note du code d'authentification.

  9. Si vous n'obtenez pas l'invite **Autorisations requises**, ajoutez &prompt=consent à l'URL.

Étape 5 : Obtenez le jeton de refresh

Cette étape récupère le jeton refresh pour finaliser l'autorisation.

  1. Collez le code Python suivant dans une nouvelle cellule du notebook de l'étape précédente. Modifiez le tenant_id, le client_id et le redirect_url.

    Python
    # Use the authentication code to get the refresh token. The code contains the characters &session_state=<string> at the end. Remove these characters and define the modified string as code:
    code = ""


    # This is the client secret (obtained from the Credentials and Secrets page)
    client_secret = ""


    # ================= Do not edit code below this line. ==================
    token_url = f"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token"




    # Request parameters
    token_params = {
    "client_id": client_id,
    "client_secret": client_secret,
    "code": code,
    "grant_type": "authorization_code",
    "redirect_uri": redirect_url,
    "scope": "profile openid email https://graph.microsoft.com/Sites.Read.All offline_access"
    }


    # Send POST request to token endpoint
    response = requests.post(token_url, data=token_params)


    # Handle response
    if response.status_code == 200:
    token_data = response.json()
    refresh_token = token_data.get("refresh_token")
    print("Refresh Token:", refresh_token)
    else:
    print("Error:", response.status_code, response.text)

Étapes suivantes

  1. Créez une connexion pour stocker les détails d'authentification que vous avez obtenus.
  2. Créer un pipeline d’ingestion.