Configurer l'authentification manuelle du jeton refresh pour l'ingestion Microsoft SharePoint
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
- Consultez le site SharePoint souhaité dans votre navigateur.
- Ajoutez
/_api/site/idà l'URL. - 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.

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 .

Étape 3 : Créer un client dans Microsoft Entra ID
Cette étape crée un client qui peut accéder aux fichiers SharePoint.
-
Dans le portail Microsoft Azure (
portal.azure.com), cliquez sur Microsoft Entra ID . Vous devrez peut-être rechercher « Microsoft Entra ID ».
-
Dans le menu de gauche, sous la section Gérer , cliquez sur Inscriptions d'applications .
-
Cliquez sur Nouvelle inscription .

-
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é surhttps://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>)

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

-
Veuillez prendre note des valeurs suivantes :
- ID de l'application (client)
- ID du répertoire (tenant)
-
Cliquez sur Identifiants client : Ajouter un certificat ou un secret .
-
Cliquez sur + Nouveau secret client .

-
Ajoutez une description.
-
Cliquez sur **Ajouter**.
La liste mise à jour des secrets client s'affiche.
-
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.alloffline_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 :
-
Exécutez le code Python suivant dans un nouveau Notebook. Modifiez le
tenant_id, leclient_idet leredirect_url.Pythonimport 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.
-
Dans votre navigateur, visitez l'URL de la sortie du code.
-
Connectez-vous avec vos identifiants Microsoft 365.
-
Dans la boîte de dialogue Autorisations demandées , examinez les autorisations demandées. Confirmez qu'ils incluent
sites.read.alletoffline_accesset que vous êtes à l'aise de les accorder. -
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.
-
Confirmez que le nom du client correspond aux identifiants de l'étape précédente.

-
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.
-
Prenez note du code d'authentification.
-
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.
-
Collez le code Python suivant dans une nouvelle cellule du notebook de l'étape précédente. Modifiez le
tenant_id, leclient_idet leredirect_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
- Créez une connexion pour stocker les détails d'authentification que vous avez obtenus.
- Créer un pipeline d’ingestion.