Skip to main content

Data import

This section lists prerequisites and configuration instructions required to enable the Microsoft Entra ID collector in Omada Identity.

Connection details

Choose one of the following options to configure the connection with Microsoft Entra ID: OAuth2 client credentials or OAuth2 JWT.

OAuth2 client credentials

  1. In the Tenant ID field, enter or paste the Tenant ID (using the Directory ID of the directory for which you configured the application). You can find the Directory ID in the Microsoft Azure Portal, under the Properties section for the relevant directory.
  2. In the Application ID, enter the ID of the Omada Identity Azure application that you created in the Microsoft Azure Portal. You can find the Application ID under Settings in the Azure Portal.
  3. In the Client Secret, enter or paste the key that you created during the Omada Identity application setup in the Azure Portal. See Prerequisites for details.
  4. In the API Version field, enter the version of the Microsoft Graph API that you want to employ for this connectivity.
  5. Optionally, configure the Headers field. You can provide a JSON document specifying custom headers. Example:
{"Request": {"Accept": " text/html",
"contenttype": "application/json",
"SomeCustomHeaderWithValue": "custom value",
"SomeCustomHeaderWithoutValue": null}}
  1. Optionally, enable the Test connection setting to make sure that the details that you entered are correct.

OAuth2 JWT

  1. In the Tenant ID field, enter or paste the Tenant ID (using the Directory ID of the directory for which you configured the application). You can find the Directory ID in the Microsoft Azure Portal, under the Properties section for the relevant directory.
  2. In the Application ID, enter the ID of the Omada Identity Azure application that you created in the Microsoft Azure Portal. You can find the Application ID under Settings in the Azure Portal.
  3. In the JWT X.509 Certificate Thumbprint, enter or paste the Thumbprint that you created during the Omada application setup in the Azure Portal.
  4. In the JWT Private Key, enter or paste the certificate key that you created during the Omada application setup in the Azure Portal.
  5. In the JWT Passphrase for private key, enter or paste the passphrase for private key.
  6. Optionally, configure the Headers field. You can provide a JSON document specifying custom headers. Example:
{"Request": {"Accept": " text/html",
"contenttype": "application/json",
"SomeCustomHeaderWithValue": "custom value",
"SomeCustomHeaderWithoutValue": null}}
  1. Optionally, enable the Test connection setting to make sure that the details that you entered are correct.

Queries and mappings

When you onboard an Microsoft Entra ID directory, a number of default queries are already set up. To specify queries and mappings:

  1. Verify that the default Microsoft Entra ID mappings are set up.
  2. Consider if you need to set up special account rules. No identity data is imported from Azure. If you want to make any changes to the queries, click New, then select the object type to create a query for.
  3. In the New query and mapping dialog box, in the General tab, specify a valid URL.
  4. Optionally, use the Filter field in the General tab. You can use a Dynamic Expresso expression to filter the data imported into Omada Identity. It returns a TRUE/FALSE result for each imported data row. If the expression returns FALSE for the given row, that row is skipped during import.
  5. Optionally, enter a Description. If you leave the Base DN field empty, the system uses the Base DN that you specified under Connections details.
  6. Optionally, in the Advanced tab, configure the Headers field. You can provide a JSON document specifying this query mapping. Example:
{"Request":{"ConsistencyLevel":"eventual"}}
  1. In the Mappings tab, map the relevant Destination properties in the left column to a value in the Source on the right side. You can specify whether the Operator is a Map, a Constant, an Expression, or a Lookup. You must always specify the required properties. The number of these properties depends on the selected mappings.
  2. Optionally, you can also add other extension attributes if you click the Add extension button. In such a case, you must type both a name for the extension attribute under the Destination column and a value in the Source column.
  3. For extension attributes you entered manually, select the History checkbox if you want to enable the history recording of the relevant extension attribute.
  4. When you return to the Queries and mappings dialog box, you can copy one or more object types in the overview by selecting the individual object type. Click … --> Copy.
  5. Once you have added the required queries and mappings, click OK. The system validates the details. If there are no errors, the status in the Status column changes to OK.

Default attribute mappings for objects

The table below presents the default fields selected for the object mappings.

