6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ServiceNowAdvent Calendar 2024

Day 19

ServiceNowのREST API Access Policyを試す

Last updated at Posted at 2024-12-18

Version:Washingtondc

ServiceNowのREST API Access Policyを試します

Adaptive Authentication(適応認証)

ServiceNowにはAdaptive Authenticationという機能がありIPアドレス(IP)、ユーザーロール(Role)、ユーザーグループ(Group)などの基準(Criteria)で認証を許可/制限出来る機能があるようなのですが

設定できる対象はログイン画面を利用した通常のユーザーのログインに限られるようで…RESTに関してはREST API Access Policyという機能を使うようです

REST API アクセスポリシー

適応認証フレームワークのフィルター基準を使用して、受信した ServiceNow REST API へのアクセスを制限できます。詳細については、「REST API アクセスポリシー」を参照してください。

REST API Access Policy

特定のIPからのアクセスだけ許容するように設定します IP Filter Criteriaに許可したいIPの情報を設定して以下の設定を作ります IPv4しか試していません

REST API Access PolicyはAllowの設定しかできないようなので許可した設定以外からのアクセスは不許可になります 複数の条件を設定する際はConditionを工夫する必要がありそうです Adaptive AuthenticationはAllowとDenyの設定が使えそうです

image.png

RESTに限らず全てのアクセスの許可/制限を設定するのであればIP Address Access Controlという機能を利用する方が良いと思います

手順

REST API Access Policyのアクティブ化

以下手順でREST API Access Policyをアクティブ化出来るようですが自分のPDIだと最初からアクティブ化されていたようなので不要かも知れません

Adaptive Authenticationも最初からアクティブ化されていた気がしているのですがもし以降の手順で表示されているメニューが見当たらないといったようなことがありましたら以下手順でインストール/アクティブ化してみてください

IP Filter Criteria

最初にCriteriaを準備します CriteriaはIP, Role, Groupを設定できるようですが今回はIP Filter Criteriaを使います

Filter navigatorにadaptive authenなどと入力してメニューを絞り込み Adaptive Authentication - Filter Criteria - IP Filter Criteria を選択します

IP Filter Criteriaの一覧が表示されるので画面右上の[New]ボタンをクリックします

image.png

IP Filter Criteriaの編集画面が表示されるのでNameに適当な名前とIP Rangeの関連リストに許可したいIPのRangeのStart IPとEnd IPを設定します IPの設定は複数行で設定することもできます Subnet(CICR)ではSubnet Maskで設定することもできます 設定できたら[Submit]などで設定を保存します

image.png

REST API Access Policies

Filter navigatorにrest api accなどと入力してメニューを絞り込み System Web Services - API Access Poliies - REST API Access Policies を選択します

選択するとREST API Access Policiesの一覧が表示されます

image.png

情報を投稿するPOST Methodを試したいのでPOST API Access Policyを選択します 情報を取得するGET Methodを試す場合はGET API Acceess Policyを使うと思います

image.png

Activeがfalseになっていますが設定したいCriteriaがない状態で有効にするとアクセスできなくなる可能性があるので一通り設定が終わってからtrueにしてみます

画面下部のInbound authentication profilesからAuthentication profileのInsert a new row...をクリックすると虫眼鏡のアイコンが表示されるのでクリックします

Authentication profile

Authentication Profileを選択出来る一覧が表示されますが既存の設定を変更するのも怖いので画面右上の[New]ボタンをクリックします

image.png

どんな種類のauthentication profileを作成するか聞かれるので標準的な設定を試したいと思い一番上のCreate Standard http authentication profilesをクリックします

image.png

Standard Authentication Profileの編集画面が表示されるのでNameに適当な名前を入力して画面上部の灰色の箇所を右クリックして表示されるメニューで一旦Saveを選択するなどして設定を保存してから

image.png

画面下部のAuthentication PoliciesのAuthentication PolicyのInsert a new row...をクリックすると虫眼鏡のアイコンが表示されるのでクリックします

Authentication Policy

Authentication Policyを選択出来る一覧が表示されますが既存の設定を変更するのも怖いので既存の設定がよくわからないので画面右上の[New]ボタンをクリックします

image.png

Authentication Policyの編集画面が表示されるのでNameに適当な名前を入力して画面上部の灰色の箇所を右クリックして表示されるメニューで一旦Saveを選択するなどして設定を保存してから

image.png

画面下部にPolicy InputsとPolicy Conditionsの設定項目が表示されるので

image.png

Policy Inputsのタブを選択して[Edit]をクリックします

Policy Inputs

Criteriaを選択する画面が表示されるのでCollectionから利用したいCriteriaを選択して[>]をクリックして

image.png

Policy Inputs Listに加えて[Save]します

image.png

Policy Conditions

Authentication Policyの編集画面に戻ったらPolicy Conditonのタブを選択して[New]をクリックします

image.png

Conditonの編集画面が表示されるのでLabelに任意の値を入力してConditionでPolicy Inputsで選択したCriteriaを選択してis trueをを選択して[Submit]などで保存します

image.png

作成した設定をすべて繋ぎ合わせてActiveに

REST API Access Policyの設定

ここまでの手順をそのまま進めているとREST API Access PolicyのInbound authenticatipn profilesが画面遷移先で保存しただけで設定されていないのでREST API Access Policyの編集画面に戻りAuthentication profileをクリックして作成したAuthentication profileを設定します

image.png

ActiveをtrueにしてAuthentication profileを設定したら[Save]などで保存します

Authentication profileの設定

Authentication profileも同様に設定されていないと思われますので設定画面に戻りAuthentication Policyを設定して保存します

image.png

REST API Access PolicyをActiveに

最後にREST API Access PolicyのActiveをtrueに設定して保存します

image.png

動作確認

許可されていないIPからPOSTすると401エラーになると思います

*** Script: {"error":{"message":"User Not Authenticated","detail":"Required to provide Auth information"},"status":"failure"}
*** Script: 401

設定したIPアドレスの範囲がうっかり重なってしまっていた場合などJavaの例外が発生していたような気がします 無効にしているConditionの設定が重なっているだけで例外になったような気がしていますが一旦全て消してしまって再現しなくなったのでよく分からずです

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?