ドメインセパレーションについての不明点

d-aizawa
Kilo Sage

コミュニティの皆様

いつもお世話になっております。

 

私のプロジェクトでは、Phase1, Phase2の2種類あり、
Phase1はサービスイン済、Phase2はサービスインは来年の3月を予定しております。

Phase2でデータセキュリティの課題のため、ドメインセパレーションの導入を検討しており、
情報収集をしております。

以下3点の不明点について、ご存知の方がいればご教示願います。

①ドメインセパレーションのインストールは、有料か無料か(ライセンスはITSM Standardです)

②導入後、既存データの扱いはどうなるか
(おそらくGlobalドメインレコードになると考えておりますが、その後他のドメインに変更可能か)

③ドメインセパレーションのデメリットはあるか

 

よろしくお願いいたします。

10 REPLIES 10

iwai
Giga Sage
  • ①ドメインセパレーションのインストールは、有料か無料か(ライセンスはITSM Standardです)
    • 有料です。
  • ②導入後、既存データの扱いはどうなるか
    (おそらくGlobalドメインレコードになると考えておりますが、その後他のドメインに変更可能か)
    • Globalです。ドメインは変更可能です。ただしドメインは安易に変える物ではないです。データ構造やシステム構造に強く影響を与えます。
  • ③ドメインセパレーションのデメリットはあるか
    • ドメインセパレーションの知識と仕様を関係者に周知して理解を得る、無理のない設計と利用をすることでデメリットを、気にするようなことはありません。
      逆に言えば、知識や仕様を周知できない、理解を得られない。無理のある設計や無計画な利用をすると、利用に大きな障害となる可能性があります。
      単純なシステムではありませんし、万能なシステム、ドメイン制御のフルカスタマイズ、そう言うものではないです。

iwiさん

ご回答ありがとうございます。
追加で以下2点確認させてください。

・Domainの変更方法について、資料があればご連携頂けないでしょうか

・ユーザを複数ドメインにアクセスすることは可能でしょうか。
また複数ドメインユに所属しているユーザは、インスタンスにログインした際、
どのような挙動になるでしょうか(ドメインを選ぶ形になるのですかね?)

@d-aizawa 

Instance 初期設定(購入の際)のタイミングで、ドメインセパレーション利用可否を決めないといけないです(これにより価格も違います)。

いったん決めったら変更不可です(初期化しない限り?)。

 

実際の利用経験はないですが、以下は私自分の理解です。

・一般ユーザは自分が属するドメインのデータしかアクセスできないようです(システムが自動で制御してくれる、また、権限設定などで他ドメインのデータもアクセス可能です)

・開発時は一般的に意識不要で、運用設定の際(ロール付与など)は考慮要です。

 

一応ドメインセパレーションに関する内容が多いので、

@Omkar Kumbhar  がPostしたリンクとプロダクトドキュメントを一回精読したほうがより把握しやすいと思います。

 

 

 

 

 

Please mark my answer as correct and helpful based on Impact.

  • Domainの変更方法について、資料があればご連携頂けないでしょうか
    • ドメイン割り当て|サービスナウ開発者 (servicenow.com)
    • 資料から抜粋
      • ドメインの割り当て
        各レコードは1つのドメインに割り当てられています。ドメインはsys_domainフィールドに格納されます。ドメインサポート - ドメイン拡張インストーラプラグインを有効にすると、sys_domainフィールドが多くのデフォルトのServiceNowテーブルに追加されます。開発者は、テーブル内のデータをドメイン分離するために、カスタムテーブルにsys_domainフィールドを追加する必要があります。

        sys_domainフィールドに値を割り当てる最も一般的な方法は、順番に次のとおりです。

        *レコードに指定された会社
        *レコードを作成するときのビジネスルール
        *レコードを作成するユーザーのドメイン
        レコードのコミット時にsys_domainフィールドが入力されていない場合、そのレコードはデフォルト・ドメインに追加されます。

    • ほか基本資料:サービスプロバイダーのドメイン分離 (servicenow.com)
  • ユーザを複数ドメインにアクセスすることは可能でしょうか。
    • アクセス可能です。すでに 他のかたが投稿している資料にとてもわかりやすく基本がまとめてあります。
    • 資料から抜粋
      • Contain Domains: 一部の顧客に対して、階層的に自分の下にないドメインのデータを表示させたい場合があります。データの可視性を拡張する方法には、ContainsテーブルとVisibilityテーブルの2つがあります。

        domain_containsテーブルは、あるドメイン(「含む」ドメインと呼ばれる)のユーザーが別のドメイン(または「含まれる」ドメイン)のデータを見ることができるようにするテーブルです。このテーブルのレコードは「含む」関係を定義し、これはデータのみに適用され、プロセスには適用されません。

        階層のルールはまだ適用されるので、他のドメインにcontains関係を持つドメインは、その階層関係の結果として見えるものに加えて、そのデータを見ることができます。例えば、ACMEドメインの社員は、そのドメインが他のドメインを「含む」ことがあっても、常にACMEにログインしていることになります。

      • Visibility Domains:ドメインの可視性テーブル(sys_user_visibilityとsys_user_group_visibility)は、特定のユーザーまたはグループが、他の階層でアクセスできないドメインのデータを表示できるようにします。たとえば、Customer 1ドメインのユーザーまたはグループがCustomer 2ドメインに対する可視性を必要とする場合、ユーザー・プロファイルに可視性を追加することができます。

        可視性ルールは、包含関係とともに使用することも、別々に使用することもできます。

iwisさん、

既存データのドメイン変更ですが、調べた限りだと、
以下のバックグラウンドスクリプトを実行する以外は厳しそうだと考えておりますが、

認識いかがでしょうか(Change Requestはすべて同じSOドメインに分離する予定です)

var cngReq = new GlideRecord("change_request");
cngReq.addQuery("sys_domain", "global");
cngReq.query();
gs.info("ヒット数:"  + cngReq.getRowCount());
while(cngReq.next()){
	cngReq.setValue("sys_domain", "f03b77a8977021106615bfb3f153af47");
	cngReq.update();	
}

上記バックグラウンドスクリプト以外で、

変更できそうな方法があれば、ご教示頂けないでしょうか。