Security model example

The purpose of the security model is to enable the platform, at any moment, to determine whether a user can see a particular record - and, if they can, whether they can also edit it. The platform performs this calculation according to a consistent set of rules.

At their simplest, when all unordered dimensions have the default ANY resolution mode, the rules for determining access work like this:

  • A user can see a record if they receive "Update" or "Read only" access for at least one of the dimension values that the record has from each security dimension.

  • A user can edit a record if they receive "Update" access for at least one of the dimension values that the record has from each security dimension.

When an unordered dimension has the ALL resolution mode, the rules for that dimension change so that "at least one" in those descriptions becomes "all".

If a user receives multiple permissions that specify different access levels for the same dimension value, the calculation uses the most permissive level.

Calculation with ANY dimensions

For example, consider the following record, which has one value for each of two security dimensions, and two values for a third.

Record

Security Classification

Confidential

Intelligence Type

Open Source

Operational Team

A, B

Then, consider a user who has the following aggregated security permissions.

Security dimension

Value

Access level

Security Classification

Secret

Read only

Security Classification

Confidential

Update

Intelligence Type

Open Source

Update

Intelligence Type

Human Intelligence

Read only

Operational Team

A

Read only

Operational Team

B

Update

To calculate this user's access to the record, i2 Analyze uses the permissions to determine the access level for each assigned dimension value, and then applies the rules.

Assigned dimension value

Access level

Security Classification: Confidential

Update

Intelligence Type: Open Source

Update

Operational Team: A

Read only

Operational Team: B

Update

The user has "Update" access for at least one of the values that the record has in each dimension, and therefore receives "Update" access to the record itself.

If the record had the Secret security classification, the user would not have "Update" access for all values, but would still have at least "Read only". They would be able to see the record.

If the record had the Top Secret classification, the user would have no access according to that dimension value. They would not be able to see the record at all.

Calculation with an ALL dimension

To extend the example, imagine that the Operational Team security dimension has the ALL resolution mode. The list of access levels that the user receives does not change, but the final calculation does.

i2 Analyze now considers both of the access levels associated with values from the Operational Team dimension. Because one of those levels is "Read only", that level applies to the dimension as a whole, and therefore also to the record. Our user can still see the record, but they can no longer edit it.