次の方法で共有


ServiceNow ナレッジ コネクタ インジェスト用の ServiceNow サービスを設定する

ServiceNow ナレッジ Microsoft 365 Copilot コネクタを使用すると、組織は ServiceNow ナレッジ ベースの記事をMicrosoft 365 Copilotおよび検索エクスペリエンスにインデックスを作成できます。 この記事では、organizationが ServiceNow Knowledge コネクタをデプロイする前に ServiceNow 管理者が完了する必要がある構成手順について説明します。

コネクタをデプロイする方法の詳細については、「 ServiceNow Knowledge コネクタをデプロイする」を参照してください。

セットアップ チェックリスト

次のチェックリストは、環境の構成とコネクタの前提条件の設定に関連する手順を示しています。

環境を構成する

タスク 役割
インスタンス URL を特定する ServiceNow 管理者
ポータルの構成を特定する ServiceNow 管理者
属性マッピングを定義する ServiceNow 管理者
高度なスクリプトと階層型のアクセス許可を確認する ServiceNow 管理者

前提条件を設定する

タスク 役割
サービス アカウントを作成し、アクセス許可を設定する ServiceNow 管理者
インジェストの項目数を特定する ServiceNow 管理者
REST API を設定する ServiceNow 管理者
階層型アクセス許可を設定する (プレビュー) ServiceNow 管理者
許可リストに Microsoft 365 IP アドレスを追加する ServiceNow 管理者/ネットワーク管理者
SSO 構成に関する問題を解決する ServiceNow 管理者

ServiceNow 環境を構成する

次のセクションでは、接続を有効にして最適化するように ServiceNow 環境を構成するための管理タスクについて説明します。

ServiceNow インスタンス URL を特定する

ServiceNow インスタンス URL の形式は一般に次のとおりです。

https://<your-organization-name>.service-now.com

ServiceNow インスタンスの URL を確認するには、ServiceNow 管理者ダッシュボードまたはorganizationで使用されるサインイン URL をチェックします。

カスタム URL がある場合:

  • ServiceNow インスタンスで、 All>Custom URL>Custom URL に移動します

ServiceNow ポータルの構成を特定する

既定では、ユーザーが ServiceNow コンテンツ用に Copilot によって生成されたリンクを選択すると、URL は標準の形式に従います。

https://<your-organization-name>.service-now.com/kb_view.do?sys_kb_id=bf1ab5ee47c31e90af178339736d

organizationで別の URL が使用されている場合は、コネクタをデプロイするときに URL をカスタマイズできます。 詳細については、「特定の スキーマ プロパティの値をカスタマイズする」を参照してください。

ServiceNow 属性マッピングを定義する

既定では、Microsoft Entra IDは、ServiceNow ユーザーの電子メール ID が、Microsoft Entra IDのユーザー プリンシパル名 (UPN) またはメール属性と一致するかどうかを確認することで、データ ソースの ID をマップします。

この既定のマッピングがorganizationのニーズを満たしていない場合は、カスタム マッピング式を定義できます。 詳細については、「 Entra 以外の ID をマップする」を参照してください。

ServiceNow で高度なスクリプトと階層型アクセス許可を確認する

ServiceNow 環境内のナレッジ記事に次の設定があるかどうかを判断します。

  • ユーザー条件で有効になっている高度なスクリプト
  • 階層型のアクセス許可が構成されました

これらの設定は、Copilot などの Microsoft 365 エクスペリエンスでコンテンツが表示される場合のインデックス作成の動作とアクセス制御に影響する可能性があります。

ユーザー条件で高度なスクリプトが有効になっているかどうかを判断するには、次の API 呼び出しを実行します。

<ServiceNowURL>/api/now/table/user_criteria?advanced=true&sysparm_limit=1

インスタンスで高度なスクリプト ベースのユーザー条件を使用している場合は、コネクタをデプロイするときに [詳細フロー ] を選択します。 詳細については、「 ユーザー条件に基づいてフローを選択する」を参照してください。

階層型アクセス許可とは

ServiceNow Knowledge では、サポート情報 (親) レベルと個々のアーティクル (子) レベルの両方でアクセス許可を設定できます。 これらのアクセス許可は、ユーザーがアーティクルにアクセスできるかどうかを判断するためにまとめて評価されます。 このモデルは階層アクセス許可と呼ばれます。

階層型アクセス許可は、ServiceNow Knowledge コネクタでサポートされています (プレビューのみ)。 この機能は、マルチテナント環境の政府またはソブリン クラウドまたは専用フォレストでは使用できません。 詳細については、「 階層型アクセス許可の設定 (プレビュー)」を参照してください。

