【ServiceNow】初心者向け アクセスアナライザーの使い方

こんにちは。ServiceNow担当のT Aです。
作り込んでいるアプリケーションほど、権限の管理が複雑になっていきますよね…
開発中になぜこのユーザーでこのレコードが閲覧できないんだ?と困ったことは1度や2度ではないでしょう。
そんなときに最近のアップグレード(Washinngton)で追加されたアクセスアナライザーを使用すればすぐに解決します。
アクセスアナライザーは権限についての困りごとを解決する3つの機能を持っており、非常に有用なものとなっております。(要Admin権限)
それぞれの機能をどのように使用するのか。是非、最後までご覧になっていってください。
機能へのアクセス
まずは機能へのメニュー遷移方法からご説明します。
左メニューで「アクセスアナライザー>権限を分析」を選択すると遷移できます。
(英語環境では「Access Analyzer>Analyze Permissions」)
機能紹介 「アクセスを評価」
「アクセスを評価」は「誰が、どのテーブル(レコード/フィールド)に対してどのような操作ができるか」を判定するのに使用します。
設定画面は以下のようになっており、必須項目である[ユーザーを選択]と[テーブルを選択]を入力すると使用できます。
(分析方法、ルールタイプはデフォルトで値が入りますが、変更もできます。)
ここからレコードやフィールドを選択すると、それぞれのレベルでアクセス評価を行ってくれます。
今回の画像ですとINC00000001レコードのアクセスがどうなっているかの結果を返してくれます。
では「アクセスを評価」を押して結果を確認してみましょう。
全てブロックされているのがわかります。
test userはこちらのレコードへの閲覧権限など、すべての権限がないことがわかりました。
ちょうどいいので、test userがこのレコードを閲覧できるようになることを目標に演習としていろいろ触っていきましょう。
早速、閲覧できない原因を考えてみましょう。「read」のレコードをクリックして確認してみます。
すると、1つのビジネスルールのレコードが出てきます。どうもこちらが原因のようです。
さらにこちらのレコードをクリックして、詳細を確認しましょう。
コードを見るとitilロールやservice_viewerロールが必要となっているようです。
試しにtest userに対してservice_viewerロールを付与して再度実行してみましょう。
あれ?まだ読み取れない…?再度原因を確認します。
今回はACLで引っかかったようですね。itilやsn_incident_readが必要らしいです。
それでは今回はsn_incident_readを再度付与して確認します。
ようやく閲覧権限が合格になりました!
詳細を確認すると、想定通りsn_incident_readによりクリアしていることがわかります。
レコードも実際に確認できました。
(今回は演習として2ロールを付与しましたが、sn_incident_readの1ロールがあればビジネスルールもACLもどちらもクリアできることはご認識ください)
機能紹介「ユーザーレコードを比較」
特に難しいことはなく、そのまま「ユーザー情報を比較」する機能です。
入力画面は以下のようになっており、2つのユーザーを選択するだけです。
実行結果としては以下のように出ます。(既存データであるAbelさんとAbrahamさんの比較)
機能紹介「ユーザーアクセスを比較」
こちらは「アクセスを評価」と似ていますが、複数ユーザーを対象に実施できる点が異なります。
入力画面としては以下となります。
実行結果の画面としては以下です。(Abelさんと演習で使用したtest userに対しインシデントテーブルを使用して比較)
参考 それぞれの操作の意味
read
意味:既存レコードの内容を読み取る(参照)権限。編集は不可。
例:インシデントの詳細を閲覧する場合。
write
意味:既存レコードの編集・更新を許可する操作。
例:インシデントのステータスや内容を修正すること。
create
意味:新しいレコードを作成(登録)する操作。
例:インシデントを新規作成する場合。
report_view
意味:作成済みレポートを閲覧する権限。
例:マネージャーがレポートの結果を閲覧する。
report_on
意味:レポートの作成や編集が可能な操作。
例:パフォーマンス分析用のレポートを作成する。
list_edit
意味:リストビュー上で直接フィールドを編集できる操作。
例:一覧画面で複数レコードを一括変更する場合。
add_to_list
意味:関連リストなどにレコードを追加する操作権限。
例:変更リクエストをインシデントの関連リストに追加する場合。
save_as_template
意味:設定やフォームの状態をテンプレートとして保存する権限。
例:フォームカスタマイズをテンプレート化し、再利用する場合。
personalize_choices
意味:選択肢リスト(Choice List)をユーザー単位でカスタマイズできる権限。
例:ドロップダウンメニューの選択肢を自分用に調整する。
delete
意味:レコードをシステムから削除する権限。
例:不要になったインシデントを削除する操作。
終わりに
アクセスアナライザーはいかがでしたでしょうか?直感的に使える、かなり便利な機能ですよね。
このような「機能を知っていれば簡単だが、知らないと時間のかかるもの」についての情報は積極的に取り入れていただきたいと思います。
皆様のServiceNow学習の一助となればうれしいです。
最後までご確認いただきありがとうございます。