はじめに
ServiceNowをクライアント側として外部アプリケーションにPOSTリクエストを送信する際、要件によってHTTPヘッダーにJWTトークンなどのカスタム要素を追加する必要があります。ここでは、初心者でも簡単にできるように、Outbound通信時にHTTPヘッダーにカスタム要素を追加する方法を解説します。
ServiceNowとは?
ServiceNowは、企業向けのクラウドベースのプラットフォームで、ITサービス管理(ITSM)を中心にさまざまな業務プロセスを自動化するツールです。
JWTトークンとは?
JWT(JSON Web Token)は、ユーザー認証や情報の安全な送受信に使用されるトークンです。通常、JWTトークンはサーバー側から発行され、クライアント側はこのトークンを使って認証情報を送信します。JWTトークンは、AuthorizationヘッダーにBearer <token>
という形式で含められます。
1. Outbound REST Messageの作成
まず、ServiceNowのOutbound REST Messageを新規作成します。
- 左上のメニューバーから「System Web Services」 > 「Outbound」 > 「REST Message」を選択します。
- 「New」ボタンをクリックして新しいREST Messageを作成します。
-
「Name」フィールドに適切な名前(例: External API Integration)を入力します。
4 「Endpoint」フィールドに通信先のエンドポイントURLを設定します。
ここではWebhook.siteを利用します
(例: https://webhook.site/xxxx-yyyy-zzzz
)
2. HTTP Methodの設定
次に、HTTP Methodで新規作成を行います。
- 「HTTP Methods」の「New」ボタンをクリックして新しいHTTP Methodを作成します。
- 「HTTP Method」フィールドに使用するHTTPメソッド(例: POST)を入力します。
-
「Endpoint」フィールドに再度エンドポイントURL(例:
https://webhook.site/xxxx-yyyy-zzzz
)を入力します。 -
「HTTP Headers」セクションで、「New」ボタンをクリックして新しいヘッダーを追加します。
-
Header Name:
Authorization
-
Header Value:
Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(xxxxの部分はJWTトークンを入力してください。今回はNode.jsでローカルにてデモトークンを発行し入力)
-
Header Name:
3. サーバー側で確認
設定が完了したら、実際にサーバー側でヘッダーが正しく送信されているか確認します。今回は、webhook.siteを使用して確認します。
Webhook.siteを使用した確認手順
- ServiceNow側でTest送信します。
2 Webhook.siteで受信したリクエストのHTTPヘッダーを確認します。
業務での実際の利用シナリオ
実際の業務シナリオでは、以下の手順でJWTトークンを取得し、ServiceNowのリクエストに含めることが一般的です。
- JWTトークンの取得: サーバーからAPIを呼び出してJWTトークンを取得します。このAPIは認証情報(例えばユーザー名とパスワード)を必要とします。
- ServiceNowでトークンを格納: 取得したJWTトークンをServiceNowの変数やシークレットストアに格納します。
- HTTPヘッダーにトークンを追加: 上記の手順に従って、HTTPヘッダーに格納したトークンを追加します。
まとめ
ServiceNowのOutbound通信時にHTTPヘッダーへカスタム要素を追加する方法を紹介しました。JWTトークンなどの認証情報を含めることで、外部アプリケーションとの連携がスムーズになります。ぜひ試してみてください。