Skip to main content

Generic database

Some types of systems must be registered and onboarded to Omada Identity through a generic database instead of a direct connection to the system. Omada Identity supports import of data from a GenericDB database schema hosted in databases on either Microsoft SQL Server or Oracle. The GenericDB database schema is the Omada-provided predefined schema which matches the data model of the Omada Data Warehouse.

When registering a new system in Omada, in the Technology drop-down list, select the SQL Query Collector for Generic Database or SQL Query Collector for Generic Database (multiple systems) option.

Supported data types and modes

The following objects can be imported:

Identity Systems: Identities, Contexts, Identity Owners, Context Owners, Context Assignments
Access Systems: Accounts, Resources, Resource Owners, Resource Assignments

The following modes are supported:

Full import: The database must contain the full set of objects.
Delta import: The database only contains added, changed, and deleted objects. The high-water mark used to generate the delta should be stored in the ODW database by implementing an EventHandler extension based on the Omada ODW GenericDB EventHandler Template.

Prerequisites

You need to prepare a database with populated tables before the Omada Identity import. The following requirements need to be met for the target systems:

The servers running the Omada Identity Data Warehouse import must have Oracle’s OLE DB provider installed. This is part of the ODAC (Oracle Data Access Components) and is available for download from Oracle’s website. ODAC is available in both 32-bit and 64-bit versions (both 32-bit and 64-bit versions ODAC can be installed on the same machine at the same time - for some actions the 32-bit version is the only supported version).

To access an Oracle-based generic database when running an Omada Identity Data Warehouse import by invoking the dtexec executable directly or through the SQL Agent, the 64-bit version of ODAC must be installed on the machine running the SSIS packages.

Data model

note

The maximum value length is 400 characters.

System

The system should only be populated for the Generic database (multiple systems) categories.

ColumnData typeMandatoryDescription
ActioncharIn delta mode onlyFill in for delta import only: D for deleted data and C for created/changed data in the source system. In the full import mode, this column must be null. In the delta import mode, this column must not be null.
BusinessKeystringYesThe system’s key for the object. Unique value required.
NamestringYesThe name of the resource.
ShortnamestringIf you do not specify anything here, the BusinessKey is used as ShortName if you have specified this. If you have not specified BusinessKey or do not specify a value for ShortName, Name is used as ShortName. Unique value required.
DescriptionstringA description of the system.

Context

ColumnData typeMandatoryDescription
ActioncharIn delta mode onlyFill in for delta import only: D for deleted data and C for created/changed data in the source system. In the full import mode, this column must be null. In the delta import mode, this column must not be null.
BusinessKeystringYesThe system’s key for the object. Unique value required.
NamestringYesThe name of the context.
TypestringYesThe context type, for example OrgUnit, Company, or Cost Center. For organizational units, the type must be equal to OrgUnit. If you do not specify any values here, OrgUnit is used.
SubTypestringA more detailed type of context.
Parent_BusinessKeystringThis value must correspond to the value that you specified in the BusinessKey field for the parent context.
Parent_Composed BusinessKeystringThe composed business key for the parent context. Use this if the parent context comes from a different system category. Note that the parent context that you specify must be present in the Source System Data database.

Identity

ColumnData typeMandatoryDescription
ActioncharIn delta mode onlyFill in for delta import only: D for deleted data and C for created/changed data in the source system. In the full import mode, this column must be null. In the delta import mode, this column must not be null.
BusinessKeystringYesThe system’s key for the object. Unique value required.
UIDstringYesThe company-wide identifier of the identity (employee ID from an HR system). UID is normally used to identify the individual employee across systems. If the person exists in multiple systems, this is the common ID.
Starting with v14, you can customize this behavior using identity join rules. When the identity is exported from the Omada Identity Data Warehouse to the Omada Identity Enterprise Server, UID becomes IDENTITYID.
NamestringYesThe name of the identity.
FirstNamestringYesThe first name of the identity.
LastNamestringYesThe last name of the identity.
EmailstringThe identity’s email address.
JobTitlestringThe identity’s job title.
CountrystringThe country in which the identity is employed.
CompanystringThe company in which the identity is employed.
EmployeeIDstringThe employee ID from an HR system. EmployeeID is only used for presentation purposes, so you do not need to specify this.
StatusstringYesOmada recommends that you only use the following values:
- Active
- Disabled
- Terminated
ValidFromdatetimeThe identity’s first day of work.
ValidTodatetimeThe identity’s last day of work.
CategorystringThe category must correspond to the English name of a value of the property Identity.

