Von Bedeutung
Microsoft SharePoint コネクタは ベータ版です。
このページでは、Azure Databricks への Microsoft SharePoint インジェストの手動トークン更新認証を構成する方法について説明します。
どの認証方法がサポートされていますか?
SharePoint コネクタでは、次の OAuth メソッドがサポートされています。
- U2M 認証 (推奨)
- 手動トークン更新認証
Databricks では、更新トークンを自分で計算する必要がないため、U2M の使用をお勧めします。 これは自動的に処理されます。 また、Entra ID クライアントに SharePoint ファイルへのアクセスを許可するプロセスも簡略化され、より安全です。
手順 1: SharePoint サイト ID を取得する
- ブラウザーで目的の SharePoint サイトにアクセスします。
- URL に
/_api/site/id
を付加します。 - 「Enter」と入力します。
手順 2: SharePoint ドライブ名を取得する (省略可能)
SharePoint サイト内のすべてのドライブとドキュメントを取り込む場合は、この手順をスキップできます。 ただし、ドライブのサブセットのみを取り込む場合は、その名前を収集する必要があります。
左側のメニューでドライブ名を確認できます。 各サイトには、 ドキュメント という名前の既定のドライブがあります。 組織に追加のドライブがある場合があります。 たとえば、次のスクリーンショットのドライブには、 doclib1
、 subsite1doclib1
などがあります。
一部のドライブは一覧に表示されない場合があります。 ドライブ作成者は、ドライブ設定でこれを構成できます。 この場合、非表示のドライブが [サイト コンテンツ ] セクションに表示されることがあります。
手順 3: Microsoft Entra ID でクライアントを作成する
この手順では、SharePoint ファイルにアクセスできるクライアントを作成します。
Microsoft Azure portal (
portal.azure.com
) で、[ Microsoft Entra ID] をクリックします。 "Microsoft Entra ID" を検索する必要がある場合があります。左側のメニューの [ 管理 ] セクションで、[ アプリの登録] をクリックします。
[新規登録] をクリックします。
[ アプリケーションの登録] フォームで、次の手順を 実行します。
他のテナントがこのアプリケーションにアクセスするかどうかを指定します。
認証コードの取得に使用するリダイレクト URL。 以下のいずれかを指定します。
- あなた自身のサーバーのリダイレクトURL
-
https://127.0.0.1
(https://127.0.0.1
で実行されているサーバーがない場合でも、アプリはそのページにリダイレクトしようとします。コードは結果の URL にあり、URL は次の形式になります:https://127.0.0.1:5000/oauth2redirect?code=<code>
)
アプリの詳細ページにリダイレクトされます。
次の値を書き留めます。
- アプリケーション (クライアント) ID
- ディレクトリ (テナント) ID
[ クライアント資格情報: 証明書またはシークレットを追加する] をクリックします。
[+ 新しいクライアント シークレット] をクリックします。
説明を追加します。
追加をクリックします。
更新されたクライアント シークレットの一覧が表示されます。
クライアント シークレットの値をコピーし、安全に保存します。 ページを離れると、クライアント シークレットにアクセスできなくなります。
手順 4: クライアントに SharePoint ファイルへのアクセス権を付与する
クライアントは、SharePoint ファイルにアクセスするために次の 2 つのアクセス許可を必要とします。
files.read.all
offline_access
これにより、アクセス権を持つすべてのサイト内のすべてのファイルへのアクセス権がクライアントに付与されます。 これに慣れている場合は、次の操作を行います。
新しいノートブックで次の Python コードを実行します。
tenant_id
、client_id
、およびredirect_url
を変更します。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 = ["Files.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)
出力は URL です。
ブラウザーで、コード出力から URL にアクセスします。
Microsoft 365 資格情報を使用してサインインします。
[ 要求されたアクセス許可 ] ダイアログ ボックスで、要求されたアクセス許可を確認します。
files.read.all
とoffline_access
が含まれていることを確認し、それを許可することに安心できるか確認してください。ページの上部にあるメール ID が、SharePoint データへのアクセスに使用するメールと一致することを確認します。
クライアント名が前の手順の資格情報と一致することを確認します。
承諾をクリックします。
指定したリダイレクト URL にリダイレクトされます。 認証コードも受け取る必要があります。
認証コードをメモしておきます。
アクセス許可が必要なプロンプトが表示されない場合は、URL に
&prompt=consent
を追加します。
手順 5: 更新トークンを取得する
この手順では、承認を完了するために更新トークンを取得します。
次の Python コードを、前の手順のノートブックの新しいセルに貼り付けます。
tenant_id
、client_id
、およびredirect_url
を変更します。# 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/Files.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)
次のステップ
- 取得した 認証の詳細を格納する接続を作成します。
- インジェスト パイプラインを作成します。