コネクタの前提条件を設定する

次のセクションでは、ServiceNow コネクタをデプロイする前に完了するための前提条件の手順について説明します。

サービス アカウントを作成し、インデックス項目へのアクセス許可を設定する

ServiceNow に接続し、ServiceNow Knowledge コネクタがアイテムを定期的に更新できるようにするには、特定の ServiceNow テーブル レコードへの読み取りアクセス権を持つサービス アカウントが必要です。 次の表に、必要なテーブル レコードの一覧を示します。

機能 読み取りアクセスに必要なテーブル 説明
すべてのユーザーが利用できるインデックスナレッジ記事 kb_knowledge ナレッジ記事をクロールする場合
拡張テーブルのプロパティにインデックスを付けます sys_db_object テンプレートの拡張テーブルの詳細を読み取る
sys_dictionary 拡張テーブルのプロパティとクロール テンプレートの読み取り
sys_properties アクセス許可を評価するためのプロパティの読み取り
sys_attachment ナレッジ記事への添付ファイルのクロール
kb_feedback ナレッジ記事のコメントをクロールする場合
ユーザー条件のアクセス許可のインデックス作成とサポート kb_uc_can_read_mtom このサポート情報を読めるユーザー
kb_uc_can_contribute_mtom このサポート情報に貢献できるユーザー
kb_uc_cannot_read_mtom このサポート情報を読み取ることができないユーザー
kb_uc_cannot_contribute_mtom このサポート情報に貢献できないユーザー
sys_user ユーザー テーブルの読み取り
sys_user_has_role ユーザーのロール情報を読み取る
sys_user_grmember** ユーザーのグループ メンバーシップを読み取る
user_criteria ユーザー条件のアクセス許可の読み取り
kb_knowledge_base サポート情報情報を読み取る
sys_user_group ユーザー グループ セグメントの読み取り
sys_user_role ユーザー ロールの読み取り
cmn_location** 位置情報の読み取り
cmn_department** 部署の情報を読む
core_company** 会社の属性を読み取る

** これらのテーブルへのアクセスは、単純なフローを選択した場合にのみ必要です。 ユーザー条件を読み取るための高度なフローを選択した場合、これらのテーブルにアクセスする必要はありません。

Microsoft Search に接続するために使用するサービス アカウントのロールを作成して割り当てることができます。 詳細については、「 ユーザーにロールを割り当てる」を参照してください。 作成したロールにテーブルへの読み取りアクセス権を割り当てることができます。

ユーザーの作成、ロールの割り当て、該当するすべてのテーブル レコードに対する読み取りアクセス許可の付与の方法については、「 ServiceNow のユーザーにテーブル アクセス権を付与する」を参照してください。

サービス アカウントに必要なアクセス許可がない場合、または行レベルまたはフィールド レベルのアクセス許可が制限されている場合、特定の項目は Microsoft 側のインデックス作成から除外されます。

注:

サービス アカウントに snc_read_only を明示的に適用しないでください。 このロールは、ユーザーがアクセスできるテーブルへの書き込みアクションを拒否します。 アカウントは、トークンやその他の認証関連情報を一部のテーブルに書き込む必要があります。 トークンは定期的に更新されるため、このアカウントは初回認証後に読み取り専用にすることはできません。 サービス アカウントでは、認証のために oauth_credential テーブルへの書き込みアクセス権が必要です。

サービス アカウントが完全な User Criteria テーブルにアクセスできない場合、意図しないコンテンツの共有を含め、ユーザーのアクセス許可に関連する一貫性のない動作が発生する可能性があります。

インジェストの項目数を特定する

インデックス作成中に、次の既定のフィルターが適用されます。 変更を行う必要がある場合は、コネクタのセットアップ中にクエリ文字列を編集します。 詳細については、「 クエリ文字列のカスタマイズ」を参照してください。

active=true^workflow_state=published

インジェストに必要なアイテム数を確認するには:

  1. 次の URL に移動します: https://<instance-name>.service-now.com/api/now/table/kb_knowledge?sysparm_fields=sys_id&workflow_state=published。 この URL を使用すると、 sys_idsの一覧が開きます。

    注:

    選択したアーティクルのインデックス作成用の既定のクエリ文字列を編集する場合は、対応する URL を使用してそれらのクエリ条件を反映します。

  2. 同じウィンドウで開発者ツールを開き、コンソール ウィンドウに次のコードを入力します。

        fetch('<<same URL as in 1>>')
        .then(res => res.json())
        .then(data => console.log("Count of sys_ids:", data.result.length))
        .catch(err => console.error(err));
    
  3. 項目数をメモします。