IDENTITYCATEGORY
- Employee
- Contractor
- Business partner
- Other

If not specified, it defaults to Employee.
TypestringOmada recommends that you only use the following values:
- Primary
- Machine

If not specified, it defaults to Primary.

ContextOwner

ColumnData typeMandatoryDescription
ActioncharIn delta mode onlyFill in for delta import only: D for deleted data and C for created/changed data in the source system. In the full import mode, this column must be null. In the delta import mode, this column must not be null.
BusinessKeystringThe system’s key for the object. If not specified, it will be automatically generated from OwnerUID+Context_BusinessKey. Unique value required.
OwnerUIDstringyesThis value must correspond to what you specified in the UID field for the identity.
Context_BusinessKeystringyesThis value must correspond to the value that you specified in the BusinessKey field for the context.
TypestringOwnership type (for example: manager or substitute).

ContextAssignment

ColumnData typeMandatoryDescription
ActioncharIn delta mode onlyFill in for delta import only: D for deleted data and C for created/changed data in the source system. In the full import mode, this column must be null. In the delta import mode, this column must not be null.
BusinessKeystringThe system’s key for the object. If not specified, it will be automatically generated from ContextBusinessKey+IdentityUID. Unique value required.
ContextBusinessKeystringyesThis value must correspond to what you specified in the BusinessKey field for the context.
IdentityUIDstringyesThis value must correspond to what you specifiedin the UID field for the identity.
ValidFromdatetimeThe date from which the context assignment is valid.
ValidTodatetimeThe date to which the context assignment is valid.

Account

ColumnData typeMandatoryDescription
ActioncharIn delta mode onlyFill in for delta import only: D for deleted data and C for created/ changed data in the source system. In the full import mode, this column must be null. In the delta import mode, this column must not be null.
BusinessKeystringyesThe system’s key for the object. Unique value required.
UIDstringyesThe UID is used to establish the relation between the account and the identity UID.
AccountNamestringyesThe name of the account. The name must have a unique value within a file/system.
DescriptionstringA description of the account.
CategorystringIf you select Group as the category, the resource is also imported as an account in the Omada Identity Data Warehouse. This is done to map resource assignments assigned to users via a group.
StatusstringStatus, for example, active or disabled.
ValidFromdatetimeThe date from which the account is valid.
ValidTodatetimeThe date until the account is valid.
System_BusinessKeystringyesThis value must correspond to the value that you specified in the BusinessKey field for the system.
DomainstringOnly relevant for an AD account.
DisplayNamestringIf you do not specify anything, Name is used as DisplayName.
DistinguishedNamestringThe distinguished name of the account.
PathstringThe path to the account.
StatusMaskbigintIntegral representation of status, for example, as a bit mask.
LastLogondatetimeThe last time that the account logged on.
LastPasswordChangedatetimeThe last time that the password was changed.

Resource

ColumnData typeMandatoryDescription
ActioncharIn delta mode onlyFill in for delta import only: D for deleted data and C for created/changed data in the source system. In the full import mode, this column must be null. In the delta import mode, this column must not be null.
BusinessKeystringyesThe system’s key for the object. Unique value required.
NamestringyesThe name of the resource.
DomainstringUse this if the resource belongs to an AD or LDAP system.
ShortNamestringA short name for the resource. Unique value required.
DisplayNamestringIf you do not specify anything, Name is used as DisplayName.
DistinguishedNamestringThe distinguished name of the resource. Use this if the resource belongs to an AD/LDAP system.
PathstringThe path to the resource. Use this if the resource belongs to an AD/LDAP system.
DescriptionstringA description of the resource.
TypestringDetails the category, for example Security Group or Distribution Group.
CategorystringIf you select Group as the category, the resource is also imported as an account in the Omada Identity Data Warehouse. This is done to map resource assignments assigned to users via a group.
System_BusinessKeystringyesThis value must correspond to the value that you specified in the BusinessKey field for the system.
SecurityResource_BusinessKeystringyesThe business key for the resource that defines the security for this resource. Usually, it has the same value as the BusinessKey of the Resource.
LogicKeystringThe logical key is a configurable key that can be used to match resource objects. For more details, see Import and onboarding.

IdentityOwner

