Mandatory control properties are object type properties that allow for granular access control to the data stored in objects. You can use mandatory control properties to restrict access to all other properties in the same datasource for a given object, making those properties viewable only by users who satisfy the mandatory controls.
Note: Mandatory control properties are only available on Object Storage V2.
There are three types of mandatory controls that can be set on a property:
Markings are mandatory controls that restrict access by requiring a user to have a particular Marking in order to access data. If a resource has multiple markings, the user must have all of them to access the resource. Learn more about markings.
To use markings, you are required to provide a set of allowed markings. Only markings in this set will be permitted on any mandatory control property on the datasource.
Organizations are access requirements that enforce strict silos between groups of users and resources. Every user is a memeber of only one organization, but can be a guest member of multiple Organizations. In order to access data marked with an organization, a user must be a member of that organization. If a resource has multiple organizations, the user must be a member of at least one of the organizations applied to the resource. Learn more about organizations.
To use organizations, you are required to provide a set of allowed organizations. Only organizations in this set will be permitted on any mandatory control property on the datasource.
Markings and organizations can be used together on the same mandatory control property. In this case, a user must satisfy all the markings and at least one of the organizations to access the resource.
Classification markings are mandatory controls used to protect sensitive government information. They are used to restricting access to sensitive information where sensitivity of information is defined in a hierarchical way. Every user can only access data that is classified at or below their own classification level.
You can only configure CBAC markings if you have CBAC enabled on your enrollment. Learn more about CBAC (classification based access controls).
To use classifications, you need to provide a max classification. Only markings that satisfy this max classification will be permitted on any classificatoin based mandatory control property on the datasource.
Classifications can not be used together with markings or organizations on the same mandatory control property.
A mandatory control property secures all other properties in the same datasource. For object types with a single datasource, this means that a user will only be able to view an object if they satisfy the value in the mandatory control property.
However, for multi-datasource-backed object types (MDOs), each datasource could have its own mandatory control property. Only the properties backed by a specific datasource will be secured by the mandatory control in that datasource.
This means that it is possible for a user to only have permission to see a subset of properties on an object, In this case, the user will only be able to see the properties mapped from those datasources. Other properties will appear as null when displaying an object instance to the user.
To use mandatory control properties effectively, the backing datasources should be structured in such a way that only properties that should share a mandatory control are in the same datasource.
The following validations are enforced on mandatory control properties:
Note that mandatory control properties are set to Hidden
by default. This is because mandatory control properties are meant to be used as markings for other fields, so there is usually no need for mandatory control properties to appear in object views or tables. However, mandatory control property visibility can still be enabled if needed.
You can add a mandatory control parameter to your Action type. This can be a marking parameter, or a classificaton parameter if CBAC is enabled. Organization parameters are currently not supported.
Mandatory control parameters are commonly used to set a mandatory control property on an object that the Action creates. In this case, the values provided must adhere to the property's allowed values, if an invalid value is provided, Action submission will fail.
You can also add a max classification at the parameter level, for classification based mandatory control parameters. This is an action type validation, and so will prevent the Action from being submitted if the provided value does not satisfy the max classification, as opposed to relying on the datasource validation which will allow the Action to be submitted but will fail to complete.
Objects created by Actions will be secured by the provided value for the mandatory control property, just like objects derived from a backing datasource.
Object types with mandatory control properties and action types with mandatory control parameters can be packaged and installed through Marketplace.
When packaging an object type with mandatory control properties, the allowed markings or max classification are declared as installation inputs for that product.
Similarly, if packaging an action type with a classification based mandatory control parameter with max classification set, the max classification is declared as installation inputs.
When installing the product, you will be prompted to select the allowed markings or max classification for each mandatory control property. The selected values will be set as allowed markings or max classification of the mandatory control properties upon install.
Note that packaging multiple mandatory control properties and/or parameters with the same values would results in only one mandatory control input being declared.