DatabricksインジェストのためのServiceNowの構成
Databricksインジェスト用にServiceNowインスタンスを構成する方法について説明します。
認証方法を選択する
次の認証方法がサポートされています。
- U2M OAuth(推奨)
- OAuth リソース所有者パスワード認証情報 (ROPC – レガシー)
Databricks では、より安全なアプローチであるため、U2M OAuth を推奨しています。ただし、認証トークンの有効期限が切れると、ServiceNow 接続も期限切れになります。デフォルトでは、これは 100 日ごとに発生します。頻度を減らすには、ServiceNow で有効期限を変更するか、ROPC を使用します。
取得した認証の詳細を使用して、ServiceNow への Databricks Unity Catalog 接続を作成します。
ユーザーに権限を付与する
ServiceNow ユーザー権限を付与するための次のオプションがサポートされています。
OAuthスコープ | 説明 |
|---|---|
管理者アクセス(推奨) |
|
最小権限アクセス | テーブルレベルの ACL を使用します。 |
管理者アクセス(推奨)
Databricks では、効率的なスキーマ検出が可能なため、このアプローチを推奨しています。次の権限が必要です:
- 削除をキャプチャするには、ServiceNow ユーザーが の
sys_audit_delete tableにアクセスできる必要があり、取り込まれるテーブルが削除を追跡している必要があります (ServiceNow でテーブル属性をno_audit_delete=trueに設定することはできません)。 - ServiceNow ユーザーには、
adminロールが必要です。 - (オプション)管理者ユーザーを読み取り専用アクセスに制限するには、管理者ユーザーに
snc_read_onlyロールを割り当てます。
最小権限アクセス
API の使用を最小限に抑えることよりも権限を制限することが重要な場合にのみ、このアプローチを選択してください。このアプローチには、次の ACL 権限が必要です。
sys_dictionarysys_dictionary.*sys_db_objectsys_db_object.*sys_audit_deletesys_audit_delete.*sys_glide_objectsys_glide_object.*
OAuth アプリケーションの作成
この手順では、Databricks への取り込みにおける ServiceNow 認証の詳細を収集します。
ServiceNow では、U2M OAuth に対してデフォルトで多要素認証 (MFA) が必要です。サインインするときに、標準の MFA フローの一部として 2 番目の認証方法を指定します。この要件は ROPC 認証には適用されません。
ServiceNow 管理者は、認証ユーザーを MFA 要件から除外できます。手順については、ServiceNow ドキュメントの「ユーザー免除」を参照してください。
-
「すべて 」メニューで「 システム OAuth 」を検索し、「 アプリケーション・レジストリ 」をクリックします。

-
[ 新規] をクリックして>外部クライアントの OAuth API エンドポイントを作成します 。

-
アプリケーションの名前を入力します。
-
[Auth Scope ] に「
useraccount」と入力します。 -
(U2M OAuth のみ) リダイレクト URL に
https://<databricks-workspace-url>/login/oauth/servicenow.htmlと入力します。<databricks-workspace-url>完全な Databricks ワークスペース URL (例:https://cust-success.cloud.databricks.com) に置き換えます。
ROPC を使用している場合は、このステップをスキップしてください。
-
「送信」 をクリックします。

-
クライアント ID と クライアント シークレット をコピーします。
インスタンス ID を取得する
インスタンス ID は、ServiceNow アカウントのログイン URL の最初の部分です。
https://<instanceid>.service-now.com
たとえば、ServiceNow インスタンスのホームページが https://abc.service-now.comの場合、インスタンス ID は abcです。
(レガシー)ユーザー名とパスワードを取得する
このステップは従来の ROPC フローにのみ必要です。 Databricks では、代わりに U2M OAuth を使用することをお勧めします。
アクティブな ServiceNow ユーザーのユーザー名とパスワードを取得します。
カーソル列のインデックス作成を有効にする
取り込みパフォーマンスを向上させるために、Databricks では、ServiceNow 管理者と協力して ServiceNow のカーソル フィールドのインデックス作成を有効にすることをお勧めします。カーソル列は、可用性と優先順位に従って次のリストから選択されます: sys_updated_on (最初の選択肢)、 sys_created_on (2 番目の選択肢)、 sys_archived (3 番目の選択肢)。これは、ServiceNow APIs使用して取り込む際のパフォーマンスを向上させるための標準的なアプローチです。 インデックスを設定すると、Databricks はカーソル列全体を完全にスキャンすることを回避でき、大規模な更新のボトルネックとなる可能性があります。手順については、ServiceNow ドキュメントの「テーブル インデックスの作成」を参照してください。