ColumnData typeMandatoryDescription
ActioncharIn delta mode onlyFill in for delta import only: D for deleted data and C for created/changed data in the source system. In the full import mode, this column must be null. In the delta import mode, this column must not be null.
BusinessKeystringThe system’s key for the object. If not specified, it will be automatically generated from IdentityUID.+OwnerUID. Unique value required.
IdentityUIDstringyesThe value must correspond to the value that you specified in the UID field for the identity.
OwnerUIDstringyesThe value must correspond to the value that you specified in the UID field for the identity owner.
TypestringOwnership type, for example: manager.

ResourceParentChild

ColumnData typeMandatoryDescription
ActioncharIn delta mode onlyFill in for delta import only: D for deleted data and C for created/changed data in the source system. In the full import mode, this column must be null. In the delta import mode, this column must not be null.
ParentBusinessKeystringyesThis value must correspond to the value that you specified in the BusinessKey of the parent Resource.
Child_BusinessKeystringyesThis value must correspond to the value that you specified in the BusinessKey of the child Resource. It is only mandatory if Child_ComposedBusinessKey has not been specified (one of these two needs to be always specified).
Child_ComposedBusinessKeystringyesThe composed business key for the child resource. Use this if the child resource comes from a different system category. Note that the child resource that you specify must be present in the Source System Data database. It is only mandatory if Child_BusinessKey has not been specified (one of these two needs to be always specified).
IndirectbooleanyesYou must set this value to True if the resource parent child relationship is indirect, for example between a children resource and one of its grandparents or greatgrandparents. If the resource parent-child relationship is not indirect, you should not set this value to True. If it is not specified, it defaults to False. Use indirect resource parent-child relationships to generate indirect resource assignments between resources that have the category Group.

ResourceOwner

ColumnData typeMandatoryDescription
ActioncharIn delta mode onlyFill in for delta import only: D for deleted data and C for created/changed data in the source system. In the full import mode, this column must be null. In the delta import mode, this column must not be null.
BusinessKeystringThe system’s key for the object. If not specified, it will be automatically generated from IdentityUID.+OwnerUID. Unique value required.
OwnerUIDstringyesThe value must correspond to what you specified in the UID field for the identity.
Resource_BusinessKeystringyesThis value must correspond to the value that you specified in the BusinessKey of the Resource.
TypestringOwnership type, for example, substitute.

ResourceAssignment

ColumnData typeMandatoryDescription
ActioncharIn delta mode onlyFill in for delta import only: D for deleted data and C for created/changed data in the source system. In the full import mode, this column must be null. In the delta import mode, this column must not be null.
Resource_BusinessKeystringyesThis value must correspond to the value that you specified in the BusinessKey of the Resource.
Account_BusinessKeystringyesMust correspond to what you specified in the BusinessKey field for the Account. It is only mandatory if Account_ComposedBusinessKey has not been specified (one of these two needs to be always specified).
Account_ComposedBusinessKeystringyesThe composed business key for the account. Use this if the account comes from a different system category. The account that you specify must be present in the Source System Data database. It is only mandatory if Account_BusinessKey has not been specified (one of these two needs to be always specified).
ValidFromdatetimeThe date from which the resource assignment is valid.
ValidTodatetimeThe date to which the resource assignment is valid.
StatusstringStatus, for example, active or disabled.
DescriptionstringA description of the resource assignment.
PermissionLevelstringThe level of permission. For example, Full Control or Read Only.
PermissionMaskintegerThe integral representation of the permission level, for example as a bit mask.
AccountIsGroupbooleanyesIf the account belongs to the category Group, you must set this field to True. If not specified, defaults to False.
BusinessKeystringThe system’s key for the object. If not specified, it will be automatically generated from Resource_BusinessKey+Account_ComposedBusinessKey or Resource_BusinessKey+Account_BusinessKey. Unique value required.

ImportSystemFilter

ColumnData typeMandatoryDescription
BusinessKeystringyesThe system’s key for the object. Unique value required.
ExtHighWaterMarkstringyesThe high-water mark for the current system. In the delta mode, it is used to provide a point of reference for delta creation.
NewExtHighWaterMarkstringyesThe new high-water mark for the system. In the delta mode, it is used to provide a point of reference for delta creation.

Decision

ColumnData typeMandatoryDescription
BusinessKeystringThe system’s key for the object. Unique value required.
ProcessTypestringShows which type of process the decision was made in.
TimestringThe time of the decision.
ApproverRolestringThe role of the approver identity, for example, manager.
ApproverNamestringThe name of the approver identity.
ApproverOISIDintegerUnique identifier of the approver identity within Omada Identity.
ExpirationTimedatetime

DecisionResourceAssignment

