View a markdown version of this page

ServiceNow の OAuth 2.0 クライアント認証情報認証を設定する - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ServiceNow の OAuth 2.0 クライアント認証情報認証を設定する

認証には ServiceNow Table API with OAuth 2.0 Client Credentials (2LO) を使用します。Amazon Bedrock でデータソースを設定する前に、ServiceNow インスタンスで次の手順をすべて実行します。

ステップ 1: クライアント認証情報の付与タイプを有効にする

  1. ServiceNow で、フィルターナビゲーターsys_properties.listを使用して に移動します。

  2. 次の値を使用して新しいシステムプロパティを作成します。

    • 名前glide.oauth.inbound.client.credential.grant_type.enabled

    • true | false

    • true

ステップ 2: 専用サービスアカウントを作成する

  1. ユーザー管理 > ユーザーに移動します。

  2. 新規を選択し、フォームに入力します。

    • ユーザー ID – わかりやすい名前 (例: svc.amazon.quick.kb)。

    • ウェブサービスアクセスのみ — 確認済み。これにより、インタラクティブログインが防止されます。

    • パスワード – 強力なパスワードを設定します。コネクタは OAuth を使用しますが、アカウントの作成にはパスワードが必要です。

  3. [Submit] を選択してください。

ステップ 3: サービスアカウントロールを割り当てる

  1. サービスアカウントを開きます (ユーザー管理 > ユーザー > サービスアカウント)。

  2. ロール タブで、編集を選択し、次のロールを追加します。

    • knowledge_admin – すべてのナレッジベース記事へのフル読み取りアクセス。KB あたりのユーザー基準の制限をバイパスします。

    • catalog_admin – すべてのサービスカタログ項目へのフル読み取りアクセス。カタログごとの制限をバイパスします。

  3. [保存] を選択します。

注記

保存後、合計約 14 個のロールが表示されます。ServiceNow は_admin、親ロールから含まれたロールを自動継承します。ステップ 2 (knowledge_admin と ) に記載されている 2 つのロールのみを手動で割り当てますcatalog_adminadminitil、または snc_read_onlyロールを割り当てないでください。

ステップ 4: OAuth アプリケーションを登録する

  1. System OAuth > Application Registry に移動します。

  2. 新規 > 外部クライアントの OAuth API エンドポイントを作成するを選択します。

  3. フォームに入力します。

    • 名前 – わかりやすい名前 (例: Amazon-Quick-KB-Client)。

    • リダイレクト URL – 空白のままにします。クライアント認証情報フローには必要ありません。

  4. [Submit] を選択してください。

  5. すぐにクライアント IDクライアントシークレットをコピーします。クライアントシークレットは 1 回だけ表示されます。

重要

アプリケーションを作成するには、インターセプターページを使用する必要があります。oauth_entity テーブルに直接 を挿入してレコードを作成しないでください。

ステップ 5: OAuth アプリケーションを設定する

  1. Application Registry リストからアプリケーションレコードを再度開きます。

  2. OAuth アプリケーションユーザーフィールドが表示されない場合は、Configure > Form Builder を使用して追加します。

  3. 次のフィールドを設定します。

    • OAuth アプリケーションユーザー – サービスアカウント ( などsvc.amazon.quick.kb)。

    • スコープの制限Broadly scoped

    • クライアントタイプintegration_as_a_service

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

ステップ 6: API アクセスポリシーを設定する

API アクセスポリシーがない場合、トークンは認証されますが、テーブル API は HTTP 401 を返します。以下の両方のサブステップを完了します。

インバウンド認証プロファイルを作成する
  1. システムウェブサービス > API アクセスポリシー > インバウンド認証プロファイルに移動します。

  2. 新規 を選択して設定します。

    • 名前 – 例: Amazon-Quick-KB-Client-Profile

    • Type (タイプ) – OAuth

    • OAuth エンティティ – OAuth アプリケーションを選択します。

  3. [Submit] を選択してください。

  4. プロファイルを再度開きます。認証ポリシー関連リストで、アクセス許可ポリシーの編集と追加を選択します。[保存] を選択します。

REST API アクセスポリシーを作成する
  1. システムウェブサービス > API アクセスポリシー > REST API アクセスポリシーに移動します。

  2. 新規 を選択し、以下を設定します。

    • 名前 – 例: Table API Oauth access policy

    • REST APITable API

    • REST API パスnow/table

    • すべてのメソッドに適用 – チェック済み。

    • すべてのリソースに適用 — チェック済み。

    • すべてのテーブルに適用 — チェック済み。

    • すべてのバージョンに適用 — チェック済み。

  3. [Submit] を選択してください。

  4. ポリシーを再度開きます。インバウンド認証プロファイル関連リストで、「編集」を選択し、インバウンド認証プロファイルを追加します。[保存] を選択します。

ステップ 7: OAuth フローを検証する

データソースを設定する前に、OAuth フローがend-to-endで機能することを確認します。

トークンをリクエストする:

curl -s -X POST "https://INSTANCE.service-now.com/oauth_token.do" \ -d "grant_type=client_credentials" \ -d "client_id=CLIENT_ID" \ -d "client_secret=CLIENT_SECRET"

Table API アクセスを確認します。

curl -s "https://INSTANCE.service-now.com/api/now/table/kb_knowledge?sysparm_limit=1" \ -H "Authorization: Bearer ACCESS_TOKEN"

次の表に、各検証結果と実行するアクションを示します。

検証結果
結果 意味 アクション
データを含む HTTP 200 正しく動作する Secrets Manager シークレットの作成に進みます。
空の配列を持つ HTTP 200 欠落しているknowledge_adminロール サービスアカウントにknowledge_adminロールを割り当てます。
HTTP 401 API アクセスポリシーが設定されていません インバウンド認証プロファイルと REST API アクセスポリシーの両方の設定を確認します。

ステップ 8: Secrets Manager シークレットを作成する

次のキーと値のペアを使用して、ナレッジベース AWS リージョン と同じ の AWS Secrets Manager シークレットに認証情報を保存します。

{ "clientId": "your-client-id", "clientSecret": "your-client-secret", "instanceUrl": "https://YOUR_INSTANCE.service-now.com" }
シークレットフィールド
フィールド 説明
clientId ステップ 4 のアプリクライアント ID。
clientSecret ステップ 4 の作成時に明らかになったアプリクライアントシークレット。
instanceUrl 完全な ServiceNow インスタンス URL (末尾のスラッシュなしhttps://、 を含む)。
重要

に末尾にスラッシュがあってinstanceUrlはなりません。

以下を使用してシークレットを作成します AWS Command Line Interface。

aws secretsmanager create-secret \ --name bedrock-servicenow-creds \ --secret-string file://secret.json

レスポンスからシークレット ARN を記録します。データソース として使用しますsecretArn

次の手順

シークレットを保存したら、データソースを作成します。「ServiceNow データソースを接続する」を参照してください。