メインコンテンツまでスキップ

SharePoint 取り込み用の OAuth M2M を構成する

ほとんどのユーザーには、Databricks では OAuth U2M (Databricks 管理) を推奨しています。これは、Azure アプリケーション登録が不要で、すべて Databricks によって管理されます。ユーザー操作なしで実行される完全に自動化された本番運用パイプラインには、M2Mをご使用ください。

どの権限モデルを使用すればよいですか?​

M2M 認証は、Microsoft Azure で次のアクセス許可モデルをサポートしています。

  • Sites.Read.All : 組織内のすべての SharePoint サイトへのアクセスを許可します。このオプションではセットアップステップは少なくなりますが、より幅広いアクセスが可能になります。
  • Sites.Selected : 特定の SharePoint サイトへのアクセスのみを許可します。これには追加の構成が必要ですが、最小権限の原則に従います。

Databricks 、サービスプリンシパルのアクセスを取り込む必要があるサイトのみに制限するために、可能な場合はSites.Selectedを使用することをお勧めします。

どちらの資格情報タイプを使用すればよいですか?​

M2M認証では、Microsoft Entra IDアプリケーションで次のクレデンシャル型がサポートされています。

  • 証明書 :X.509証明書とその秘密鍵。
  • クライアントシークレット :Azure portalで生成するシークレット文字列。

Databricks では、証明書の使用をお勧めします。接続では、証明書またはクライアント シークレットのいずれか 1 つの資格情報の種類を使用します。

前提条件​

  • Microsoft Entra ID テナントの管理者権限。

Sites.Read.All権限​

このオプションにより、サービスプリンシパルに組織内のすべての SharePoint サイトへのアクセスが許可されます。

ステップ 1: SharePoint サイト ID を取得する​

  1. ブラウザで目的の SharePoint サイトにアクセスします。
  2. URL に/_api/site/id追加します。
  3. Enter キー を押します。

ステップ 2: SharePoint ドライブ名を取得する (オプション)​

SharePoint サイト内のすべてのドライブとドキュメントを取り込む場合は、この手順をスキップしてください。 ドライブのサブセットのみを取り込む場合は、その名前を収集する必要があります。

ドライブ名は左側のメニューに表示されます。各サイトには 「ドキュメント」 と呼ばれるデフォルトのドライブがあります。ただし、組織には追加のドライブがある可能性があります。たとえば、次のスクリーンショットのドライブには、 doclib1 、 subsite1doclib1などが含まれます。

SharePoint ドライブを表示

一部のドライブは、リストから非表示になっている場合があります。ドライブの作成者は、ドライブ設定でこれを構成できます。この場合、隠しドライブは サイト コンテンツ セクションに表示される可能性があります。

非表示の SharePoint ドライブを表示する

ステップ 3: Microsoft Entra ID アプリケーションを作成する​