ColumnData typeMandatoryDescription
Decision_BusinessKeystringyesMust correspond to what you specified in the BusinessKey field for the decision.
ResourceAssignment_ComposedBusinessKeystringThe composed business key for the resource assignment. Use this if the resource assignment comes from a different system category. The resource assignment that you specify must be present in the Source System Data database.
ResourceAssignment_BusinessKeystringMust correspond to what you specified in the BusinessKey field for the resource assignment.
Resource_BusinessKeystringMust correspond to what you specified in the BusinessKey field for the resource.
Account_ComposedBusinessKeystringThe composed business key for the account. Use this if the account comes from a different system category. The account that you specify must be present in the Source System Data database.
Account_BusinessKeystringMust correspond to what you specified in the BusinessKey field for the Account.
AccountIsGroupbooleanIf the account belongs to the category Group, you must set this field to True.
AnswerstringThe actual decided action (for example: approve, reject, or dispensate).
JustificationstringShows the comment given for the decision.
ConstraintsstringInformation on the combinations of resources or business processes that represent a violation of established policies.
CompensationControlstringInformation on the describing the plan for compensating for the violation of a constraint.

Collector configuration (data import)

Connection details

SettingDescription
Database platformThe platform to use for the generic database. Select either Microsoft SQL Server or Oracle.
Connection stringDefine a connection string to connect Omada Identity to the generic database. This is a mandatory setting.

Enter a connection string following the OLE DB syntax, referencing the provider selected for the database platform. For Microsoft SQL Server, see Microsoft OLE DB Provider for SQL Server Overview. For Oracle, find more information on the Oracle homepage.
Database schemaSpecify a database schema for the generic database connector to use when reading from the generic database.
Test connectionEnable this setting to test the specified connection details. To use this functionality, install Omada Provisioning Service and make sure it has the necessary permissions to communicate with the target system.

Extension attributes

For all extension attributes, enter a comma-separated list of the relevant attributes. Extension attribute categories appear twice - the first option records the history, the other doesn't:

  • Accounts
  • Contexts
  • Identities
  • Resources
  • Resource assignments

Advanced configuration

SettingDescription
Perform unfoldingEnable the setting to unfold a resource parent-child hierarchy.
Event handler extensionEnter the name of a custom event handler extension package (for example, to load data from files or other sources into the generic database). The event handler extension packages should be deployed to the Omada\ODW\Event Handler folder on the SSIS server. Use the following naming conventions for Event Handler Packages:

<system category name>Event Handler (example: SAP EventHandler)
Import mode for identities, accounts, and resources

Import mode for contexts

Import mode for context assignments

Import mode for context owners

Import mode for identity owners

Import mode for resource assignments

Import mode for resource owners

Import mode for systems

Import mode for system owners
Select Full to perform a full database import or Delta to only import data that has changed since the last import.

Configure thresholds

The Configure thresholds function allows you to set the amount of changes that cannot be exceeded, relevant to the last import. In the Configure import thresholds view, enter a number (integer) in percentage for new objects, modified objects, and deleted objects to enable thresholds for the import of objects from this system. For more information, see the Threshold section.

::: note

Thresholds only apply to Access data (accounts, resources, and resource assignments) even if the Both category is selected. If the system is configured as Access Data, the Configure thresholds functionality is not shown in the menu list.

:::

Connector configuration (data provisioning)

SettingDescription
Database providerSelect OLE DB or PostreSQL.
Connection stringDefine a connection string to connect Omada Identity to the generic database. This is a mandatory setting.
Disable schema validationOptionally, select the Disable schema validation checkbox to disable the function where the connector validates the database schema.
Test connectionEnable this setting to test the specified connection details. To use this functionality, install Omada Provisioning Service and make sure it has the necessary permissions to communicate with the target system.

Provisioning

SettingDescription
Method for accountsSelect the provisioning method to use to provision assignments. You can select the following options: - None (no provisioning of account assignments)
- Omada Provisioning Service
- Manual provisioning
- Microsoft Identity Manager (MIM)
Method for assignmentsSelect the provisioning method to use for provisioning assignments. You can select the following options: - None (no provisioning of permission assignments)
- Omada Provisioning Service
- Manual provisioning
- Microsoft Identity Manager (MIM)
Provisioning connectorIf you select Omada Provisioning Service as the provisioning method, you must also select a provisioning connector (for example, a database connector created from the Generic database (Template), PowerShell, or a custom connector).
Use default configurationSelect the checkbox to use the default configuration. If you enable this option, it overwrites any existing configuration.
NameEnter a name of the connector to use.

