Solution concepts
This chapter describes Omada Identity solution concepts that are important to understand in the context of this document.
Conceptual Data Model
The diagram shows the main concepts that are in scope in Omada Identity as well as how the concepts are related.
For definitions and explanations of the above concepts and abbreviations, see the Glossary.
Identity status
The diagram and table show the standard identity statuses and their transitions in Omada Identity:
An identity is considered disabled by RoPE if its status is Terminated, Disabled, or Locked. If an identity is disabled, all of the identity’s CRA (calculated resource assignments) are also disabled.
| Status | Description |
|---|---|
| Active | The identity is active. This is the normal status for an identity (employee). |
| Disabled | This is a manual status and not reached by default. |
| Inactive | The identity is onboarded or otherwise approved; however, its validity period has not yet been reached. An event sets the status to Active when the validity period is reached for the identity. |
| Locked | The identity has been locked for security reasons, for example, due to the suspicion of a security breach. |
| Pending | This is a manual status and not reached by default. |
| Terminated | An event sets the status to Terminated when the Valid to date is reached. |
Resource Status
The diagram and table below show the standard resource statuses and their transitions in Omada Identity.
The resource status is not synchronized from the target systems.
| Status | Description |
|---|---|
| Active | The resource is active. This is normal state of a resource. The Active status is updated by automated event when the Valid from date is reached. |
| Disabled | This is a manual status and not reached by default. All related assignments will also be disabled, if applicable. |
| Inactive | The resource is not yet active (the Valid from date has not been reached). RoPE will discard assignments. |
| Obsolete | The resource Valid to date has been reached. RoPE discards assignments. |
| Deleted | The resource is set to Deleted during an import when it is no longer available in the target system. |
Assignments are considered Disabled if the resource status is Disabled, Inactive, Obsolete, or Deleted.
Resource Assignment Status
The diagram and table show the standard Resource Assignment statuses and their transitions in Omada Identity:
| Status | Description |
|---|---|
| Active | The resource assignment is active. This is the normal status of the assignment after approval and within validity. |
| Disabled | This is a manual status and not reached by default. If applicable, all related calculated assignments are also disabled. |
| Inactive | The assignment is valid; however, the Valid from date has not been reached. |
| Locked | This is a manual status and not reached by default. If applicable, all related calculated assignments are disabled. |
| Obsolete | The Valid to date of the direct assignment is reached. |
| Pending | The direct assignment was requested using the access request process and has a pending approval. The direct assignment uses the standard access request process - an identity requests access, the request is approved, then a resource assignment is created that is associated with identities. |
| Rejected | The direct assignment was rejected in the Approval of access requests process. |
| Cancelled | The resource assignment has been cancelled because the user cancelled an access request. |
Assignments are considered Disabled if the resource assignment status is Disabled, Locked, or Obsolete.
Role and Policy
Identity Calculation Trigger
Each RoPE calculation cycle has two phases:
- Phase one is event-based queuing.
- Phase two is identity processing.
During the event-based queuing, RoPE checks all events in the Desired state data (Enterprise Server) and in the Actual state data. Then, RoPE flags the identity for calculation.
The potential calculation events in Enterprise Server are:
- Creation,
- Resources,
- Context assignments,
- Delegations,
- Modification,
- Resource assignments,
- Assignment policies,
- Expiration of identities,
- Contexts,
- Constraints.
In the Omada Identity Data Warehouse (ODW) account, the potential calculation events are Resources and Resource Assignments.
Birth right provisioning
When identities are onboarded, basic entitlements or roles (birth rights) are assigned to them. These roles are updated in case of organizational changes, and then removed when employment is terminated.
Account types
In Omada Identity, all account resources have an account type. Account types should be kept to a few logical and meaningful types to ensure a well-functioning solution when using roles. However, oone important reason for having more than one account type is to separate the privileged access from the personal account.
A Personal account is the default/primary account for employees and contractors.
A Privileged account enables elevated access.
The following diagram shows how resources are assigned:
The following diagram demonstrates how resources are assigned when business roles are used:
All resource objects are defined for one or more account types.
A resource (permission or role) can only be assigned to an account type that it's defined for. To use an account type in a system, you need a corresponding Account resource. Account resources can only be defined for a single account type. Permissions can be defined for multiple account types. Roles should only be defined for a single account type to avoid increased complexity for the end-user. Child permissions are only assigned to accounts of the account type of the role.
When you define an assignment policy, you should specify that it only applies to accounts of specific account types. We recommend that you only include one account type per assignment policy to avoid increased complexity.
The Microsoft tier model
Some organizations use the Microsoft tier model to mitigate unauthorized privilege escalation. Without it, there would be multiple privileged account types, for example:
- Personal – Default/primary account for employees and contractors
- Privileged Tier0 – Account that enables elevated access
- Privileged Tier1 – Account that enables elevated access
- Privileged Tier2 – Account that enables elevated access
The diagram shows the assignment of privileged access:
For more details, see the information provided by Microsoft: Securing privileged access Enterprise access model | Microsoft Learn.
Account type model
The account type model prescribes that an identity can only have one account in a system of a specific account type.
The account type model only applies to ordinary (human) identities, and does not apply to Technical identities or the special Unresolved identity, as they are allowed to have more than one account of the same type in the same system.
Technical identities are used to bundle accounts and access rights that are used by a specific system or application. A Technical identity has an owner who is always an ordinary (human) identity.
The Unresolved identity is assigned by Omada Identity as owner of all accounts for which an actual owner cannot be determined.
Account type policies
In the ODW, the account type for accounts can be set by an account type policy or by a custom join extension. (A custom join extension is a custom SSIS package that can perform advanced join logic.)
Account type policies are set per source system. For more information, refer to Import and onboarding.
If an account type is present in a connected system or created in an account type policy but does not exist in the Enterprise Server, then it's automatically created when data is exported from ODW to the Enterprise Server.
Assignment reasons and states
All calculated resource assignments have at least one reason that indicates why the assignment was created. For example, an assignment has a reason type that indicates whether the assignment was created due to a direct assignment or an assignment policy.
In addition, a reason type belongs to a state which can be either Actual or Desired:
- Actual state assignments represent the access that an identity currently has in the connected systems.
- Desired state assignments represent the access that companies or organizations would like an identity to have based on assignment policies and other criteria.
The following table shows an overview of reason types and states:
Actual state
| Reason type | Description |
|---|---|
| Actual direct | The assignment was added due to the existence of a direct resource assignment in ODW. |
| Actual indirect | The assignment was added due to the existence of an indirect resource assignment, for example, an assignment due to group-in-group in ODW. |
| Unconfirmed actual | The assignment was assigned because of a provisioning claim based on a Manual or Omada Provisioning Service provisioning task. |
Desired state
| Reason type | Description |
|---|---|
| Direct | The assignment was added due to the existence of a Resource assignment data object. The resource assignment must have one of the following statuses: Inactive, Active, Obsolete, Disabled, Locked. Also, if the Resource assignment has an Active, Inactive, or Obsolete status, it's only considered if the time of calculation is within the validity period (plus post-validity days). |
| Policy | The assignment was added due to the existence of an Assignment policy data object. |
| Child resource | The assignment was added due to the assignment of an Enterprise role (or Application role) that the resource is a child of. |
| Auto account | The account assignment was added due to the identity not having an account for a system, for which the identity has a CPRA (calculated permission resource assignment), and the automatic creation of accounts has been defined for the system or a resource type. |
| Review OK | The assignment was added due to the existence of a verdict made in an authoritative access review. Note: The Review OK reason type can never be the only reason for a calculated resource assignment. |
| Additional | The assignment was added by a standard or custom extension in RoPE. |
No state
| Reason type | Description |
|---|---|
| Implicit assignment | The assignment of an Enterprise role or Application role was added because the identity has assignments for all resources that are contained in the role. |
| Implicit child | The assignment was added due to the implicit assignment of an Enterprise or Application role which the resource is a child of. |
Validity periods and disabled status
RoPE calculates a validity period and Disabled status for all CRAs. Outside the validity period (measured from the time of calculation of the identity), the CRA is always disabled. However, when it's within the validity period, it can be enabled or disabled.
Deriving a validity period and disabled status
RoPE calculates the validity period for a CRA based on the objects that are involved in its creation. The involved objects always include the identity to which the CRA belongs to and the resource being assigned. More objects may be involved, depending on the reason for the assignment. Some involved objects have a validity period and some have an explicit setting indicating that they should be regarded as disabled.
RoPE narrows down the validity period by using the largest Valid from and the smallest Valid to of the involved objects. Similarly, it narrows down the Disabled status. If at least one of the involved objects is disabled, then the CRA is disabled as well.
If RoPE calculates a CRA and the current time is outside the validity period of the CRA, that is, before the validity period starts or after the validity period ends, then, the CRA is disabled or completely disregarded. This means that the CRA will be omitted from the calculation result. Inside the validity period, the CRA can be either enabled or disabled.
Objects involved in all CRAs:
| Object involved | Validity period | Disabled state |
|---|---|---|
| Identity | Yes | Yes, derived from the Identity.IDENTITYSTATUS property. Disabled if the identity status is Terminated, Disabled, or Locked. |
| Resource | Yes | Yes, derived from the Resource.RESOURCESTATUS property. Disabled if the resource status is Disabled or Deleted. |
Based on the reason for an assignment, additional objects can be involved:
| Reason | Additional object involved | Validity period | Disabled state |
|---|---|---|---|
| Direct | Resource Assignment | Yes | Yes, derived from the ResourceAssignment.ROLEASSNSTATUS property. Disabled if the resource assignment status is Disabled, Locked, or Obsolete. |
| Policy | Assignment Policy | Yes | No |
| Direct, Policy | Context (For a CRA that is created due to an access request, the selected business context is considered, if available. For a CRA that is created due to an assignment policy, the scoped business context(s) are considered, if available.) | Yes | No |
| Child Resource, Implicit Child | Parent Assignment | No | No |
| Actual Direct, Actual Indirect | Actual Assignment | Yes | Yes |
| Unconfirmed Actual | Provisioning Claim | Yes | Yes |
| Review OK | Approved Assignment | Yes | Yes |
If the reason for an assignment is either Direct or Policy, the membership period of the business context for the identity that was selected in the access request or used to scope the policy with is considered as well.
Pre-validity and Post-validity
If RoPE calculates a CRA and the current time is outside the validity period of the CRA, that is, before the validity period starts or after the validity period ends, the CRA is normally disregarded, so that it is not included in the calculation result.
However, RoPE has a concept of pre-validity and post-validity. RoPE includes a CRA in the calculation result a number of days before it becomes valid and a number of days after it stops being valid, but it is marked as Disabled.
This allows for provisioning account assignments before a user’s start date, and mitigation of incorrect HR termination triggers. It also ensures that accounts are not deleted on the last working day of an identity.
If it is the Identity itself that is either pre-valid or post-valid, RoPE will extend the validity period of Calculated Permission Resource Assignments (CPRA). In the extended period before and after the validity period, the identity is not marked as disabled. This is to prevent the permission assignments from being deprovisioned and to allow that permissions can get provisioned during the pre-validity period. This is safe to do since the accounts for which the permissions are granted will always be disabled.
By default, the pre-validity period is 3 days for all CRAs of all types. It can be configured in the customer settings, as shown below (path: Setup > Administration > More > Customer settings).
By default, the post-validity is 0 days. It can be configured per resource type in the Edit Resource Type dialog, as shown below. If you do not enter any value in the field, it is interpreted as zero.
Thresholds
In the ODW and for the provisioning of rights by OPS, threshold values for the data import process can be set up.
Data import thresholds
In the case of errors in a system’s imported data, the data import threshold feature is designed to prevent unintentional incidents in Omada Identity.
Examples of such errors could be an incomplete .csv file or accidental changes in connection details. The data import threshold feature works by calculating the rate of created, changed, and deleted objects since the last import. If the rate exceeds the configured maximum value, it suspends the import process.
The system owner is notified about the suspension and can decide either to resume or discard the import. If the user chooses to resume the import, the suspended data is moved to the staging tables and imported during the next import. If the user chooses to discard the suspended data, the same data is extracted from the target system on the next import.
The threshold calculation applies to accounts, resources, and resource assignments.
The systems that you register in Omada Identity may include a different number of objects and a different number of changes. For this reason, you must individually set the threshold values for each system.
An object is considered as modified even if you have changed only the master data, for example, its compliance state. When you specify the threshold for changed objects, you must also consider changes to master data when you set the value.
Provisioning thresholds
The Provisioning threshold feature is designed to prevent a high number of unwanted provisioning tasks being run and works as an emergency brake where provisioning to a specific target system is suspended or when the number of performed operations exceeds a defined number within a defined time interval.
In addition, operations that are started before the specified threshold is reached are still processed.
Data administrators can treat the suspended data in three different ways:
- Resume processing until thresholds are exceeded again. To resume the provisioning job after which the calculation of thresholds statistics is started.
- Allow processing current pending jobs and resume processing. To resume the provisioning job but the calculation of threshold statistics is not started until all currently pending jobs have run. If new jobs are received during processing the already pending jobs, these are included in the threshold statistics.
- Suspend the checking of threshold settings for a specified number of hours.
Attribute concept
A calculated account resource assignment (CARA) and calculated permission resource assignment (CPRA) can have attribute values.
The use of attributes typically falls into one of the following categories:
- Account fields, such as Email address or Mailbox limit required by the connected system.
- Role parameters (for example, Approval amount limit) that provide additional information on an assignment, for example, an ERP role such as Approve purchase order for an identity. Moreover, role parameters are supported and required by the connected system.
- Information attributes that hold information that's only relevant inside Omada Identity and is not provisioned to the connected system, for example, the Compliance status.
Moreover, the set of legal attributes for a calculated resource assignment is dictated by the attribute set that's specified on the resource type in Omada Identity Enterprise Server.
An attribute definition is merely a wrapper for an Enterprise Server property; in RoPE calculation data, an attribute is represented by the system name of the property (and not the name of the attribute definition itself).
A RoPE assignment attribute has one of the following data types:
BooleanDateTimeIntegerStringReference
The data type of a RoPE assignment attribute is dictated by the type of Enterprise Server property.
Not all types of Enterprise Server properties are supported. A RoPE assignment attribute is always multivalued regardless of whether said property supports multiple values.
The table shows Enterprise Server properties mapping to RoPE attribute data type:
| Enterprise Server property | Maps to RoPE attribute data type |
|---|---|
Value property, data type Text | String |
Value property, data type Integer | Integer |
Value property, data type DateTime | DatetTime |
Value property, data type Decimal | Not supported |
Value property, data type Boolean | Boolean |
Value property, data type Hyperlink | Not supported |
Value property, data type TimeSpan | Not supported |
Value property, data type MultiLangText | Not supported |
Value property, data type XML | Not supported |
| Reference property | String or Reference |
| Set property | Not supported |
An assignment attribute is only saved and stored if it has a value. However, if it does not have a value, but did have one in the past, it's saved in all subsequent calculations (for RoPE to be able to provide a proper delta for the provisioning layer).
Attribute values are automatically assigned from the involved objects of an assignment. For example, if an attribute that's legal for a calculated resource assignment is present on the identity data object, then, the value of the identity is assigned to the calculated resource assignment.
A property should only be used as a definition for a single attribute. The system property's name should never be specified on multiple attribute types.
With respect to the master data in ES, ensure that all Attribute data objects state a unique system property name in the Definition section. If two attributes in the same attribute set have the same definition, RoPE merges them together. As a result, all attributes should state a unique system property name as the definition.