このステップでは、サービスプリンシパルを使用して SharePoint ファイルにアクセスできるアプリケーション登録を作成します。

  1. Microsoft Azureポータル( https://portal.azure.com )では、 Microsoft Entra IDを クリックします。「Microsoft Entra ID」を検索する必要があるかもしれません。

    Azure ポータル: Entra ID カード

  2. 左側のサイドバーの 「管理」 セクションで、 「アプリの登録」 をクリックします。

  3. 「 新規登録 」をクリックします。

    Entra IDアプリの新しい登録ボタン

  4. アプリケーションの登録 フォームで、次の項目を指定します。

    • アプリケーションの名前 (例: 「Databricks SharePoint Ingestion」)。
    • 他のテナントがこのアプリケーションにアクセスできるようにするかどうか。

    M2M 認証ではリダイレクト URL を指定する必要はありません。

  5. 「登録する」 をクリックします。 アプリの詳細ページにリダイレクトされます。

  6. 次の値をメモします。

    • アプリケーション (クライアント) ID
    • ディレクトリ (テナント) ID

次に、クライアント資格情報をアプリケーションに追加します。選択した資格情報のタイプのステップに従ってください。「使用する資格情報のタイプ」を参照してください。

接続には、PEM形式のX.509証明書と、PKCS #8 PEM形式の暗号化されていないRSAプライベートキーが必要です。暗号化されたプライベートキーはサポートされていません。

  1. 証明書と秘密鍵を生成します。たとえば、次の OpenSSL コマンドは、2 年間有効な自己署名証明書を作成します。

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

    このコマンドは、ホームディレクトリにdatabricks_cert.pem(公開証明書)とdatabricks_key.pem(秘密鍵)を作成します。組織の認証局が発行した証明書を使用することもできます。

  2. 別のソースからプライベートキーを使用する場合は、ファイルの先頭にBEGIN PRIVATE KEY区切り文字があることを確認してください。BEGIN RSA PRIVATE KEY区切り文字で始まる場合は、PKCS #8形式に変換し、変換されたファイルをプライベートキーとして使用します。

    Bash
    openssl pkcs8 -topk8 -nocrypt -in <private-key-file> -out ~/databricks_key.pem
  3. アプリの登録ページの左側のサイドバーの 「管理」 の下で、 「証明書とシークレット」 をクリックします。

  4. 証明書 tabをクリックします。

  5. 証明書をupload をクリックします。

  6. databricks_cert.pemを選択し、説明を追加して、 追加 をクリックします。

    アプリの登録の「証明書とシークレット」ページにある「証明書のupload」パネル

  7. プライベートキーファイルは安全に保管してください。接続を作成する際に証明書とプライベートキーを入力します。

証明書の有効期限が切れる。証明書の有効期限が切れる前に、新しい証明書をアプリケーションにuploadし、新しい証明書と秘密鍵で接続を更新してください。

ステップ 4: API権限を構成する​

SharePoint ファイルを読み取るために必要な権限をアプリケーションに付与します。

  1. アプリ登録ページで、左側のメニューの 「API 権限」 をクリックします。

  2. + 権限を追加 を クリックします。

  3. [API アクセス許可の要求] パネルで、 [Microsoft Graph] をクリックします。

  4. [アプリケーションの権限] をクリックします。

  5. 次の権限を検索して選択します。

    • サイト.Read.All
    • ファイル.読み取り.すべて
  6. [権限の追加] をクリックします。

  7. [あなたの組織名] の管理者の同意を付与する をクリックします。

  8. 「はい」 をクリックして確定します。

    権限リストの ステータス 列には、管理者の同意が付与されたことを示す緑色のチェックマークが表示されます。

ステップ 5: Databricksで接続を作成する​

  1. カタログ エクスプローラーで、左側のメニューの [外部データ] をクリックします。

  2. 接続の作成 をクリックします。

  3. [接続の作成] ダイアログで、以下を指定します。

    • 接続名 : 接続の一意の名前
    • 接続タイプ : Microsoft SharePoint
    • 認証タイプ : OAuth マシン間
    • Client ID : ステップ 3 のアプリケーション (クライアント) ID
    • 証明書を使用 :証明書で認証するには、このチェックボックスをオンにします。クライアントシークレットで認証するには、チェックを入れないでください。
    • クライアント シークレット : ステップ 3 のクライアント シークレット値。このフィールドは、 証明書の使用 がクリアされている場合にのみ表示されます。
    • クライアント証明書 pem : ステップ3のdatabricks_cert.pemの内容。BEGIN CERTIFICATEおよびEND CERTIFICATEのデリミタを含みます。 証明書を使用 が選択されている場合に必要です。
    • クライアントプライベートキー pem : ステップ3の databricks_key.pem の内容。BEGIN PRIVATE KEY および END PRIVATE KEY 区切り文字を含みます。 証明書の使用 が選択されている場合に必要です。
    • ドメイン : SharePointドメイン(形式: https://YOURINSTANCE.sharepoint.com
    • テナント ID : ステップ 3 のディレクトリ (テナント) ID
  4. 作成 をクリックします。

Sites.Selected権限​

このオプションは、サービスプリンシパルのアクセスを特定の SharePoint サイトのみに制限します。

ステップ 1-3: 基本セットアップを完了する​

Sites.Read.Allセクションのステップ 1 ~ 3 に従ってください。 これらのステップは両方の権限モデルで同じです。

  1. SharePoint サイト ID を取得します。
  2. SharePoint ドライブ名を取得します (オプション)。
  3. Microsoft Entra ID アプリケーションを作成します。

ステップ 4: API権限を構成する Sites.Selected​

サイト固有の追加承認を必要とする制限された権限をアプリケーションに付与します。

  1. アプリ登録ページで、左側のメニューの 「API 権限」 をクリックします。

  2. + 権限を追加 を クリックします。

  3. [API アクセス許可の要求] パネルで、 [Microsoft Graph] をクリックします。

  4. [アプリケーションの権限] をクリックします。

  5. Sites.Selected を検索して選択します。

  6. [権限の追加] をクリックします。

  7. [あなたの組織名] の管理者の同意を付与する をクリックします。

    このステップには、 Microsoft Entra ID テナントの管理者権限が必要です。

  8. 「はい」 をクリックして確定します。

    権限リストの ステータス 列には、管理者の同意が付与されたことを示す緑色のチェックマークが表示されます。

ステップ 4b: サイト固有の権限を付与する​

Azure でSites.Selected構成した後、特定の SharePoint サイトへのアプリケーション アクセスを明示的に許可する必要があります。これは、Microsoft Graph Explorer または Python ノートブックを使用して実行できます。

  1. Microsoft Graph Explorerに移動します。

  2. SharePoint サイトの管理者権限を持つアカウントでサインインします。

  3. [権限の変更] をクリックし、必要な権限 (Sites.FullControl.All) に同意します。

  4. HTTP メソッドを POST に変更します。

  5. 次の URL を入力し、 {site_id}ステップ 1 の SharePoint サイト ID に置き換えます。

    https://graph.microsoft.com/v1.0/sites/{site_id}/permissions
  6. リクエスト本文 セクションで、プレースホルダー値を置き換えて次の JSON を貼り付けます。

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

    以下のように置き換えてください。

    • <YOUR_CLIENT_ID>: ステップ 3 のアプリケーション (クライアント) ID
    • <YOUR_APP_NAME>: アプリケーション登録名
  7. クエリの実行を クリックします。

    成功した応答は、許可が付与されたことを示します。

ステップ 5: Databricksで接続を作成する​

アプリケーション登録からの資格情報を使用してDatabricksで接続を作成するには、ステップ 5: Databricksで接続を作成するの手順に従ってください。

次のステップ​

  1. SharePointからデータを取り込む
  2. 一般的なパイプラインメンテナンスタスク