Microsoft SharePoint インジェストの手動トークン更新認証を構成する
プレビュー
Microsoft SharePoint コネクタは ベータ版です。
このページでは、Databricks への Microsoft SharePoint インジェストの手動トークン更新認証を構成する方法について説明します。
どの認証方法がサポートされていますか?
SharePoint コネクタは、次の OAuth メソッドをサポートしています。
- U2M 認証 (推奨)
- 手動トークン更新認証
Databricks では、更新トークンを自分で計算する必要がないため、U2M の使用をお勧めします。これは自動的に処理されます。また、Entra ID クライアントに SharePoint ファイルへのアクセスを許可するプロセスが簡素化され、セキュリティが向上します。
手順 1: SharePoint サイト ID を取得する
- ブラウザーで目的の SharePoint サイトにアクセスします。
- URLに
/_api/site/id
を追加します。 - Enter キーを押します。
手順 2: SharePoint ドライブ名を取得する (省略可能)
SharePoint サイト内のすべてのドライブとドキュメントを取り込む場合は、この手順をスキップできます。ただし、ドライブのサブセットのみを取り込む場合は、ドライブの名前を収集する必要があります。
ドライブ名は左側のメニューにあります。各サイトには、 Documents というデフォルトのドライブがあります。組織には追加のドライブがある場合があります。たとえば、次のスクリーンショットのドライブには、 doclib1
、 subsite1doclib1
などが含まれています。
一部のドライブは、リストから非表示になっている場合があります。ドライブの作成者は、ドライブ設定でこれを構成できます。この場合、隠しドライブは サイト コンテンツ セクションに表示される可能性があります。
手順 3: Microsoft Entra ID でクライアントを作成する
この手順では、SharePoint ファイルにアクセスできるクライアントを作成します。
-
Microsoft Azure ポータル (
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
を変更します。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 = ["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
が含まれていること、およびそれらを快適に付与できることを確認します。 -
ページ上部の Eメール ID が、SharePoint データへのアクセスに使用する Eメール ID と一致していることを確認します。
-
クライアント名が前の手順の資格情報と一致することを確認します。
-
[同意する] をクリックします。
指定したリダイレクト URL にリダイレクトされます。また、認証コードも受け取る必要があります。
-
認証コードをメモします。
-
「権限が必要です」 というプロンプトが表示されない場合は、URLに
&prompt=consent
を追加します。
ステップ 5: 更新トークンを取得する
この手順では、更新トークンをフェッチして認証を完了します。
-
次の Python コードを、前の手順でノートの新しいセルに貼り付けます。
tenant_id
、client_id
、redirect_url
を変更します。Python# Use the authentication code to get the refresh token.
# 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)
次のステップ
- 取得した認証の詳細を格納するための接続を作成します。
- インジェスト パイプラインを作成します。