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

DatabricksインジェストのためのServiceNowの構成

Databricksインジェスト用にServiceNowインスタンスを構成する方法について説明します。

認証方法を選択する

次の認証方法がサポートされています。

  • U2M OAuth(推奨)
  • OAuth リソース所有者パスワード認証情報 (ROPC – レガシー)

Databricks では、より安全なアプローチであるため、U2M OAuth を推奨しています。ただし、認証トークンの有効期限が切れると、ServiceNow 接続も期限切れになります。デフォルトでは、これは 100 日ごとに発生します。頻度を減らすには、ServiceNow で有効期限を変更するか、ROPC を使用します。

取得した認証の詳細を使用して、ServiceNow への Databricks Unity Catalog 接続を作成します。

ユーザーに権限を付与する

ServiceNow ユーザー権限を付与するための次のオプションがサポートされています。

OAuthスコープ

説明

管理者アクセス(推奨)

adminおよびsnc_read_onlyロールが必要です。

最小権限アクセス

テーブルレベルの ACL を使用します。

管理者アクセス(推奨)

Databricks では、効率的なスキーマ検出が可能なため、このアプローチを推奨しています。次の権限が必要です:

  • 削除をキャプチャするには、ServiceNow ユーザーが の sys_audit_delete tableにアクセスできる必要があり、取り込まれるテーブルが削除を追跡している必要があります (ServiceNow でテーブル属性を no_audit_delete=true に設定することはできません)。
  • ServiceNow ユーザーには、 admin ロールが必要です。
  • (オプション)管理者ユーザーを読み取り専用アクセスに制限するには、管理者ユーザーに snc_read_only ロールを割り当てます。

最小権限アクセス

API の使用を最小限に抑えることよりも権限を制限することが重要な場合にのみ、このアプローチを選択してください。このアプローチには、次の ACL 権限が必要です。

  • sys_dictionary
  • sys_dictionary.*
  • sys_db_object
  • sys_db_object.*
  • sys_audit_delete
  • sys_audit_delete.*
  • sys_glide_object
  • sys_glide_object.*

OAuth アプリケーションの作成

この手順では、Databricks への取り込みにおける ServiceNow 認証の詳細を収集します。

重要

ServiceNow では、U2M OAuth に対してデフォルトで多要素認証 (MFA) が必要です。サインインするときに、標準の MFA フローの一部として 2 番目の認証方法を指定します。この要件は ROPC 認証には適用されません。

ServiceNow 管理者は、認証ユーザーを MFA 要件から除外できます。手順については、ServiceNow ドキュメントの「ユーザー免除」を参照してください。

  1. 「すべて 」メニューで「 システム OAuth 」を検索し、「 アプリケーション・レジストリ 」をクリックします。

    ServiceNow OAuthアプリケーションレジストリ

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

    ServiceNow 外部クライアント用の OAuth API エンドポイントの作成

  3. アプリケーションの名前を入力します。

  4. [Auth Scope ] に「useraccount」と入力します。

  5. (U2M OAuth のみ) リダイレクト URLhttps://<databricks-workspace-url>/login/oauth/servicenow.htmlと入力します。<databricks-workspace-url>完全な Databricks ワークスペース URL (例: https://cust-success.cloud.databricks.com ) に置き換えます。

注記

ROPC を使用している場合は、このステップをスキップしてください。

  1. 「送信」 をクリックします。

    ServiceNow OAuth アプリケーションの詳細

  2. クライアント 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 ドキュメントの「テーブル インデックスの作成」を参照してください。

次のステップ

インジェスト パイプラインを作成する