Object typeMicrosoft Entra ID objectDefault selected fields
Accountusersid, userPrincipalName, displayName, accountEnabled, lastPasswordChangeDateTime, mail, givenName, surname, businessPhones, manager_mailNickname
Resourceteamsid, displayName, description
Resource assignmentteams/{PARENT_id}/membersPARENT_id, userId, id, roles
Resource owner*groups/{PARENT_id}/ownersPARENT_id, userPrincipalName
Resourceteams/{PARENT_id}/channelsid, displayName, description, PARENT_id
Resource parent/childteams/{PARENT_id}/channelsPARENT_id, id
Resourcegroups/{PARENT_id}/sites/rootPARENT_id, id, displayName, description
Resource assignment*groups/{PARENT_id}/membersPARENT_id, id, member
Resource assignment*groups/{PARENT_id}/ownersPARENT_id, id, owner
Resource owner*groups/{PARENT_id}/ownersPARENT_id, userPrincipalName
Resourcegroups?$filter=mailEnabled eq false and securityEnabled eq true and NOT(groupTypes/any(s:s eq 'Unified'))id, displayName, description
Resource assignment*groups/{PARENT_id}/membersPARENT_id, id, member
Resource assignment*groups/{PARENT_id}/ownersPARENT_id, id, owner
Resource owner*groups/{PARENT_id}/ownersPARENT_id, userPrincipalName
Resourcegroups?$filter=mailEnabled eq true and securityEnabled eq false and NOT(groupTypes/any(s:s eq 'Unified'))id, displayName, description
Resource assignment*groups/{PARENT_id}/membersPARENT_id, id, member
Resource assignment*groups/{PARENT_id}/ownersPARENT_id, id, owner
Resource owner*groups/{PARENT_id}/ownersPARENT_id, userPrincipalName
Resourcegroups?$filter=mailEnabled eq true and securityEnabled eq true and NOT(groupTypes/any(s:s eq 'Unified'))id, displayName, description
Resource assignment*groups/{PARENT_id}/membersPARENT_id, id, member
Resource assignment*groups/{PARENT_id}/ownersPARENT_id, id, owner
Resource owner*groups/{PARENT_id}/ownersPARENT_id, userPrincipalName
Resource assignmentgroups/delta?$select=displayName,description,membersid, membersdelta_id
Resource assignmentgroups?$expand=owners($select=id)&$select=idid, owners_id
Resource ownergroups?$expand=owners($select=id,userPrincipalName)&$select=idid, owners_userPrincipalName
ResourcedirectoryRolesid, displayName, description
Resource assignmentdirectoryRoles/deltaid, members
ResourcesubscribedSkusskuId, skuPartNumber
Resource assignmentusersassignedLicenses, id
ResourcesubscribedSkusservicePlans, id
Resource parent/childgroups/deltaid, members

Queries marked with * are currently disabled because members are retrieved from the Microsoft Graph API using the delta query. This approach allows fetching all group members without distinguishing between individual groups or group types in Microsoft Entra ID.

Since Microsoft only allows retrieving members through delta and not owners, a separate query was created to fetch all group owners without differentiating by group type. The same applies to resource owners - the queries that previously retrieved resource owners separately by group type were disabled. A single query was added to fetch all resource owners at once.

To retrieve members separately by group type, enable these queries manually as needed.

Adding new fields to the mappings

To add new fields to the object mappings, in the Queries and mappings window, in the URL field, add the fields to the comma separated list.

Mapping of resource owners

If you create a query to import resource owners, it is possible to specify the resource's owner in two ways. You can do it either by directly importing the UID of the identity or by specifying the account from which the resolved owner is imported as a resource owner. When mapping directly to the UID of identity, ensure that identities are already imported to Omada Identity.

When mapping to an owned account, it is possible to either specify the business key of the account or the composed business key. The former should be used if the account is in the same system as the resource; the latter should be used if the account is imported into any of the trusted systems.

When the account stems from another system, use a Lookup mapping.

Advanced settings

  1. Enable Perform unfolding to unfold access from resources which use groups to assign membership to users (and where the user is a member of one of these groups). For example, if a user is a member of Active Directory 1, there are certain rights assigned to this user. If Active Directory 1 is a member of Active Directory 2, the user can get the rights for both Active Directory 1 in addition to Active Directory 2. This inheritance of rights is not enabled by default, but if you enable the resource parent-child hierarchy, you can allow it.

You can also provide Microsoft Office 365 licenses and access to applications in MyApps through groups. Omada recommends enabling this setting to ensure that license and application access is unfolded.

  1. The Timeout in seconds field allows you to specify how long the collector should wait for a response from the REST service. The default value is set to 3600 seconds (1 hour).
  2. In the optional Row count per batch field, you can set the number of objects that are collected and staged as a batch when paging is implemented in the collector. The default value is 100000. Applying a low value (for example: 50 or 500) to this setting may result in extended import time.

