Freigeben über


Konfigurieren von OAuth M2M für die Erfassung von SharePoint

Von Bedeutung

Der verwaltete SharePoint-Connector befindet sich in der Betaversion. Arbeitsbereichsadministratoren können den Zugriff auf dieses Feature über die Vorschauseite steuern. Siehe Verwalten von Azure Databricks-Vorschauen.

Von Bedeutung

M2M OAuth für SharePoint befindet sich in der öffentlichen Vorschau.

Erfahren Sie, wie Sie die OAuth-Computer-zu-Computer-Authentifizierung (M2M) für die SharePoint-Aufnahme in Azure Databricks konfigurieren.

Welches Berechtigungsmodell sollte ich verwenden?

Die M2M-Authentifizierung unterstützt die folgenden Berechtigungsmodelle in Microsoft Azure:

  • Sites.Read.All: Gewährt Zugriff auf alle SharePoint-Websites in Ihrer Organisation. Diese Option verfügt über weniger Setupschritte, bietet jedoch umfassenderen Zugriff.
  • Sites.Selected: Gewährt nur Zugriff auf bestimmte SharePoint-Websites. Dies erfordert eine zusätzliche Konfiguration, folgt jedoch dem Prinzip der geringsten Rechte.

Databricks empfiehlt, wann immer möglich, den Zugriff des Dienstprinzipals auf nur die Websites zu beschränken, die Sie aufnehmen müssen.

Voraussetzungen

  • Administratorrechte in Ihrem Microsoft Entra ID-Mandanten.

Sites.Read.All Erlaubnisse

Diese Option gewährt dem Dienstprinzipal Zugriff auf alle SharePoint-Websites in Ihrer Organisation.

Schritt 1: Abrufen der SharePoint-Website-ID

  1. Besuchen Sie die gewünschte SharePoint-Website in Ihrem Browser.
  2. Hängen Sie /_api/site/id an die URL an.
  3. Drücken Sie Enter.

Schritt 2: Abrufen von SharePoint-Laufwerknamen (optional)

Wenn Sie alle Speicherorte und Dokumente auf Ihrer SharePoint-Website importieren möchten, überspringen Sie diesen Schritt. Wenn Sie nur eine Teilmenge der Laufwerke importieren möchten, müssen Sie deren Namen erfassen.

Die Laufwerknamen werden im linken Seitenmenü aufgeführt. Es gibt ein Standardlaufwerk namens "Dokumente " auf jeder Website. Ihre Organisation verfügt möglicherweise jedoch über zusätzliche Laufwerke. Die Laufwerke im folgenden Screenshot umfassen beispielsweise doclib1, subsite1doclib1 und vieles mehr.

Anzeigen von SharePoint-Laufwerken

Einige Laufwerke sind möglicherweise in der Liste ausgeblendet. Der Ersteller des Laufwerks kann dies in den Laufwerkseinstellungen konfigurieren. In diesem Fall sind ausgeblendete Laufwerke möglicherweise im Abschnitt "Websiteinhalte " sichtbar.

Anzeigen ausgeblendeter SharePoint-Laufwerke

Schritt 3: Erstellen einer Microsoft Entra-ID-Anwendung