Data model

Enter or paste code related to the connector’s data model. The data model is adapted individually to each database to which you want to write. You must describe each database table as an <object> in the model. Define each column to write to in the table as a <property>.

Example: GWGUserProfile table

The corresponding connector data model:

<connectorDataModel xmlns="http://schemas.omada.net/ops/2015/ConnectorDataModelML"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<properties>
<property name="UserName" dataType="stringType"/>
<property name="UserDisplayName" dataType="stringType"/>
</properties>
<objects>
<object name="GWGUserProfile">
<objectProperties>
<objectProperty isKey="true">UserName</objectProperty>
<objectProperty>UserDisplayName</objectProperty>
</objectProperties>
</object>
</objects>
</connectorDataModel>

The UserId is left out as it is an identity column that should not be used. To perform update/delete operations, specify key column(s) in the table. The column does not have to be the actual primary key, but it must contain a unique value in the table. To indicate the key columns, add the isKey attribute to the objectProperty element:

<objectProperty isKey="true">UserName</objectProperty>

When the connector performs an update and deletes operations, all key properties are used form the where-clause of the SQL.

Foreign key columns

In some cases, you must locate foreign-key values for insert and update statements.

Example: GWGResourceAssigment table

The Account_UserId column is a foreign key to the UserId column in table GWGUserProfile mentioned in the data model example. Often, Omada Identity does not have this value available anywhere, but only the Username value. In this case, the OPS Database connector must perform a lookup to find the UserId. The referenceObject, referenceKeyProperty, and referenceLookupProperty are used for this purpose. To support the lookup, use the following data model:

<connectorDataModel xmlns="http://schemas.omada.net/ops/2015/ConnectorDataModelML"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<properties>
<property name="Account_UserId" dataType="referenceType"/>
<property name="Resource_ResourceId" dataType="referenceType"/>
</properties>
<objects>
<object name="GWGResourceAssignment">
<objectProperties>
<objectProperty isKey="true" referenceObject="GWGUserProfile"
referenceKeyProperty="UserId" referenceLookupProperty="UserName">Account_
UserId</objectProperty>
<objectProperty isKey="true" referenceObject="GWGResource"
referenceKeyProperty="ResourceId" referenceLookupProperty="ResourceName">Resource_
ResourceId</objectProperty>
</objectProperties>
</object>
</objects>
</connectorDataModel>

You must specify the Account_UserId as a reference type property dataType="referenceType:

<property name="Account_UserId" dataType="referenceType"/>

The objectProperty is specified:

<objectProperty isKey="true"
referenceObject="GWGUserProfile"
referenceKeyProperty="UserId"
referenceLookupProperty="UserName">Account_UserId</objectProperty>

This instructs the database connector to make a lookup against the database table named GWGUserProfile where the filtering is done on the UserName column and the value retrieved from column UserId. If your database is defined with proper foreign-key information, the database connector can look up the information automatically. In this case, all you need to specify is the referenceLookupProperty property. The rest is read automatically out of the schema’s information in the database.

Call stored procedures

The database connector is designed to perform simple insert, update and delete statements against database tables. It is often necessary with multiple inserts or lookup to perform the wanted operation (in a stored procedure on the database which the connector can then call). When you create the stored procedure, it must follow the naming convention:

<Operation>_<ObjectName>

<Operation> can be Create, Update, Delete, CreateOrUpdate, or DeleteIfExists.

Specify objects as stored procedures

If the DisableSchemaValidation parameter is set to True, you must manually specify if an object is a stored procedure (in the object details):

<objects>
<object name=”User”>
<objectDetails>
<objectDetail name=”isStoredProcedure” value=”true” />
</objectDetails>
<objectProperties/>
</object>
</objects>
</connectorDataModel>

Database schemas

You can provide a database schema for every single object defined in the configuration. By default, no schema type is used in the query against the target databases. The schema has to be specified in the objectDetail section of the configuration. To use the schema OPS for the User objects, use the following configuration:

<objects>
<object name=”User”>
<objectDetails>
<objectDetail name=”schema” value=”OPS” />
</objectDetails>
<objectProperties/>
</object>
</objects>
</connectorDataModel>

Task mappings

For the Generic Database connector, no template task mappings are provided out of the box. You must define the data model and task mapping objects that are configured for the particular system that you want to connect to. The system will add any required fields to all the new task mappings, but you need to add mappings for all other relevant fields.

If a custom connector is used, task mappings must be created manually. See Software Development Kit for details.