Default collected data

When you register the first Microsoft Entra ID system, ten new resource types are created:

Resource typeDescription
_[system name]_ AccountThis is the default Account resource type. Two standard account resources are also created. One resource is for personal accounts and the other resource is for orphan accounts with no primary owner.
The name of this resource depends on the name of the system.
Microsoft Entra ID TeamsThis is a Permission resource type. When you import Teams groups, this type is used.
Microsoft Entra ID Teams channelThis is a Permission resource type. When you import channels from Teams, this type is used.
Microsoft Entra ID SharePointThis is a Permission resource type. When you import SharePoint sites, this type is used.
Microsoft Entra ID security groupThis is a Permission resource type. When you import Security groups, this type is used.
Microsoft Entra ID distribution groupThis is a Permission resource type. When you import Distribution groups, this type is used.
Microsoft Entra ID Mail-enabled security groupThis is a Permission resource type. When you import Mail-enable Security groups, this type is used.
Microsoft Entra ID SkuThis is a Permission resource type. When you import purchased O365 SKUs, this type is used.
Microsoft Entra ID serviceThis is a Permission resource type. When you import services that are a part of a purchased SKU, this type is used.
Microsoft Entra ID directory roleThis is a Permission resource type that contains the role definitions in the Entra ID

Default data imports from queries and mappings

When you run an import, the system imports the data defined by queries and mappings. The default data is listed in the Default attributes mappings for objects in the Queries and mappings section.

Users

To import Users, the application must be given the User.Read.All application permission. The collector imports Microsoft Entra ID Users as Accounts; by default, the displayName, givenName, surname, userPrincipalName, mail, businessPhones, manager, sign-in activity and the lastPasswordChangeDateTime are imported. The state of the account is determined by the accountEnabled property.

givenName, surname, and manager are imported as extension attributes and are added to the set of attributes specified for the Account Resource Type. These three attributes are used for reconciliation.

Important

Accessing SignInActivity data requires an Azure Active Directory Premium P1 or P2 license. If no premium license is available, you can remove the out-of-the-box query containing SignInActivity from queries and mappings.

Groups

To import Groups, the application must be given the Group.Read.All application permission. The collector imports Groups as Resources with the Microsoft Entra ID Security Group, Microsoft Entra ID Distribution Group, and Microsoft Entra ID Mail-enabled Security Group resource types. All groups are imported as different types.

The collector imports Groups as Resources with the Microsoft Entra ID Security Group, Distribution Group, Mail-enabled Security Group resources types. All groups (Security, Security (mail enabled) and Distribution) are imported as different types.

info

The Microsoft Graph API does not support distinct endpoints to separate the groups. Omada utilizes filters for separation. Some groups can only be imported and not managed (you cannot manage memberships and other details).

Do not use the Description field for standard purposes in Microsoft Entra ID Groups. Due to the limitations of the Graph API, Omada uses this field to store logical keys. This prevents resource duplication within the Omada environment.

Teams Groups

To import Teams Groups, the application must be given Team.ReadBasic.All application permission. The collector imports Teams Groups as Resources with the Microsoft Entra ID Teams resource type. The ID of the Teams Group is imported as ShortName. The ID of the group is imported as ShortName. In a default configuration, it means the Omada Identity Configurtion ID is also the resource ID. See the Team resource type in the Microsoft documentation to learn more.

Teams Channels

To import Teams Channels, the application must be given the Team.ReadBasic.all Channel.ReadBasic.All application permission. The collector imports Teams Channels as Resources with the Microsoft Entra ID Teams Channel resource type.

note

In Microsoft Teams, when you create a new team, a default channel called General is automatically created. To prevent the duplication of channels, Omada Identity includes a filtering mechanism that excludes channels named General in the import process.

SharePoint Groups

To import Sharepoint Groups, the application must be given the Group.Read.All and Sites.Read.All application permission. The collector imports Sharepoint groups as Resources with the Microsoft Entra ID SharePoint resource type. The ID of the group is imported as ShortName. In a default configuration, it means the ID is also the resource ID.

Accessing data from SharePoint sites requires a Microsoft E5 license.

note

Do not use the Description field for standard purposes in Microsoft Entra ID SharePoint Groups. Due to the limitations of the Graph API, Omada uses this field to store logical keys. This prevents resource duplication within the Omada environment.

