Servicenow Data Separation: Ibrahim-Ben Faruhn
Servicenow Data Separation: Ibrahim-Ben Faruhn
ServiceNow
Data Separation
A Whitepaper
Abstract
Domain Separation in ServiceNow often is a complex subject — maybe more complex than it
should be. There are different use cases, when you want to use something like domain
separation to separate data from different parts within your corporation.
The most obvious use case is if your corporation consists of different companies, e.g. a
company per country for legal reasons or a company per business area or just legal entities to
spread risks.
Another use case could be different departments working within ServiceNow® and of which a few
handle sensitive data that shouldn‘t be visible to the other departments.
This Whitepaper explains different approaches and also provides a link to a reference
implementation.
While in projects he dug deep into ServiceNow to always deliver out-of-the-box conformant,
upgradable, maintainable, portable, re-usable and future-safe solutions but always managed to
translate the technical tongue to a human understandable language and therefor allow sound
decisions by higher management.
He started building his ServiceNow expertise within the German company solid-serVision GmbH
being an Architect, Stream Lead, internal technical adviser as well as a quality adviser.
Solid-serVision was well acknowledged across Germany and was recognized by ServiceNow,
Inc. while the Knowledge16 as the Quality Leader by having the highest CSAT rating. Solid-
serVision was acquired by Accenture in 2017.
While the ServiceNow ® Domain Separation was one way, it is a controversy solution as it
seems to be a very heavy solution which adds a lot of organizational overhead. ServiceNow,
Inc. explicitly suggests double-checking if Domain Separation is really needed. There are
several ways to separate data. Each of which has pros and cons.
Page 1 of 8
Contents
Use Cases ....................................................................................................................................... 3
Levels of separation .................................................................................................................... 3
Cases for each level of separation .............................................................................................. 4
Is a complete separation really needed? ........................................................................................ 5
Are you a Service Provider to the different domains? .................................................................... 5
Comparing the approaches ............................................................................................................. 6
ACLs / Data Policies / UI Policies / View Rules / Predefined Filters .......................................... 6
Before/Query Business Rules ..................................................................................................... 6
Plugin “Domain Separation” ........................................................................................................ 7
Separate Instances ...................................................................................................................... 7
Comparison Table (Pros and Cons)............................................................................................ 8
Security considerations ................................................................................................................... 8
Page 2 of 8
Use Cases
Let‘s start off with cases in which you might want to use a certain kind of separation. Different
legal and company-internal requirements also set boundaries which we have to explore.
Levels of separation
When talking of separation, we need to know how „deep“ the separation has to go. This is a first
indicator on which approach is feasible for you.
Description Context
Level 0 Role-model based Data is visible to all users having appropriate
access rights. People with the same role see the
same data.
Level 1 Logical Data Separation only Data is separated using certain criteria on the
users as well as on the data. One role model is
applied only, but the view is narrowed.
Page 3 of 8
Page 4 of 8
Those cases are another indicator on which approach is the right one for you. When looking at
the cases you should not only look at your current or near-future state. You should consider the
far future as well. What are possible developments within your company or corporation? Also
what will be your role within the organizational construct?
When using separation above Level 0, you are inherently sharing a resource in a way that needs
more coordination as the resource itself cannot be parted into distinct sections, or so to say the
usage overlaps. This can be compared to a shared flat. The different parties might want to act
independently although they use parts others use as well.
If a separation on Level 3 or 4 is used, there is the possibility, each domain has it‘s own Service
Provider for that instance and therefor is easily able to act independently. The shared resource in
this case can be the contract to benefit from synergetic effects.
But there is a high possibility on separations above Level 0 that the current
team/department/company in charge for the ServiceNow ® Instance becomes a kind of Service
Provider within the company or corporation — even within the own IT department. The main
reason could be that you are the main user of ServiceNow, you already have the expertise, you
are simply assigned to be the „operator“ for ServiceNow, or organizational structures suggest that
you should lead the platform.
Also in separations above Level 0 it is highly likely you will went from an (internal) Application
Provider to a (kind of external) Platform Provider — as seen from the other departments or
companies.
You should be aware of the effects of sharing „your“ system to a broader world within
your company or corporation and your role should clearly be defined! Without clear
structures „your“ system will get messy like the kitchen or bath in a shared flat without an
agreed cleaning rota.
Page 5 of 8
With that said, these options are legal if data can be left readable to people having similar
positions. They allow a narrow view to the data of interest, but in most cases don’t prevent a
broader view.
ACLs can lock down data, but: if you have a kind of matrix definition of who sees what (e.g. role
vs. department), it easily gets quite complex! One reason for that is, that ACLs on the same level,
let’s say on record level, are OR’d so that just one met ACL on that level already grants access.
This makes ACL conditions in such cases very very complex. And if scripts are involved,
performance might become an issue as well and at least should be taken into consideration.
Also everyone once ran into the message “Number of rows removed from this list by Security
constraints: x” which can only be prevented by (additionally) using predefined filters, e.g. by
configuring the corresponding Application Menu entries.
Such a Business Rule is not just run when viewing a list. It also takes effect on viewing a specific
record.
Before Business Rules are run just before data is ultimately sent to the database. They can also
abort data manipulation. This is often used to ensure data quality or integrity.
With those capabilities, we can think of a system that, by whatever condition, only provides a
narrow view on records and prevents any manipulation outside of that narrow view. The only thing
we have to consider is, on which tables that should take effect. Being very careful, one could think
to even implement this on task and cmdb_ci level which would make it available on nearly every
process within ServiceNow.
Also just two Business Rule per pre-filtered table are needed, making this is a very lightweight
solution.
For a reference Implementation see
https://blog.cbc-faruhn.com/tool-data-separation-in-servicenow/
Page 6 of 8
While the “logic deviation part” (called “Delegated Administration”) is enabled by default, you can
disable it. Having it enabled adds that sort of overhead which led to that Whitepaper you are
currently reading, especially emphasizing on the question “Are you a Service Provider to the
different domains?”.
Separate Instances
Now you might think, giving your Domains an own instance solves a few of the above mentioned
obstacles of the Domain Separation plugin. Still there is again this one question: “Are you a
Service Provider to the different domains?”
If it’s you that provides the different instances, then it’s you again which has to maintain that
additional instance. Also the architectural design quickly gets quite complex:
- Having one Dev & Test, but two different Prod environments makes testing hard and
deviations have to be considered at implementation time.
- Having the Dev, Test & Prod chain per Domain allows completely separate development,
but also complicates sharing features between the instances as they might develop in
complete different directions.
So you see, providing different instances per Domain also requires a strong governance if
functionality/technology/innovation is to be shared and you don’t want to support completely
different instances.
Page 7 of 8
Security considerations
While ACLs are the choice for information security relevant issues, Before/Query Business Rules
effectively add the same level of security:
- Business Rules can only be edited (and therefor bypassed) by administrators.
- Before Business Rules can cancel transactions before something is written to the
database preventing data manipulation.
- Query Business Rues refine/constrain every query to the effective table in a way users
cannot bypass, even when retrieving a specific record.
As the Plugin “Domain Separation” really enhances the application layer, this solution seems even
securer as ACLs or Before/Query Business Rules, but: it is designed in a way that admins can
easily bypass a Domain restriction by a choice integrated in the UI.
In separate instances, an admin from one instance is not necessarily an admin in one of the other
instances and therefor cannot bypass security mechanisms in the other Domains. Also users are
not shared, which is inherently more secure.
Page 8 of 8