こんにちは。SCSKの星です。
最近XanaduバージョンからZurichバージョンへのバージョンアップを行いました。
その際に行った修正について記録しておきます。
はじめに
今回私が担当したバージョンアップは、バージョンアップによる修正点をすべて受け入れるのではなく、現在の運用が維持できるように修正したり、ユーザが混乱しそうな機能は非表示にしたりという対応が求められました。
またYokohamaバージョンからMFA認証が必須化されましたが、こちらの機能も今まで通り必要としない設定にすることが求められました。
これらを満たすように行った修正とその修正方法について書いていきます。
公式ドキュメントなどを参考に慎重に対応しておりますが、あくまで「こうしたらできた」というものになります。他の手法でも対応可能かもしれませんし、ベストプラクティスではない可能性もあります。ご了承ください。
修正
修正①:サービスポータルのパフォーマンスアナライザーアイコンの非表示

パフォーマンスアナライザーに関するアイコンが表示されるようになっておりました。
こちら全ユーザが使うことを想定しておりませんので、こちらのアイコンを非表示にします。
【方法】
システムプロパティ(sys_properties)のsp_allow_perf_debug_option_for_portalsを開き、Value(値)にある「sp」を削除する。
修正②:サービスポータルや管理者画面のMFAに関するメッセージの非表示
こちらはMFAを設定していない場合に表示されます。今回はMFAを設定しない&ユーザにも毎回表示されるので非表示対応します。
【方法】
システムプロパティ(sys_properties)のglide.authenticate.multifactor.enforcement.show_user_info_messageを開き、Value(値)をfalseに変更する。
修正③:サービスポータルのMFAに関するセキュリティメッセージの非表示(adminのみ表示)

こちらはadminロールを持つユーザがログインした場合に表示されます。adminのみに表示されるため、必須対応ではありませんが、今回は非表示としました。
【方法】
システムプロパティ(sys_properties)のglide.authenticate.multifactor.enforcement.acknowledgedを開き、Value(値)をtrueに変更する。
修正④:サービスポータルのプロフィール内の「マルチファクター認証を構成します。」というリンクの非表示
MFA設定に使用するリンクです。MFAを設定する場合は表示しておくべきですが、今回はMFAは避けるので非表示対応とします。
【方法】
Service Portal > ウィジェット からユーザー設定[user-preferences]ウィジェットを開き、本文HTMLテンプレートから以下行をコメントアウトして更新。
※コメントアウト方法はHTMLなので <!– –>で囲みます。
</div>
<div class="list-group-item" ng-if="data.preferencesEnabled.mfaEnabled">
<button class="btn btn-link" ng-click="triggerMFAConfigurationModal()" aria-haspopup="dialog">${Configure Multi-Factor Authentication}</button>
</div>
修正⑤:管理者画面のMFAに関するバナーメッセージの非表示(adminのみ表示)
管理者画面でadmin権限を持っている場合にMFAに関するバナーが表示されます。
こちらもadminだけの表示のため非表示は必須ではなかったですが、非表示対応としました。
【方法】
バナーのアナウンスメントテーブル(sys_ux_banner_announcement)の「セキュリティ更新:MFA 実装」の終了フィールドを過去の日時にする。
こちら更新セットに記録されなかったのでレコードの個別エクスポートでリリース。
修正⑥:フォームの上部にあるディスカッションボタンの非表示

こちらはZurichバージョンより前から実装されてました。(Vancouverバージョンの時点で既に存在していた記憶があります。)便利な機能ですが運用側で「ない方が混乱しなくてありがたい」とのことで非表示にしてます。元々非表示にしていましたが、Zurichバージョンへのアップデートで再度表示されるようになったため、再度非表示対応を行いました。
【方法】
アプリケーションスコープをOmni-Experience Standard Feature Setに変更。対話型インターフェース(Conversational Interfaces) > 設定を開き、Sidebarの「アクティブ化」トグルをOFFにする。
修正⑦:全ユーザをMFA認証の対象外とする
MFA認証を有効にした方がセキュリティ上安全なのは間違いないですが、社内の規約や運用の対応が追い付かず、一時的に全ユーザをMFA認証の対象外にしたい場合の方法です。
全ユーザを「MFA Exempted User Group」グループに追加
特別なことは何もありません。全ユーザを「MFA Exempted User Group」グループに追加しただけです。
【方法】
グループテーブル(sys_user_group)から「MFA Exempted User Group」を開き、グループメンバータブから『編集…』を押下し、全員を所属させます。ユーザが多い場合は一度に全員を所属させることができないため、何回かに分けて実施します。
ユーザ作成時に「MFA Exempted User Group」グループに自動追加するフローを作成
今後ユーザを作成する度に手動で「MFA Exempted User Group」グループに所属させるのは手間なのでフローを作ってしまいました。トリガーと1つのアクションだけの簡単フローです。
●アクション
※待機アクション入れていますが、レコード作成が完了する前に最初のアクションが開始され、データが引用できずエラーが発生する場合があるため、念のため待機アクションを入れています。状況によっては不要ですが、念のためです。
「MFA Exempted User Group」グループをadminロール以外は見られないようなACLを作成
環境によっては全く必要ない設定だと思いますが、本環境の運用ではロールのないユーザもサービスカタログからグループテーブルを参照することがあるので、見られないようにしています。
【方法】
security_adminに昇格し、下記の図のようなACLを作成。

他はConditional Script Writerグループの対応もしたのですがそれは下記の記事をご覧ください。
https://blog.usize-tech.com/servicenow-conditional-script-writer-zurich/
残りは環境依存が強すぎて参考にならないため、以上となります。
バージョンアップする度に学びがありますね。