コネクタが設定され、項目の同期が完了すると、インデックス付きアイテム数をこの予期される数に対してチェックして、すべてのアーティクルがインデックス付けされていることを確認できます。 詳細については、「 接続の統計情報を表示する」を参照してください。

REST API を設定する

コネクタが高度なユーザー条件をフェッチできるようにするには、ServiceNow インスタンスにスクリプト化された REST API を作成します。

  • ServiceNow でのロールを security_adminに昇格します。

アクセス制御の作成:

  1. ServiceNow で、[すべての> システム セキュリティ > Access Control (ACL)] に移動します。
  2. [ 新規 ] を選択して新しい ACL を作成します。
  3. 次の値を設定します。
    • : REST_Endpoint
    • 操作: Execute
    • 名前: Microsoft Copilot
    • ロール: admin(またはクロール アカウントに割り当てられた同じロール)
  4. [送信] を選択します。

スクリプト化された REST API を作成します。

  1. [ すべての > システム Web サービス > スクリプト化された Web サービス > スクリプト化された REST API] に移動します。
  2. [ 新規作成] を選択します。
  3. 次の情報を入力します。
    • 名前: Microsoft Copilot
    • API ID: microsoft_copilot
  4. [送信] を選択します。
  5. [スクリプト化された REST API] リスト ページで、[Microsoft Copilot] を選択します。
  6. [既定の ACL] を[Microsoft Copilot] に設定します。 承認に関する問題を回避するには、 スクリプト化された REST 外部既定 ACL も追加します。

API にリソースを追加します。

  1. [ リソース ] タブで、[ 新規] を選択します。

  2. 詳細を入力します。

    • 名前: GetAllUserCriteria
    • 相対パス: /user_criteria
    • スクリプト: 次のコードを貼り付けます。
    (function execute (/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
        var queryParams = request.queryParams;
        var user = new String(queryParams.user);
        return (new sn_uc.UserCriteriaLoader()).getAllUserCriteria(user);
    })(request, response);
    
  3. 次の両方がオンになっていることを確認します。

    • 認証の必要性
    • ACL 承認が必要
  4. ACL がMicrosoft Copilot に設定されていることを確認します。 承認に関する問題を回避するには、 スクリプト化された REST 外部既定 ACL も追加します。

  5. [更新] を選択します。

セットアップを確認するには:

  1. [リソース パス] が [/api/<API Namespace>/microsoft_copilot/user_criteria] であることを確認します。
  2. [ 更新] を選択して構成を保存します。

Microsoft 365 管理者は、ServiceNow Knowledge コネクタをデプロイするときに API 名前空間に入ります。 次の例では、API 名前空間が abcdefされています。

/api/abcdef/microsoft_copilot/user_criteria

階層型アクセス許可を設定する (プレビュー)

階層型アクセス許可を使用すると、ServiceNow ナレッジ コネクタは、ServiceNow ナレッジ記事のユーザーアクセス許可を評価できます。 コネクタは、ServiceNow が使用する規則に従って、サポート情報 (親) レベルとナレッジ記事 (子) レベルで適用されたユーザー条件を評価します。 ServiceNow が記事のアクセス許可を評価する方法の詳細については、「 ナレッジ ベースとナレッジ記事へのアクセスの管理」を参照してください。

階層型アクセス許可を設定するには:

  • コネクタのデプロイ中に、[ ServiceNow でのユーザー条件の設定に基づく選択] で [詳細設定] を選択 します。 コネクタを設定するときに [シンプル ] を選択した場合は、既存のコネクタを [ 詳細設定] を使用するように更新します。

    注:

    [詳細設定] を選択した場合は、ServiceNow インスタンス **で [詳細設定] を選択するときに、ServiceNow でスクリプト化された REST API を構成する必要があります。 REST API の設定に関するページに記載されている手順に従います。

  • コネクタのセットアップに使用するサービス アカウントに、 sys_properties テーブルへの読み取りアクセス権を提供します。 詳細については、「 ServiceNow でサービス アカウントへのテーブル アクセスを許可する」を参照してください。

    注:

  • フィールド名に * を使用して、テーブルのすべてのフィールドにアクセス権を適用します。

内部的には、階層 ACL を評価するために重要な次のプロパティの名前と値フィールドへの読み取り専用アクセスが必要です。

  • glide.knowman.apply_article_read_criteria
  • glide.knowman.block_access_with_no_user_criteria