Omada also implements filtering methods to acquire relevant SharePoint sites without duplicating resources (Omada uses nested URLs to access site details). The Microsoft Graph API does not provide endpoints for provisioning SharePoint sites or memberships. Omada uses Entra ID Groups for provisioning SharePoint groups and managing memberships.

Directory roles

To import Directory roles the application must be given the RoleManagement.Read.Directory application permission. The collector imports Directory roles as Resource with the Microsoft Entra ID Directory Role resource type. The ID of the directory role is imported as ShortName. In a default configuration, it means the ID is also the resource ID. Only the activated directory roles are imported.

See the directoryRole resource type in Microsoft documentation to learn more.

Resources Assignments

To import Assignments, the application must be given the Group.Read.All application application permission. To import Teams memberships, the application must be granted the TeamMember.Read.All application permission. The following standard resource assignments are available in Omada:

  • Assignments between Security Groups, members and owners
  • Assignments between Mail-enabled Security Groups, members and owners
  • Assignments between Distribution Groups, members and owners
  • Assignments between Sharepoint Groups, members and owners
  • Assignments between Teams Groups, members and owners

In all listed resource assignments, an extension attribute called C_MSENTRAIDGROUPROLE was integrated. This attribute allows specifying the membership type (member or owner). Omada Identity uses this attribute to provision rights during the membership deletion processes.

For resource assignments involving Teams groups and users, a new extension attribute called C_MSTEAMSMEMBERSHIPID was integrated. This attribute stores the membership ID from Teams, providing information necessary for deleting assignments as required.

note

The Microsoft Graph API does not provide an endpoint to fetch the members of the site. Omada uses groups/members and groups/owner to retrieve the SharePoint assignments.

Assignments between Users and Directory roles

To import Assignments, the application must be given the RoleManagement.Read.Directory application permission. Resource assignments between Users and Directory roles are imported using the delta functionality of the MS Graph API. However, the collector performs an initial query on each import and, in that sense, not utilizes the full delta functionality.

Parent/child relationships between Teams and Channels

To import the relationships, the application must be given the Team.ReadBasic.all Channel.ReadBasic.All application permission.

Parent/child relationships between Groups

To import relationships the application must be given Group.Read.All application permission. In Microsoft Entra ID, if a group is a member of another group, these memberships are imported as Parent/child relationships in Omada Identity. This means that if a User A is member of a group Child, and the group Child is member of a group Parent, then the User A has an implicit direct membership of the group Parent.

info

Role and Policy Engine (RoPE) does not calculate implicit direct memberships out of the box. To calculate such memberships, set the Ignore indirect ODW assignments customer setting to False. You can also instruct the Omada Data Warehouse to not unfold these assignments in the Advanced settings of the system onboarding.

Resource owners

To import relationships, the application must be given the Team.ReadBasic.All and Group.Read.All application permissions. The following standard resource owners are available in Omada:

  • Resource owner Security Groups
  • Resource owner Mail-enabled Security Groups
  • Resource owner Distribution Groups
  • Resource owner Sharepoint Groups
  • Resource owner Teams Groups

Office 365 information

The collector also imports data related to Office 365 licenses.

Stock Keeping Units
To import SKUs the application must be given the Organization.Read.All application permission. Stock Keeping Units or licenses are imported as resources with the Microsoft Entra ID SKU resource type. The resources are categorized as Resource in the ODW.

Service Plans
To import service plans the application must be given the Organization.Read.All application permission. The Service plans contained in an SKU are imported as separate resources with the Microsoft Entra ID Service resource type. The resources are categorized as Resource in the ODW.

Assigned licenses
To import service plans, the application must be given the User.Read.All application permission. Assigned licenses or assignments between a User and an SKU are imported as Resource assignments.

Assigned service plans
To import service plans the application must be given the User.Read.All application permission. Service plans assigned to a User through an Assigned service license are imported as Resource assignments.

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, type a number (integer) in percentage for New objects, Modified objects, and Deleted objects to enable thresholds for the import of objects from this system. The value for each operation is by default set to 0, which means that no threshold calculations take place for the operations until you change the integer.

For more information, see the Import and Onboarding section.

info

For all .NET-based collectors, thresholds are calculated in the following relation:

  • If the system category is set to Identity data, the thresholds are calculated.
  • If the system category is set to Access data, the thresholds are calculated.
  • If the system category set to Both, the thresholds only apply to Access data, that is, Accounts, Resources, and ResourceAssignments.