翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ServiceNow の OAuth 2.0 クライアント認証情報認証を設定する
認証には ServiceNow Table API with OAuth 2.0 Client Credentials (2LO) を使用します。Amazon Bedrock でデータソースを設定する前に、ServiceNow インスタンスで次の手順をすべて実行します。
ステップ 1: クライアント認証情報の付与タイプを有効にする
-
ServiceNow で、フィルターナビゲーター
sys_properties.listを使用して に移動します。 -
次の値を使用して新しいシステムプロパティを作成します。
-
名前 –
glide.oauth.inbound.client.credential.grant_type.enabled -
型 –
true | false -
値 –
true
-
ステップ 2: 専用サービスアカウントを作成する
-
ユーザー管理 > ユーザーに移動します。
-
新規を選択し、フォームに入力します。
-
ユーザー ID – わかりやすい名前 (例:
svc.amazon.quick.kb)。 -
ウェブサービスアクセスのみ — 確認済み。これにより、インタラクティブログインが防止されます。
-
パスワード – 強力なパスワードを設定します。コネクタは OAuth を使用しますが、アカウントの作成にはパスワードが必要です。
-
-
[Submit] を選択してください。
ステップ 3: サービスアカウントロールを割り当てる
-
サービスアカウントを開きます (ユーザー管理 > ユーザー > サービスアカウント)。
-
ロール タブで、編集を選択し、次のロールを追加します。
-
knowledge_admin– すべてのナレッジベース記事へのフル読み取りアクセス。KB あたりのユーザー基準の制限をバイパスします。 -
catalog_admin– すべてのサービスカタログ項目へのフル読み取りアクセス。カタログごとの制限をバイパスします。
-
-
[保存] を選択します。
注記
保存後、合計約 14 個のロールが表示されます。ServiceNow は_admin、親ロールから含まれたロールを自動継承します。ステップ 2 (knowledge_admin と ) に記載されている 2 つのロールのみを手動で割り当てますcatalog_admin。admin、itil、または snc_read_onlyロールを割り当てないでください。
ステップ 4: OAuth アプリケーションを登録する
-
System OAuth > Application Registry に移動します。
-
新規 > 外部クライアントの OAuth API エンドポイントを作成するを選択します。
-
フォームに入力します。
-
名前 – わかりやすい名前 (例:
Amazon-Quick-KB-Client)。 -
リダイレクト URL – 空白のままにします。クライアント認証情報フローには必要ありません。
-
-
[Submit] を選択してください。
-
すぐにクライアント ID とクライアントシークレットをコピーします。クライアントシークレットは 1 回だけ表示されます。
重要
アプリケーションを作成するには、インターセプターページを使用する必要があります。oauth_entity テーブルに直接 を挿入してレコードを作成しないでください。
ステップ 5: OAuth アプリケーションを設定する
-
Application Registry リストからアプリケーションレコードを再度開きます。
-
OAuth アプリケーションユーザーフィールドが表示されない場合は、Configure > Form Builder を使用して追加します。
-
次のフィールドを設定します。
-
OAuth アプリケーションユーザー – サービスアカウント ( など
svc.amazon.quick.kb)。 -
スコープの制限 –
Broadly scoped。 -
クライアントタイプ –
integration_as_a_service。
-
-
[更新] を選択します。
ステップ 6: API アクセスポリシーを設定する
API アクセスポリシーがない場合、トークンは認証されますが、テーブル API は HTTP 401 を返します。以下の両方のサブステップを完了します。
インバウンド認証プロファイルを作成する
-
システムウェブサービス > API アクセスポリシー > インバウンド認証プロファイルに移動します。
-
新規 を選択して設定します。
-
名前 – 例:
Amazon-Quick-KB-Client-Profile。 -
Type (タイプ) –
OAuth。 -
OAuth エンティティ – OAuth アプリケーションを選択します。
-
-
[Submit] を選択してください。
-
プロファイルを再度開きます。認証ポリシー関連リストで、アクセス許可ポリシーの編集と追加を選択します。[保存] を選択します。
REST API アクセスポリシーを作成する
-
システムウェブサービス > API アクセスポリシー > REST API アクセスポリシーに移動します。
-
新規 を選択し、以下を設定します。
-
名前 – 例:
Table API Oauth access policy。 -
REST API –
Table API。 -
REST API パス –
now/table。 -
すべてのメソッドに適用 – チェック済み。
-
すべてのリソースに適用 — チェック済み。
-
すべてのテーブルに適用 — チェック済み。
-
すべてのバージョンに適用 — チェック済み。
-
-
[Submit] を選択してください。
-
ポリシーを再度開きます。インバウンド認証プロファイル関連リストで、「編集」を選択し、インバウンド認証プロファイルを追加します。[保存] を選択します。
ステップ 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: BearerACCESS_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 \ --namebedrock-servicenow-creds\ --secret-string file://secret.json
レスポンスからシークレット ARN を記録します。データソース として使用しますsecretArn。
次の手順
シークレットを保存したら、データソースを作成します。「ServiceNow データソースを接続する」を参照してください。