sys_properties テーブル内のすべてのフィールドへのアクセス権を付与しない場合は、アカウントが必要なフィールドにのみアクセスできるように制限します。

  1. 新しい ACL を作成し、読み取る特定のプロパティに対してのみ、 sys_properties テーブルへの行レベルのアクセス権を付与します。 次の値を指定します。

    1. 型: レコード
    2. アプリケーション: グローバル
    3. アクティブ: オン
    4. 決定の種類: 許可する場合
    5. 管理オーバーライド: オン
    6. 操作: 読み取り
    7. 名前: System プロパティ [sys_properties]。 隣接するフィールド セルを --None-- のままにします。
    8. 適用対象:
      1. [ 名前] を選択し、[演算子 は] を選択し、フィールド名として [glide.knowman.apply_article_read_criteria] を指定します。
      2. OR 演算子を選択します。
      3. 2 行目で[ 名前]、[演算子 ] を選択し、[ glide.knowman.block_access_with_no_user_criteria] というフィールド名を指定します。
    9. [ 条件] > [ロールが必要] で、この ACL を許可するロールを選択し、ACL を作成します。
  2. 別の新しい ACL を作成し、プロパティの [名前 ] フィールドへのアクセス権を付与します。 次の値を指定します。

    1. 型: レコード
    2. アプリケーション: グローバル
    3. アクティブ: オン
    4. 決定の種類: 許可する場合
    5. 管理オーバーライド: オン
    6. 操作: 読み取り
    7. 名前: System プロパティ [sys_properties]。 隣接するフィールドで、[名前] を選択 します
    8. 適用対象:
      1. [名前]、[演算子 ] を選択し、フィールド名を 指定します:glide.knowman.apply_article_read_criteria。 1. OR 演算子を選択します。 1. 2 行目で[ 名前]、[演算子 ] を選択し、フィールド名 を指定します:glide.knowman.block_access_with_no_user_criteria
    9. [ 条件] > [ロールが必要] で、この ACL を許可するロールを選択し、ACL を作成します。
  3. 別の新しい ACL を作成し、プロパティの [値 ] フィールドへのアクセス権を付与します。 次の値を指定します。

    1. 型: レコード
    2. アプリケーション: グローバル
    3. アクティブ: オン
    4. 決定の種類: 許可する場合
    5. 管理オーバーライド: オン
    6. 操作: 読み取り
    7. 名前: System プロパティ [sys_properties]。 隣接するフィールドで、[値] を選択 します
    8. 適用対象:
      1. [名前]、[演算子 ] を選択し、フィールド名を 指定します:glide.knowman.apply_article_read_criteria。 1. OR 演算子を選択します。 1. 2 行目で[ 名前]、[演算子 ] を選択し、フィールド名 を指定します:glide.knowman.block_access_with_no_user_criteria
    9. [ 条件] > [ロールが必要] で、この ACL を許可するロールを選択し、ACL を作成します。

作成した 3 つの ACL を使用すると、サービス アカウントを必要なアクセス許可のみに制限できます。 この制限により、必要な詳細をフェッチして、ServiceNow インスタンスのアクセス許可評価フローを決定できます。

許可リストに Microsoft 365 IP アドレスを追加する

ファイアウォールやプロキシ設定などのネットワーク構成が ServiceNow へのアクセスをブロックする場合は、 IP ファイアウォール規則 に記載されている IP アドレスを許可リストに追加してください。

ServiceNow 固有のコントロールの詳細については、「IP アドレスのAccess Control」を参照してください。

ServiceNow SSO 構成に関するコネクタのセットアップに関する問題を解決する

ServiceNow インスタンスがシングル サインオン (SSO) で構成されている場合、コネクタのセットアップ中に次の問題が発生する可能性があります。

  • OAuth プロセス中に、ServiceNow 資格情報の入力を求めず にログアウトが正常に 表示される場合があります。
  • Microsoft 365 管理者資格情報を使用して、目的のサービス アカウントではなく ServiceNow 接続を承認できます。

既定では、ServiceNow はブラウザー サインインから SSO を使用して Microsoft 365 管理者資格情報を使用して接続を試みます。 この動作により、接続が失敗し、 ログアウトが正常に メッセージが表示される可能性があります。

これらの問題を解決するには:

  1. プライベート ブラウザー ウィンドウを開き、ServiceNow サービス アカウントの資格情報を使用してサインインします。

  2. 新しいタブで、Microsoft 365 管理者資格情報を使用してMicrosoft 365 管理センターにサインインします。

    注:

    初期サインインでは、既定で ServiceNow SSO が使用される場合があります。 その場合は、正しい資格情報に切り替えます。

  3. OAuth 構成を再試行します。 これで、サービス アカウントの資格情報を使用して接続を承認するように求めるウィンドウが表示されます。

次の手順