ServiceNow Knowledge Copilot コネクタを使用すると、組織は、Microsoft 365 Copilot エクスペリエンス内で ServiceNow サポート情報 (KB) の記事を表示できます。 この記事では、ServiceNow Knowledge コネクタをデプロイおよびカスタマイズする手順について説明します。
高度な ServiceNow 構成情報については、「 コネクタ インジェスト用に ServiceNow Knowledge サービスを設定する」を参照してください。
前提条件
次の表は、ServiceNow 環境を構成し、ServiceNow Knowledge コネクタをデプロイする手順をまとめたものです。
| 役割 | タスク |
|---|---|
| ServiceNow 管理者 | 環境を構成する |
| ServiceNow 管理者 | 前提条件を設定する |
| Microsoft 365 管理者 | Microsoft 365 管理センターにコネクタをデプロイする |
| Microsoft 365 管理者 | コネクタの設定をカスタマイズ する (省略可能) |
コネクタをデプロイする前に、次の前提条件が満たされていることを確認します。
- Microsoft 365 管理者です。
- 構成された ServiceNow インスタンスにアクセスできます。
- 必要な ServiceNow テーブルに対して REST API アクセスが有効になっています。
- アクセス制御リスト (ACL) は、コネクタの読み取りアクセスを許可するように構成されています。
- ServiceNow インスタンス URL を特定しました。
コネクタをデプロイする
organizationの ServiceNow Knowledge コネクタを追加するには:
- Microsoft 365 管理センターの左側のウィンドウで、[Copilot>Connectors] を選択します。
- [ コネクタ ] タブに移動し、左側のウィンドウで [ ギャラリー] を選択します。
- 使用可能なコネクタの一覧から、[ ServiceNow ナレッジ] を選択します。
表示名を設定する
表示名は、Copilot 応答の参照を識別するために使用され、ユーザーが関連付けられているファイルまたは項目を認識するのに役立ちます。 また、信頼できるコンテンツを示し、コンテンツ ソース フィルターとして使用されます。
既定の ServiceNow 表示名をそのまま使用することも、organizationのユーザーが認識する名前を使用するようにカスタマイズすることもできます。
詳細については、「 コネクタ コンテンツの Copilot 検出を強化する」を参照してください。
ユーザー条件に基づいてフローを選択する
ServiceNow Knowledge コネクタでは、ユーザー条件のアクセス許可として Simple と Advanced の 2 つのフローがサポートされています。
既定値は Simple です。 このフローでは、高度なスクリプト ベースのユーザー条件とサポート情報 (親) レベルのユーザー条件は、アーティクル (子) レベルのユーザー条件が考慮されるときに考慮されません。
ServiceNow インスタンスがサポート情報またはアーティクル レベルのユーザー条件で高度なスクリプトを使用している場合、またはコネクタが記事のアクセス許可を評価するときにサポート情報または親レベルのアクセス許可を評価する場合は、詳細フローを使用します。 このフローにより、コンテンツが Microsoft Graph に取り込まれた場合の正確なアクセス許可処理が保証されます。 [詳細設定] オプションが正しく機能するには、REST API を設定する必要があります。
インスタンス URL の設定
ServiceNow サイトに接続するには、サイト URL を使用します。これは通常、次の形式です。 https://<instance-name>.service-now.com
インスタンス名は、ServiceNow 管理者ダッシュボードで確認するか、organizationで使用されるサインイン URL を確認します。
認証の種類を選択する
organizationのセキュリティ ポリシーに合わせた認証方法を選択します。 ServiceNow コネクタでは、次の認証の種類がサポートされています。
- 基本認証 - インスタンスに対して認証する ナレッジ ロールを持つ ServiceNow アカウントのユーザー名とパスワードを入力します。
- OAuth 2.0 (推奨) - 詳細については、「 OAuth 2.0」を参照してください。
- OpenID Connect Microsoft Entra ID - 詳細については、「OpenID Connect のMicrosoft Entra ID」を参照してください。
OAuth 2.0
ServiceNow Knowledge コネクタがアクセスできるように、ServiceNow インスタンスで OAUTH エンドポイントをプロビジョニングします。 詳細については、「クライアントが インスタンスにアクセスするためのエンドポイントを作成する」を参照してください。
次の表の情報を使用して、エンドポイント作成フォームを完成します。
| フィールド | 説明 | おすすめの値 |
|---|---|---|
| 名前 | OAuth アクセスが必要なアプリケーションを識別する一意の値。 | Microsoft Search |
| クライアント ID | アプリケーションの読み取り専用の自動生成された一意の ID。 インスタンスは、アクセス トークンを要求するときにクライアント ID を使用します。 | 該当なし |
| クライアント シークレット | この共有シークレット文字列を使用すると、ServiceNow インスタンスと Microsoft Search が相互の通信を承認します。 | シークレットをパスワードとして扱うことで、セキュリティのベスト プラクティスに従ってください。 |
| リダイレクト URL | 承認サーバーがリダイレクトする必要なコールバック URL。 |
M365 Enterprise の場合: https:// gcs.office。com/v1.0/admin/oauth/callback, For M365 Government: https://gcsgcc.office.com/v1.0/admin/oauth/callback |
| ロゴ URL | アプリケーション ロゴのイメージを含む URL。 | 該当なし |
| アクティブ | [チェック] ボックスを選択して、アプリケーション レジストリをアクティブにします。 | アクティブに設定する |
| 更新トークンの有効期間 | 更新トークンが有効な秒数。 既定では、更新トークンの有効期限は 100 日 (8,640,000 秒) です。 | 31,536,000 (1 年間) |
| アクセス トークンの有効期間 | アクセス トークンが有効な秒数。 | 43,200 (12 時間) |
インスタンスに接続するクライアント ID とクライアント シークレットを入力します。 接続後、ServiceNow アカウントの資格情報を使用してクロールのアクセス許可を認証します。 アカウントには、少なくとも ナレッジ ロールが必要です。 読み取りアクセスを提供するテーブル レコードとインデックス ユーザー条件のアクセス許可の詳細については、「 インデックス項目へのアクセス許可を設定する」を参照してください。
OpenID Connect のMicrosoft Entra ID
OpenID Connect Microsoft Entra ID使用するには:
Microsoft Entra IDで新しいアプリを 1 つのテナントとして登録します。 リダイレクト URI は必要ありません。 詳細については、「 アプリケーションの登録」を参照してください。
アプリの アプリケーション (クライアント) ID と ディレクトリ (テナント) ID を コピーします。
アプリのクライアント シークレットを作成し、安全に保存します。
- [管理>証明書とシークレット] に移動します。
- 新しいクライアント シークレットを選択します。
- 名前を指定し、[ 保存] を選択します。
サービス プリンシパル オブジェクト ID を取得するには、次の PowerShell コマンドレットを使用します。
Install-Module -Name Az -AllowClobber -Scope CurrentUserConnect-AzAccountGet-AzADServicePrincipal -ApplicationId "Application-ID""Application-ID" を、手順 2 で登録したアプリケーションのアプリケーション (クライアント) ID に置き換えます。 PowerShell 出力からの ID オブジェクトの値に注意してください。この値はサービス プリンシパル オブジェクト ID です。
または、Microsoft Entra 管理センターから情報を取得できます。
a. アプリの登録で、[ 概要] に移動します。 b. ローカル ディレクトリでマネージド アプリケーションを選択します。 c. URL を選択し、 ObjectID をコピーします。 これはサービス プリンシパル オブジェクト ID です。
ServiceNow インスタンスで、新しい OAuth OIDC エンティティを登録します。 詳細については、「 OAuth OIDC プロバイダーの作成」を参照してください。 登録フォームの次の表に示す値を使用します。は、他のフィールドの既定値のままにします。
| フィールド | 説明 | 値 |
|---|---|---|
| 名前 | OAuth OIDC エンティティの一意の名前。 | Microsoft Entra ID |
| クライアント ID | Microsoft Entra ID登録から | アプリケーション (クライアント) ID |
| クライアントの秘密情報 | Microsoft Entra ID登録から | クライアント シークレット |
注:
OAuth OIDC エンティティを作成すると、クライアント シークレットが ServiceNow で自動的に生成されます。 このクライアント シークレットを、Microsoft Entra 管理 センターで生成されたクライアント シークレットに置き換えます。
[ OAuth OIDC プロバイダー構成] フィールドで、検索アイコンを選択し、[ 新規] を選択します。
OIDC プロバイダー構成フォームに次のように入力します。
フィールド 値 OIDC プロバイダー Microsoft Entra ID OIDC メタデータ URL 次の URL を使用します: https://login.microsoftonline.com/<tenantId>/.well-known/openid-configuration。
<tenantId>をディレクトリ (テナント) ID に置き換えます。OIDC 構成キャッシュの有効期間 120 アプリケーション グローバル ユーザー要求 サブ ユーザー フィールド ユーザー ID JTI 要求の検証を有効にする 無効 [ 送信] を 選択して構成を保存します。
ServiceNow アカウントを作成します。 詳細については、「 ServiceNow でユーザーを作成する」を参照してください。 次の値を使用します。他のフィールドは既定値のままにします。
| フィールド | おすすめの値 |
|---|---|
| ユーザー ID | サービス プリンシパル ID |
| Web サービスへのアクセスのみ | Checked |
- ServiceNow アカウントにナレッジ ロールを割り当てます。 詳細については、「 ユーザーにロールを割り当てる」を参照してください。 管理センター構成ウィザードのクライアント ID とクライアント シークレットとしてアプリケーション ID を使用して、OpenID Connect Microsoft Entra ID認証します。
注:
[ 割り当てが必要] をオンにしないでください。 詳細については、「エンタープライズ アプリケーションのプロパティ - Microsoft Entra ID」を参照してください。
API 名前空間を追加する
Advanced フローを使用している場合は、ServiceNow インスタンスで作成した API 名前空間を入力します。 詳細については、「 REST API の設定」を参照してください。
ロールアウト
制限付き対象ユーザーにロールアウトするには、[制限対象ユーザー へのロールアウト] の横にあるトグルを選択し、コネクタをロールアウトするユーザーとグループを指定します。 詳細については、「 Copilot コネクタの段階的ロールアウト」を参照してください。
[ 作成] を 選択して接続をデプロイします。 ServiceNow Knowledge Copilot コネクタは、コンテンツのインデックス作成をすぐに開始します。
次の表に、設定される既定値を示します。 これらの値をカスタマイズするには、「 設定のカスタマイズ」を参照してください。
| カテゴリ | Setting | 既定値 |
|---|---|---|
| ユーザー | アクセス許可 | データ ソース内のコンテンツにアクセスできるユーザーのみ。 |
| ユーザー | ID のマッピング | Microsoft Entra ID を使用してマップされたデータ ソース ID。 |
| コンテンツ | クエリ文字列 | active=true^workflow_state=published |
| コンテンツ | プロパティの管理 | 既定のプロパティとスキーマを表示するには、「 プロパティの管理」を参照してください。 |
| 同期 | 増分クロール | 頻度: 15 分ごと |
| 同期 | フル クロール | 頻度: 毎日 |
接続を作成した後、Microsoft 365 管理センターの [コネクタ] セクションで状態 (インデックス付きユーザーの数 & 記事を含む) を確認できます。 接続の状態が [準備完了] の場合は、ナレッジ記事の sys_id を指定し、そのユーザーのアクセス許可を確認することで、接続を検証できます。 詳細については、「インデックス付きコンテンツ Microsoft 365 Copilot コネクタの検索と検証」を参照してください。
設定のカスタマイズ
ServiceNow Knowledge コネクタ設定の既定値をカスタマイズできます。 設定をカスタマイズするには、管理センターのコネクタ ページで [ カスタム セットアップ] を選択します。
ユーザー設定をカスタマイズする
アクセス許可
ServiceNow Knowledge Copilot コネクタでは、次のユーザー検索アクセス許可がサポートされています。
- すべてのユーザー
- このデータ ソースへのアクセス権を持つユーザーのみ (既定)
[ すべてのユーザー] を選択すると、すべてのユーザーの検索結果にインデックス付きデータが表示されます。 [このデータ ソースへのアクセス権を持つユーザーのみ] を選択すると、インデックス付きデータが検索結果に表示され、アクセス権を持つユーザーが表示されます。
ユーザー条件のアクセス許可を読み取るための 簡易 フローを選択した場合、ServiceNow Knowledge コネクタは次のようにアクセス許可を処理します。
- アーティクルに
Can Readユーザー条件がある場合、これらの条件はインジェスト中に適用されます。 ナレッジ ベース レベルのCan ReadまたはCan Contributeユーザー条件は無視されます。 - アーティクルとサポート情報
Cannot Read両方のユーザー条件がある場合は、両方が適用されます。 - ユーザーが記事レベルの
Can Readユーザー条件の一部であり、サポート情報レベルではない場合は、ServiceNow でアクセスできない場合でも、Microsoft 365 サーフェスに記事が表示される可能性があります。 ユーザーに記事が表示されないようにするには、記事レベルのCan Readユーザー条件からユーザーを削除します。 - ナレッジ記事にユーザー条件が適用されていない場合は、organizationのすべてのユーザーの結果に表示されます。
ユーザー条件の読み取りアクセス許可の詳細フローを選択した場合、記事レベルのアクセス許可を評価するときに、サポート情報 (親) レベルのアクセス許可とナレッジ記事 (子) レベルのアクセス許可の両方が考慮されます。 これは、ServiceNow でのアクセス許可の処理方法です。 詳細については、「 ナレッジ ベースとナレッジ記事へのアクセスの管理」を参照してください。
注:
高度なフローアクセス許可管理機能は現在プレビュー段階です。
ID のマッピング
既定では、ServiceNow は電子メール ID を Microsoft Entra ID (UPN またはメール) にマップします。 organizationで異なる ID 属性が使用されている場合は、カスタム マッピング式を指定できます。 詳細については、「Microsoft Entra ID以外の ID をマップする」を参照してください。
コンテンツ設定をカスタマイズする
クエリ文字列
ServiceNow では、次の既定のフィルターが使用されます: active=true^workflow_state=published。
このフィルターを変更して、組織のニーズに基づいて特定の記事にのみインデックスを付けることができます。 ServiceNow のエンコードされたクエリ文字列ビルダーを使用して、カスタム フィルターを作成します。 詳細については、「 フィルターを使用してエンコードされたクエリ文字列を生成する」を参照してください。
プロパティの管理
プロパティは、次の方法で管理できます。
- ServiceNow からインデックスにプロパティを追加します。
- organizationの URL 形式を反映するように AccessUrl プロパティをカスタマイズします。
次の表は、ServiceNow Knowledge コネクタが既定でインデックスを作成するプロパティの一覧です。
注:
表示することはできますが、これらの既定のプロパティのスキーマ属性 (検索可能、クエリ可能、取得可能、リファイン可能)、セマンティック ラベル、エイリアスは編集できません。 ただし、接続を作成するときに、さらにカスタム プロパティを追加し、プロパティ属性を編集できます。 接続を作成した後、プロパティ属性を編集することはできません。
| プロパティ | セマンティック ラベル | 説明 | スキーマ属性 |
|---|---|---|---|
| AccessUrl | url | データソース内のアイテムのターゲット URL。 | 取得 |
| アクティブ | アーティクルが現在アクティブであり、ユーザーが表示または検索できるかどうかを示すブール型フィールド。 | ||
| ArticleType | 記事の形式。多くの場合、HTML または Wiki の種類です。 | クエリ | |
| 設定元 | ブロック | データ ソース内のアイテムに参加/共同作業を行ったすべてのユーザー | クエリ、リファイン取得 |
| CanReadUserCriteria | 記事を表示するためのアクセス権を持つ対象ユーザーを定義するユーザー条件を提供します。 | ||
| CannotReadUserCriteria | アーティクルを表示するために明示的にアクセスが拒否される対象ユーザーを定義するユーザー条件を提供します。 | ||
| CmdbCi | CMDB からの構成項目 (CI) への参照。記事を特定の資産またはサービスにリンクします。 | クエリ、取得、検索 | |
| 説明 | 記事のコンテンツの簡単な概要。これは、ユーザーが検索結果から記事の内容を理解するのに役立ちます。 | 取得、検索 | |
| EntityType | 記事に関するエンティティの種類 (ナレッジ) | クエリ、絞り込み、取得 | |
| HelpfulCount | ユーザーが記事を役立つとマークした回数。 | ||
| IconUrl | IconUrl | 記事のカテゴリまたは種類を表すアイコン URL。 | 取得 |
| ItemPath | サポート情報階層内のアーティクルのパス。 | クエリ、絞り込み、取得、検索 | |
| KbCategory | 記事がサポート情報内で属しているカテゴリ。 | クエリ、取得、検索 | |
| KbKnowledgeBase | アーティクルが格納されているサポート情報。 | クエリ、取得、検索 | |
| KbKnowledgeBaseUrl | サポート情報にリンクする URL | クエリ、取得 | |
| MetaDescription | 検索エンジンの結果で使用される簡単な説明 | 取得、検索 | |
| 番号 | ナレッジ記事に自動的に割り当てられる一意識別子 ('KB0000001' など) | クエリ、取得、検索 | |
| PreviewContent | 記事のクイック プレビューに使用されるコンテンツ。 | 取得 | |
| Published | 記事がいつ公開され、ユーザーに表示されたかを示す日付/タイム スタンプ。 | クエリ、取得 | |
| 評価 | ユーザーが記事に与える平均評価。 | クエリ、取得 | |
| ShortDescription | タイトル | Copilot やその他の検索エクスペリエンスに表示するアイテムのタイトル | クエリ、取得、検索 |
| SysClassName | ナレッジのテンプレートを識別します。 標準テンプレートの知識、その他の値は FAQ、方法などです。 | ||
| SysCreatedBy | 作成者 | 記事を作成したユーザーの名前 | クエリ、絞り込み、取得 |
| SysCreatedOn | 作成日時 | アーティクルが作成された日付と時刻 | クエリ、絞り込み、取得 |
| SysDomain | ナレッジ 記事がマルチドメイン インスタンスに属するドメイン | ||
| SysId | バックエンド識別に使用される記事の一意の 32 文字 ID。 | クエリ、取得 | |
| SysModCount | アーティクルが変更された回数。 | 取得 | |
| SysTags | 検索可能性とorganizationを向上させるために記事に追加できるキーワードまたはタグ。 | クエリ、絞り込み、取得、検索 | |
| SysUpdatedBy | 最終更新者 | 最近記事を編集したユーザーの名前。 | クエリ、絞り込み、取得 |
| SysUpdatedOn | 最終更新日時 | アイテムが最後に変更された日時 | クエリ、絞り込み、取得 |
| SysViewCount | 記事が表示された回数。 | クエリ、取得 | |
| TaxonomyTopic | 構造化organizationに使用される定義済みの分類のトピックへの参照。 | クエリ、取得、検索 | |
| トピック | アーティクル分類の別のフィールド | クエリ、取得、検索 | |
| UseCount | インシデントや問題など、記事が別のレコードに添付された回数。 | ||
| ValidTo | 記事の有効期限。 この日付を過ぎると、検索結果に記事は返されません | クエリ、取得 | |
| WorkflowState | ライフサイクル内の記事の現在の状態 ('Draft'、'Review'、'Published'、'Retired' など)。 | クエリ、絞り込み、取得 | |
コンテンツ Content |
詳細な情報が書かれている記事の本文。 | 検索 |
AccessURL プロパティをカスタマイズする
AccessURL プロパティのカスタム式を定義するには:
- [ コンテンツ ] タブで、[ プロパティの管理] に移動します。
- [ プロパティ ] テーブルで、 AccessURL プロパティを選択します。
- サイド パネルの [既定の 式] で、[ 新しい既定 の式] フィールドにカスタム式を入力します。 動的値
${PropertyName}構文を使用します。 例:https://instancedomain.service-now.com/sp?id=kb_article&sys_id=${SysId}。 - [変更の保存] を選択します。
- 結果をプレビューするには、[ データのプレビュー ] を選択し、カスタマイズされたプロパティまでスクロールします。
注:
- AccessURL プロパティをカスタマイズするには、新しい ServiceNow Knowledge 接続を作成する必要があります。 スキーマ プロパティをカスタマイズするための既存の接続の編集は、現在サポートされていません。
プロパティ フィルターに基づくルールを使用して、特定のナレッジ 記事の既定の式をオーバーライドできます。 ルールを追加するには
- [ 式を構成する追加の規則を設定する] で、[ 新しい規則の追加] を選択します。
- ルール パネルで、次の操作を行います。
- フィルター プロパティ (カテゴリなど) を選択します。
- 1 つ以上の値を入力します (コンマ区切り、大文字と小文字が区別されます)。
- これらの値のカスタム式を定義します。
- [変更の保存] を選択します。
- プレビューするには、[ データのプレビュー ] を選択し、カスタマイズしたプロパティまでスクロールします。
注:
1 つの項目に複数のルールが適用される場合、リスト内の最初のルールが使用されます。 変更は、次のフル クロール後に有効になります。
詳細については、「特定の スキーマ プロパティの値をカスタマイズする」を参照してください。
同期間隔をカスタマイズする
インデックス付きコンテンツを最新の状態に保つように同期スケジュールを構成します。
- フル クロール – すべてのコンテンツのインデックスを再作成し、削除されたコンテンツを削除し、すべてのアクセス許可を更新します。 既定の頻度は毎日です。
- 増分クロール – アクセス許可の更新ではなく、変更されたコンテンツのみを同期します。 既定の頻度は 15 分ごとです。
重要
- ID (ユーザーとグループ) とアクセス許可は、フル クロール中にのみ更新されます。 増分クロールでは、アクセス許可やグループ メンバーシップは更新されません。
- 最初のフル クロール中に、ID 同期 (ユーザーの読み取り、ユーザー条件、グループ メンバーシップなどのユーザー条件へのユーザーのマッピングなど) が最初に実行され、続いてコンテンツ同期が実行されます。これにより、取り込まれた項目に適切なアクセス許可が確実にマップされます。
- その後の定期的なフル クロールでは、コンテンツと ID の同期が並列で行われます。 コンテンツと ID の同期の両方が完了すると、定期的なフル クロールが完了します。
- 最初のクロールには、ユーザーの初めての検出とインジェスト、ユーザー条件、マッピングとコンテンツ項目が含まれるため、定期的なフル クロールは最初のフル クロールよりも高速です。 定期的なフル クロールでは、新しい項目、ユーザー、およびユーザーの条件のみが取り込まれます。
詳細については、「 同期設定のガイドライン」を参照してください。