このページでは、ServiceNow データストアを作成する前にサードパーティの構成を行う方法について説明します。
前提条件
この設定を完了するには、[ServiceNow site for _Personal Developer Instance (PDI)] が必要です。このインスタンスは、OAuth と権限を構成するための専用環境を提供します。
- インスタンス URL: 環境に固有の URL が必要です。例:
https://your-instance.service-now.com - 認証情報: インスタンスへの管理者権限が必要です。
ServiceNow アカウントを作成する
アカウントまたは PDI をまだお持ちでない場合は、次の手順に沿って設定します。
Developer Site で ServiceNow アカウントを作成するには:
- ServiceNow デベロッパー ポータルにアクセスし、[Sign in] をクリックします。
- [New user? Get a ServiceNow ID] を選択します。
- 情報を入力して、[Sign Up] をクリックします。メールアドレスを入力します。受信トレイに届いた確認リンクを使用してアカウントを確認します。
Personal Developer Instance(PDI)を作成するには:
- アカウントの認証情報を使用して ServiceNow デベロッパー ポータル アカウントにログインします。
- ログインしたら、ポータルのプロンプトに沿って [Request an instance] を選択します。プロビジョニングが完了すると、「Your instance is ready!」という確認ダイアログが表示されます。
- 認証情報を保存する: インスタンスの準備が整うと、ポータルにインスタンス URL、管理者ユーザー名、管理者パスワードが表示されます。これらは、次の構成手順で使用するために保存しておきます。
- 新しい環境にアクセスするには、Developer Site のヘッダーにある [Start Building] ボタンをクリックします。インスタンスが新しいタブで開きます。
構成の設定
Gemini Enterprise を ServiceNow に接続するには、ServiceNow インスタンスで OAuth 2.0 アプリケーションを構成する必要があります。構成手順は、取り込みコネクタを使用しているか、連携コネクタを使用しているかによって異なります。違いの詳細については、コネクタタイプをご覧ください。
コネクタの構成手順を表示するには、次のメニューから選択します。
連携コネクタに OAuth を設定する
フェデレーション検索とアクションを実行するには、OAuth 認可コード付与フローを設定するだけで済みます。これにより、リアルタイムの検出とタスクの実行に必要なクライアント シークレットが提供されます。
連携コネクタの OAuth 認証情報を作成するには:- [All] > [System OAuth] > [Application registry] に移動します。
- [New] > [Inbound integration experience] > [New integration] をクリックします。
- 必須項目を入力します。
- 統合名: OAuth 認証情報の一意の名前を入力します(例: Gemini Enterprise OAuth Actions)。
- Active: チェックボックスをオンにします。
- 権限付与タイプ: OAuth 認証コード を選択します。
- リダイレクト URL: 「
https://vertexaisearch.cloud.google.com/console/oauth/default_oauth.html,https://vertexaisearch.cloud.google.com/oauth-redirect」と入力します。 - スコープと API アクセス ポリシー: [選択したスコープの API へのアクセスのみを許可する] チェックボックスがオフになっていることを確認します。また、[認証スコープ] は選択しないでください。このフィールドを空白のままにすると、統合は広範なスコープになります。
- [Submit] をクリックして、認証情報を作成します。
- 送信したら、レコード名をクリックしてクライアント ID を表示し、クライアント シークレットのマスクを解除します。後で使用するため、保存しておきます。
Table API のアクセス要件
LLM が結果を正常に取得するには、エンドユーザーに Table API エンドポイントへのアクセスを許可するシステムロール(通常は snc_internal またはカスタム REST ロール)が必要です。
| エンドポイント | ServiceNow テーブル | 取得されたデータ |
|---|---|---|
/api/now/table/incident |
インシデント | チケット、ステータスの更新、解決の詳細。 |
/api/now/table/sc_catalog |
カタログ | 利用可能なサービス カタログの定義と構造。 |
/api/now/table/sc_cat_item |
カタログ アイテム | リクエスト可能な個々の商品またはサービス。 |
/api/now/table/sys_attachment |
添付ファイル | レコードに添付されたファイルのメタデータ(ファイル名、サイズ)。 |
/api/now/table/kb_knowledge |
知識 | 公開済みの記事、手順、トラブルシューティング ガイド。 |
セキュリティとデータ プライバシー: エンドユーザー認証
ServiceNow コネクタは、エンドユーザー認証情報を使用して Table API を使用してクエリを実行します。エンドユーザーの認証情報を使用することで、検索エクスペリエンスが ServiceNow UI と厳密に 1:1 のセキュリティ パリティを維持できます。
セキュリティ モデル
クエリが ServiceNow Table API に送信されると、コネクタは認証済みユーザーのセキュリティ コンテキスト内でクエリを実行します。
- ID の同等性: コネクタはユーザーの認証情報を使用するため、システムは API リクエストを ServiceNow のグローバル検索バーのクエリと同じように扱います。
- 継承された ACL: ServiceNow は、データベース レベルですべてのアクセス制御リスト(ACL)を評価します。ユーザーにレコードの読み取り権限がない場合、Table API はそのレコードに対して空の結果または 403 エラーを返します。
- ユーザー条件の適用: ナレッジ(
kb_knowledge)とカタログ アイテム(sc_cat_item)の場合、ServiceNow はユーザー条件を適用します。API は、ユーザーが「利用可能」の要件を満たしていないアイテムを自動的に除外します。
取り込みコネクタに OAuth を設定する
取り込みコネクタを使用してレコードを同期してインデックスに登録するには、OAuth 認証情報を作成してロールを構成する必要があります。
認証情報を取得する
インバウンド統合を使用して取り込みコネクタの OAuth 認証情報を作成するには、2 つの認証情報セットを作成する必要があります。
- 取り込み認証情報: OAuth リソース オーナー パスワード認証情報の権限付与タイプを使用します。
- アクション認証情報: OAuth 認証コード権限付与タイプを使用します。
1. 取り込み認証情報を作成する
- 管理者認証情報を使用して PDI ServiceNow インスタンスにログインします。
- [All] > [System OAuth] > [Application registry] に移動します。
- [New] をクリックします。
- [New inbound integration experience] > [New integration] > [OAuth resource owner password credential 権限付与タイプ] をクリックします。
- 必須項目を入力します。
- Name: 一意の名前を入力します。
- プロバイダ名: プロバイダ名を入力します。
- Active: チェックボックスをオンにします。
- スコープと API セキュリティ: [選択したスコープの API へのアクセスのみを許可する] チェックボックスがオフになっていることを確認します。
- [送信] をクリックします。
- レコード名をクリックしてクライアント ID を表示し、クライアント シークレットのマスクを解除します。後で使用するため、保存しておきます。
2. Actions 認証情報を作成する
- [All] > [System OAuth] > [Application registry] に移動し、[New] をクリックします。
- [New inbound integration experience] > [New integration] をクリックします。
- 必須項目を入力します。
- 統合名: OAuth 認証情報の一意の名前を入力します(例: Gemini Enterprise OAuth Actions)。
- Active: チェックボックスをオンにします。
- 権限付与タイプ: OAuth 認証コード を選択します。
- リダイレクト URL: 「
https://vertexaisearch.cloud.google.com/oauth-redirect」と入力します。 - スコープと API アクセス ポリシー: チェックボックスがオフになっていることを確認し、認証スコープを選択しないでください。
- [Submit] をクリックして、認証情報を作成します。
- レコード名をクリックしてクライアント ID を表示し、クライアント シークレットのマスクを解除します。後で使用するため、保存しておきます。
ユーザー アカウントを設定して管理者権限を割り当てる
デフォルトのシステム管理者アカウントを使用するか、新規ユーザーを作成して管理者ロールをユーザー ID に割り当てることができます。
管理者ロールを割り当てる
自分のロールを security_admin に昇格させるには:
- 管理者ロールを持つユーザーとして ServiceNow インスタンスにログインします。
- プロフィール アイコンをクリックし、[ロールを昇格] を選択します。
- [security_admin] を選択し、[Update] をクリックします。
別のユーザーに security_admin を付与するには:
- [All] を選択し、[User Administration] で [Users] を選択します。
- ロールを昇格させる必要があるユーザーを見つけて選択します。
- [Roles] タブで [Edit] をクリックします。
- [Collection] から security_admin を選択し、[Roles List] に追加します。
注: security_admin ロールを持つユーザーは、プロフィール アイコンをクリックして [Elevate Role] を選択し、ロールを使用する必要があります。
ユーザーのロールと権限を設定する
Gemini Enterprise で ServiceNow データストアを作成するには、ユーザーに適切なロールと権限を付与する必要があります。
次のいずれかのオプションを選択して、ServiceNow インスタンスのユーザーロールと権限を設定します。
可視性とアクセス制御の詳細については、インシデントの可視性とアクセス制御をご覧ください。
ACL ルールを含むカスタムロールを作成する(推奨)
最小限の権限セットを持つカスタムロールを作成します。この手順では、インシデント エンティティへの最も安全で制限の厳しいアクセスが提供されます。ユーザーは、直接関連付けられているインシデントのみを検索できます。
- [All] > [User administration] > [Roles] に移動します。
- [New] をクリックして名前を入力し、[Submit] をクリックします。
- [システム セキュリティ] > [アクセス制御(ACL)] に移動します。
- [New] をクリックして、新しい ACL ルールを作成します。
- 必要なすべてのテーブルに対するアクセス権が付与されるまで、次の手順を繰り返します。
sys_user_roleを例として使用して、テーブルへのアクセス権が付与される仕組みを確認します。- [Submit] をクリックして、ロールを選択します。
必要なテーブル アクセス権
コネクタは、各エンティティを実行するためにこれらのテーブルに対するアクセス権が必要です。| テーブル名 | 説明 |
|---|---|
インシデント |
検索結果にインシデントを表示します。 |
sc_cat_item |
検索結果にカタログ アイテムを表示します。 |
sc_cat_item_user_criteria_mtom |
ユーザー条件に基づいて、カタログ アイテムにアクセスできるユーザーを表示します。 |
sc_cat_item_user_criteria_no_mtom |
ユーザー条件に基づいて、カタログ アイテムにアクセスできないユーザーを表示します。 |
sc_cat_item_user_mtom |
カタログ アイテムにアクセスできるユーザーを表示します。 |
sc_cat_item_user_no_mtom |
カタログ アイテムにアクセスできないユーザーを表示します。 |
kb_knowledge |
検索結果に表示できるナレッジベースの記事のリスト。 |
kb_knowledge_base |
検索結果に表示できるナレッジベースのリスト。 |
kb_uc_can_contribute_mtom |
ユーザーの条件に基づいて、ナレッジベースに貢献できるユーザーを表示します。 |
kb_uc_can_read_mtom |
ユーザー条件に基づいて、ナレッジベースを参照できるユーザーを表示します。 |
kb_uc_cannot_read_mtom |
ユーザー条件に基づいて、ナレッジベースを参照できないユーザーを表示します。 |
sys_user_role |
ユーザーに割り当てることができるロールのリスト。 |
sys_user_has_role |
ユーザーにマッピングされたロールのリスト。 |
sys_user_group |
ユーザー グループ セグメントのリスト。 |
sys_user_grmember |
グループのグループ メンバーのリスト。 |
sys_user |
すべてのユーザーのリスト。 |
core_company |
すべての会社属性のリスト。 |
cmn_location |
すべてのロケーション属性のリスト。 |
cmn_department |
すべての部門属性のリスト。 |
user_criteria |
ユーザー条件レコードのリスト。 |
sp_portal |
検索結果のリンクポータル URI。 |
m2m_sp_portal_knowledge_base |
検索結果のナレッジベースの記事があるポータルのリンク URI。 |
m2m_sp_portal_catalog |
検索結果のカタログ アイテムがあるポータルのリンク URI |
ACL アクセス権の付与と確認
コネクタには、sc_cat_item テーブルのカタログ アイテム フィールドに対する ACL アクセス権が必要です。
アクセス権を付与して確認する手順は次のとおりです。
-
新しい ACL ルールを作成し、フォームの [Name] フィールドに「
sc_cat_item.*」と手動で入力して、明示的なアクセス権を付与します。
「 sc_cat_item.*」と入力 - ACL が更新されていることを確認します。
- 検索バーで
sys_security_acl_role_list.doに移動します。 - 検証するロールを [Role] に設定します。
検証するロールを選択 - 必要な ACL がロールに割り当てられていることを確認します。
エンティティ管理者を含むカスタムロールを使用する
管理者ロールの使用は、過度に強力な権限の割り当てを避けたいチームや組織には適していない場合があります。このオプションでは、必要なアクセス権を付与する 3 つの特定の権限を持つロールが提供されます。
- [All] > [System security] > [Users and groups] > [Roles] に移動します。
- [New] を選択し、名前を入力します。
- [送信] をクリックします。
- 作成したロールをリスト内で探します。
- [Contains roles] > [Edit] に移動します。
-
新しく作成したロールに次のロールを追加し、[保存] をクリックします。
catalog_adminknowledge_adminincident_manager
ロールを追加して [Save] ボタンをクリック -
更新されたロールを確認します。
ロールを確認
管理者ロールを使用する
管理者ロールを使用してデータを取得できます。インスタンスで構成されたデフォルトの管理者ロールを使用するか、次の手順で管理者ロールを持つ新しいユーザーを作成します。
- [All] > [User administration] > [Users] に移動します。
- 新しいユーザーを作成します。
-
[Web service access only] を有効にします。[Web service access only] を選択すると、非インタラクティブ ユーザーが作成されます。
- インタラクティブ ユーザーは、標準の認証情報または SSO を使用して ServiceNow UI とサービスポータルにログインし、UI ページと API エンドポイントにフルアクセスできます。
- 非インタラクティブ ユーザーは UI へのアクセスが制限されています。アクセスは、サービス間統合のためのプログラムによる API 接続の承認のみに制限されます。
- ユーザーを作成したら、ユーザーリストからユーザーを選択します。
- [Roles] > [Edit] をクリックします。
- 管理者を追加します。
- [Save] をクリックして、ロールのリストをユーザーに追加します。
- [Set password] をクリックしてパスワードを自動生成し、保存します。
ユーザーにロールを付与する
- [All] > [User administration] > [Users] に移動します。
- 新しいユーザーを検索または作成します。ユーザーがいない場合は、[System security] > [Users and groups] > [Users] に移動します。
- [New] をクリックします。
- ユーザー テーブルに新しいサービス アカウントを作成します。[Web service access only] をクリックしてください。
- Rolesまでスクロールして、Editをクリックします。
- 作成したロールを付与して、ユーザーに割り当てます。前のステップで作成したロールのタイプに基づいて適切なロールを選択し、ユーザーに割り当てます。[保存] をクリックします。
- ACL を含むカスタムロールを表示します。
- ユーザーのユーザー名とパスワードを取得し、[Set password] をクリックします。
- パスワードを自動生成して、後で使用できるように保存します。
インシデントの可視性とアクセス制御
セキュリティを強化し、意図しないデータ漏洩を防ぐために、ServiceNow コネクタはインシデント エンティティに制限付きのアクセス制御を使用します。これにより、エンドユーザーは直接関連付けられているインシデントのみを表示できます。
この制限的なアプローチの一環として、コネクタはインシデントの可視性に関する広範なロールベースの権限を考慮しません。itil や sn_incident_read などの標準の ServiceNow ロールは、ServiceNow UI でユーザーにすべてのインシデントの可視性を付与する可能性がありますが、Gemini Enterprise で同じレベルのアクセス権が付与されることはありません。
次のいずれかのロールを持つユーザーは、インシデントをグローバルに確認でき、すべてのインシデントを表示できます。
adminincident_managerchange_manager
それ以外のユーザーは、インシデントを開いた、再開した、解決した、クローズした場合にのみ、インシデントを表示できます。また、次のユーザーもインシデントを表示できます。
- インシデントの割り当てグループのユーザー。
- インシデントに関連付けられている呼び出し元。
- 割り当てた相手。
- ウォッチリストに登録されているユーザー。
- 作業メモにリストされているユーザー。
- 追加の割り当て先にリストされているユーザー。
この動作により、Gemini Enterprise のユーザーが、アクセス権限のないインシデントを検索することを防ぎます。ServiceNow の広範な権限よりも制限が追加されているため、この動作により、ServiceNow でアクセス権があるインシデントでも Gemini Enterprise では見つけられないことがあります。