In diesem Schritt wird eine Anwendungsregistrierung erstellt, die mithilfe eines Dienstprinzipals auf die SharePoint-Dateien zugreifen kann.

  1. Klicken Sie im Microsoft Azure-Portal (https://portal.azure.com) auf "Microsoft Entra-ID". Möglicherweise müssen Sie nach "Microsoft Entra ID" suchen.

    Azure-Portal: Entra-ID-Karte

  2. Klicken Sie in der linken Randleiste unter dem Abschnitt "Verwalten " auf "App-Registrierungen".

  3. Klicken Sie auf Neue Registrierung.

    Schaltfläche

  4. Geben Sie im Formular "Anwendung registrieren " Folgendes an:

    • Ein Name für Ihre Anwendung (z. B. "Databricks SharePoint Ingestion").
    • Gibt an, ob andere Mandanten auf diese Anwendung zugreifen sollen.

    Sie müssen keine Umleitungs-URL für die M2M-Authentifizierung angeben.

  5. Klicken Sie auf Registrieren. Sie werden zur App-Detailseite umgeleitet.

  6. Notieren Sie sich die folgenden Werte:

    • Anwendungs-ID (Client)
    • Verzeichnis-ID (Mandant)
  7. Klicken Sie auf "Clientanmeldeinformationen": Hinzufügen eines Zertifikats oder eines geheimen Schlüssels.

  8. Klicken Sie auf + Neuer geheimer Clientschlüssel.

    +Schaltfläche

  9. Fügen Sie eine Beschreibung hinzu.

  10. Klicken Sie auf Hinzufügen. Die aktualisierte Liste der Kundengeheimnisse wird angezeigt.

  11. Kopieren Sie den geheimen Clientschlüsselwert, und speichern Sie ihn sicher. Nachdem Sie die Seite verlassen haben, können Sie nicht auf den geheimen Clientschlüssel zugreifen.

Schritt 4: Konfigurieren von API-Berechtigungen

Erteilen Sie der Anwendung die erforderlichen Berechtigungen zum Lesen von SharePoint-Dateien.

  1. Klicken Sie auf der Seite "App-Registrierung" im linken Menü auf API-Berechtigungen .

  2. Klicken Sie auf + Berechtigung hinzufügen.

  3. Klicken Sie im Bereich "API-Berechtigungen anfordern " auf Microsoft Graph.

  4. Klicken Sie auf Anwendungsberechtigungen.

  5. Suchen Sie nach den folgenden Berechtigungen, und wählen Sie sie aus:

    • Sites.Read.All
    • Files.Read.All
  6. Klicken Sie auf Berechtigungen hinzufügen.

  7. Klicken Sie auf Admin-Zustimmung für [Ihre Organisation] erteilen.

  8. Klicken Sie auf 'Ja ', um dies zu bestätigen.

    In der Berechtigungsliste wird in der Spalte "Status " ein grünes Häkchen angezeigt, das angibt, dass die Administratorzustimmung erteilt wurde.

Schritt 5: Erstellen einer Verbindung in Azure Databricks

  1. Klicken Sie im Katalog-Explorer im linken Menü auf externe Daten .

  2. Klicken Sie auf Verbindung herstellen.

  3. Geben Sie im Dialogfeld "Verbindung erstellen " Folgendes an:

    • Verbindungsname: Ein eindeutiger Name für Ihre Verbindung
    • Verbindungstyp: Microsoft SharePoint
    • Authentifizierungstyp: OAuth-Computer auf Computer
    • Client-ID: Die Anwendungs-ID (Client-ID) aus Schritt 3
    • Geheimer Clientschlüssel: Der wert des geheimen Clientschlüssels aus Schritt 3
    • Domäne: Ihre SharePoint-Domäne im Format https://YOURINSTANCE.sharepoint.com
    • Mandanten-ID: Die Mandanten-ID (Verzeichnis-ID) aus Schritt 3
  4. Klicken Sie auf "Erstellen".

Sites.Selected Erlaubnisse

Diese Option schränkt den Zugriff des Dienstprinzipals nur auf bestimmte SharePoint-Websites ein.

Schritte 1-3: Abschließen des grundlegenden Setups

Folgen Sie den Schritten 1 bis 3 im Sites.Read.All Abschnitt. Diese Schritte sind für beide Berechtigungsmodelle identisch.

  1. Rufen Sie die SharePoint-Website-ID ab.
  2. SharePoint-Laufwerknamen abrufen (optional).
  3. Erstellen Sie eine Microsoft Entra ID-Anwendung.

Schritt 4: Konfigurieren von API-Berechtigungen für Sites.Selected

Gewähren Sie der Anwendung eingeschränkte Berechtigungen, für die eine zusätzliche websitespezifische Autorisierung erforderlich ist.

  1. Klicken Sie auf der Seite "App-Registrierung" im linken Menü auf API-Berechtigungen .

  2. Klicken Sie auf + Berechtigung hinzufügen.

  3. Klicken Sie im Bereich "API-Berechtigungen anfordern " auf Microsoft Graph.

  4. Klicken Sie auf Anwendungsberechtigungen.

  5. Suchen Und wählen Sie "Sites.Selected" aus.

  6. Klicken Sie auf Berechtigungen hinzufügen.

  7. Klicken Sie auf Admin-Zustimmung für [Ihre Organisation] erteilen.

    Dieser Schritt erfordert Administratorrechte in Ihrem Microsoft Entra ID-Mandanten.

  8. Klicken Sie auf 'Ja ', um dies zu bestätigen.

    In der Berechtigungsliste wird in der Spalte "Status " ein grünes Häkchen angezeigt, das angibt, dass die Administratorzustimmung erteilt wurde.

Schritt 4b: Erteilen von websitespezifischen Berechtigungen

Nach der Konfiguration Sites.Selected in Azure müssen Sie der Anwendung explizit Zugriff auf bestimmte SharePoint-Websites gewähren. Dazu können Sie entweder Microsoft Graph Explorer oder ein Python-Notizbuch verwenden.

Microsoft Graph-Explorer

  1. Navigieren Sie zu Microsoft Graph-Tester.

  2. Melden Sie sich mit einem Konto an, das über Administratorberechtigungen für Ihre SharePoint-Website verfügt.

  3. Klicken Sie auf "Berechtigungen ändern" , und stimmen Sie den erforderlichen Berechtigungen zu (Sites.FullControl.All).

  4. Ändern Sie die HTTP-Methode in POST.

  5. Geben Sie die folgende URL ein, und ersetzen {site_id} Sie diese durch Ihre SharePoint-Website-ID aus Schritt 1:

    https://graph.microsoft.com/v1.0/sites/{site_id}/permissions
    
  6. Fügen Sie im Abschnitt "Anforderungstext " den folgenden JSON-Code ein, und ersetzen Sie die Platzhalterwerte:

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

    Ersetzen:

    • <YOUR_CLIENT_ID>: Die Anwendungs-ID (Client) aus Schritt 3
    • <YOUR_APP_NAME>: Der Name Ihrer Anwendungsregistrierung
  7. Klicken Sie auf Abfrage ausführen.

    Eine erfolgreiche Antwort gibt an, dass die Berechtigung erteilt wurde.

Python-Notizbuch

  1. Erstellen Sie ein neues Notizbuch in Ihrem Azure Databricks-Arbeitsbereich.

  2. Installieren Sie die MSAL-Bibliothek, indem Sie den folgenden Befehl in einer Zelle ausführen:

    %pip install msal
    
  3. Fügen Sie in einer neuen Zelle den folgenden Code ein, und ersetzen Sie die Platzhalterwerte:

    import msal
    import requests
    
    # Configuration - Replace these values
    TENANT_ID = "<YOUR_TENANT_ID>"  # Directory (tenant) ID from Step 3
    ADMIN_CLIENT_ID = "<ADMIN_CLIENT_ID>"  # Client ID of an app with admin consent
    ADMIN_CLIENT_SECRET = "<ADMIN_CLIENT_SECRET>"  # Client secret of admin app
    TARGET_APP_CLIENT_ID = "<TARGET_CLIENT_ID>"  # Client ID from Step 3
    TARGET_APP_DISPLAY_NAME = "<TARGET_APP_NAME>"  # Name of your app
    SITE_ID = "<YOUR_SITE_ID>"  # SharePoint site ID from Step 1
    
    # Authenticate using MSAL
    authority = f"https://login.microsoftonline.com/{TENANT_ID}"
    app = msal.ConfidentialClientApplication(
        ADMIN_CLIENT_ID,
        authority=authority,
        client_credential=ADMIN_CLIENT_SECRET
    )
    
    # Acquire token
    token_result = app.acquire_token_for_client(
        scopes=["https://graph.microsoft.com/.default"]
    )
    
    if "access_token" in token_result:
        access_token = token_result["access_token"]
    
        # Grant site permissions
        grant_url = f"https://graph.microsoft.com/v1.0/sites/{SITE_ID}/permissions"
        headers = {
            "Authorization": f"Bearer {access_token}",
            "Content-Type": "application/json"
        }
        grant_payload = {
            "roles": ["read"],
            "grantedToIdentities": [
                {
                    "application": {
                        "id": TARGET_APP_CLIENT_ID,
                        "displayName": TARGET_APP_DISPLAY_NAME
                    }
                }
            ]
        }
    
        response = requests.post(grant_url, headers=headers, json=grant_payload)
    
        if response.status_code in [200, 201]:
            print("Successfully granted site permissions")
            print(response.json())
        else:
            print(f"Error: {response.status_code}")
            print(response.text)
    else:
        print("Failed to acquire token")
        print(token_result.get("error"))
        print(token_result.get("error_description"))
    
  4. Führen Sie die Zelle aus. Eine erfolgreiche Antwort gibt an, dass die Berechtigung erteilt wurde.

Schritt 5: Erstellen einer Verbindung in Azure Databricks

Befolgen Sie Schritt 5 aus dem Sites.Read.All Abschnitt, um die Verbindung in Azure Databricks mithilfe der Anmeldeinformationen aus Ihrer Anwendungsregistrierung zu erstellen.

Nächste Schritte

  1. Erstellen einer Microsoft SharePoint-Aufnahmepipeline
  2. Allgemeine Pipelinewartungsaufgaben