6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ServiceNowでユーザーログイン時にスクリプトを自動起動しログインユーザーの情報を取得する

Last updated at Posted at 2018-04-28

概要

ServiceNowでユーザーがログインしたときに何らかの処理をキックしたい場合に使用する。
Script Actionで「session.established」イベント発生時の処理を書く。
注意点として、このスクリプトの起動ユーザーは「system」となっているため、

gs.getUserName()

で取得できるユーザーは、ログインしたユーザーではなく、常に「system」となっている点だ。
ログインユーザーのユーザー名はイベントの引数として受け取ることが可能だ。

event.parm1

環境

ServiceNow : KINGSTONE

手順

Script Action作成

StudioからCreate Application Fileで起動される画面で、
「Server Development」カテゴリの「Script Action」を選択してCreateをクリックする。
Nameは適当につける。
Event Nameには、「session.established」を選択する。

NewScriptAction.png

コード入力

Scriptに次のように入力してSubmitで保存する。
今回は、特に有用な処理は記載していない。
「gs.getUserName」では必ず「system」が取得される事と、
event.param1でユーザー名、event.param2でアクセス元のIPアドレスが渡されていることをアプリケーションログに出力して確認している。
また、ついでにユーザーテーブルからログインしたユーザーの情報を取得してログに出力している。

gs.info("ログインイベント発生");
gs.info("ログインユーザー名 = " + gs.getUserName());

gs.info('event.parm1 = ' + event.parm1);
gs.info('event.parm2 = ' + event.parm2);

var userid = event.parm1;
var r = new GlideRecord('sys_user');
r.addQuery('user_name', userid);
r.query();
if (r.next()) {
	var l = r.getValue('preferred_language');
	gs.info('ユーザーのpreferred_languageは、  ' + l);
} else {
	gs.info('ユーザー検索失敗');
}

loginscript.png

動作確認

adminなどでログインしている場合は、一旦ログアウトしてから、ServiceNowにログインし直してからアプリケーションログを確認する。
今回は「testu」というユーザー名でログインしている。

loginlog.jpg

「gs.getUserName()」と「event.parm1」の出力の違いが確認できる。

※IPアドレス部分は画像加工している。
※ログの表示順は時間順にしているがミリ秒単位での並べかえとなっていないため、出力順と異なる。

 この他のログイン関連のイベントスクリプトについて

スクリプト起動のイベントとして「login.faildやlogin.authoraization.failedイベントを選択可能だ。
ログイン成功時のみではなく、ログイン失敗時の処理も書く事が可能だ。

6
4
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
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?