Microsoft Entra ID, formerly Azure Active Directory, is Microsoft's cloud identity and access management service for users, groups, devices and apps, with single sign-on and multi-factor authentication. The UnifyApps Microsoft Entra ID connector uses the Microsoft Graph API to create, update, disable and delete users and groups, manage group members, owners and licenses, read directory details and react to user and group changes from workflows and agents.
This guide covers every authentication type available on the connection form, and the actions and triggers supported, along with the Microsoft Graph permission each one needs.
Authentication
Before you begin, you should have the following information:
Connection name: a descriptive name such as MyAppMicrosoftEntraIDIntegration, so the connection is easy to identify later.
Authentication type: select the type of authentication for connecting to your Microsoft Entra ID tenant:
OAuth
OAuth with client configuration
Client credentials
Every authentication type needs a Client ID and Client Secret from your own Azure app registration. For the two OAuth types, the Scopes field is optional: if you leave it empty, the connection requests offline_access, Group.ReadWrite.All, User.ReadWrite.All, People.Read.All and Directory.Read.All. If you select scopes yourself, include offline_access so the connection can refresh its token. All of these permissions except offline_access need admin consent.
1. OAuth
Use this when actions should run on behalf of a signed-in Microsoft user, through your organization's Azure app registration.
Step 1: App registration in Azure
Log in to the Azure portal, search for App registrations and click New registration.


Enter a name and choose the supported account type as Multitenant or Single tenant.
Under Redirect URI, choose platform Web and paste the UnifyApps Callback URL. The OAuth form does not show it; select OAuth with client configuration on the connection form to copy it. Both types use the same URL, which differs per environment.
Click Register.


On the Overview tab, copy the Application (client) ID and the Directory (tenant) ID.


Go to API permissions → Add a permission → Microsoft Graph → Delegated permissions and add the permissions the connection will use, for example User.ReadWrite.All, Group.ReadWrite.All, Directory.Read.All, People.Read.All and offline_access. See the Scopes Required column below.
Click Grant admin consent. The directory permissions above require it.
Go to Certificates & secrets → New client secret, add a description and expiry, and click Add. Copy the secret Value immediately and store it securely. It is not shown again.


Step 2: Connection setup in UnifyApps
Open Connections → New Connection → Microsoft Entra ID and enter a Connection name.
Select OAuth as the Authentication type.
Enter the Client ID and Client Secret copied from Azure.
Leave Tenant ID as
common, or enter your tenant ID to restrict sign-in to one organization.Optionally select the Scopes you need, including
offline_access.Leave Delegated scopes on (the default).
Click Authorize, sign in with a Microsoft account in your tenant and accept the consent screen.
Confirm the success message after the redirect back to UnifyApps.
Note: with the OAuth types, actions run as the signed-in user. Write actions also need that user to hold a suitable Microsoft Entra role, for example User Administrator or Groups Administrator.
2. OAuth with client configuration
Use this when your organization wants the connection to use its own Azure app registration while actions still run on behalf of a signed-in user. It works like OAuth, and the form also shows the Callback URL to register in Azure.
Step 1: App registration in Azure
Register the app as described in Step 1 of OAuth above. Under Redirect URI, choose platform Web and paste the Callback URL shown at the top of this connection form.
Copy the Application (client) ID, Directory (tenant) ID and client secret Value.
Step 2: Connection setup in UnifyApps
Open Connections → New Connection → Microsoft Entra ID and enter a Connection name.
Select OAuth with client configuration as the Authentication type.
Enter the Client ID and Client Secret copied from Azure.
Leave Tenant ID as
common, or enter your tenant ID.Optionally select the Scopes you need, including
offline_access.Leave Delegated scopes on (the default).
Click Authorize, sign in with Microsoft and accept the consent screen.
Confirm the success message after the redirect back to UnifyApps.
3. Client credentials
Use this for app-only access that does not depend on a signed-in user. The app acts as itself with the application permissions granted in Azure.
Step 1: Register the app in Azure
Log in to the Azure portal, search for App registrations and click New registration.
Enter a name and supported account type, and click Register. No redirect URI is needed for this flow.
From Overview, copy the Application (client) ID and Directory (tenant) ID.
Go to API permissions → Add a permission → Microsoft Graph → Application permissions and add the permissions the connection will use, for example User.Read.All and Group.Read.All to read, or User.ReadWrite.All and Group.ReadWrite.All to make changes. See the Scopes Required column below.
Click Grant admin consent. Application permissions do not work until an administrator consents to them.
Go to Certificates & secrets → New client secret, click Add, and copy the secret Value.
Step 2: Create the connection in UnifyApps
Select Client credentials as the Authentication type.
Enter the Client ID, Client Secret and Tenant ID. Use your actual tenant ID here;
commonis meant for the sign-in based flows.Leave Delegated scopes off (the default for this type).
Click Test Connection to validate the credentials, then click Create.
Actions
Permissions are Microsoft Graph permissions. Where Delegated and Application differ, Delegated applies to the OAuth types and Application to Client credentials. Any broader permission also works. Some least-privileged permissions, such as GroupMember.ReadWrite.All, LicenseAssignment.ReadWrite.All and User.RevokeSessions.All, are not in the form's Scopes list: with the OAuth types, use the broader permission shown in brackets; with Client credentials, grant whichever you prefer in Azure.
Actions | Description | Scopes Required |
|---|---|---|
| Adds an owner to a security group or Microsoft 365 group. | Group.ReadWrite.All (or Directory.ReadWrite.All) |
| Adds or removes a user license in Microsoft Entra ID. | LicenseAssignment.ReadWrite.All (or User.ReadWrite.All) |
| Adds the selected user to a group in Microsoft Entra ID. | GroupMember.ReadWrite.All (or Group.ReadWrite.All) |
| Gets the number of direct members in a group. | GroupMember.ReadBasic.All (or Group.Read.All) |
| Gets the total number of groups in Microsoft Entra ID. | Group.Read.All (or Directory.Read.All) |
| Gets the total number of users in Microsoft Entra ID. | Delegated: User.ReadBasic.All (or User.Read.All); Application: User.Read.All |
| Creates a group in Microsoft Entra ID. | Delegated: Group.ReadWrite.All; Application: Group.Create (or Group.ReadWrite.All) |
| Creates a user in Microsoft Entra ID. | User.Create and User.Read.All, plus User.ReadUpdate.All if you set update fields (or User.ReadWrite.All for all) |
| Deletes a group in Microsoft Entra ID. | Group.ReadWrite.All |
| Deletes a user in Microsoft Entra ID. | User.ReadWrite.All |
| Disables a user in Microsoft Entra ID. | User.EnableDisableAccount.All and User.Read.All (or User.ReadWrite.All) |
| Downloads a user's photo from Microsoft Entra ID. | ProfilePhoto.Read.All (or User.Read.All) |
| Gets the details of all groups in Microsoft Entra ID. | Group.Read.All (or Directory.Read.All) |
| Gets the details of all subscribed SKUs (licenses) in Microsoft Entra ID. | LicenseAssignment.Read.All (or Directory.Read.All) |
| Gets all users in Microsoft Entra ID. | Delegated: User.ReadBasic.All (or User.Read.All); Application: User.Read.All |
| Gets the profile of the connected user, or of a given user, from Microsoft Entra ID. | Delegated: User.Read for your own profile, User.Read.All for another user; Application: User.Read.All |
| Gets the users and contacts that report directly to a user in Microsoft Entra ID. | Delegated: User.Read and User.ReadBasic.All (or User.Read.All); Application: User.Read.All |
| Gets the details of a group in Microsoft Entra ID. | Group.Read.All (or Directory.Read.All) |
| Gets groups created, updated or deleted in Microsoft Entra ID, using a delta query. | Group.Read.All (or Directory.Read.All) |
| Returns a delta token for the current point in time, without a full sync, to pass to Get groups delta later. | Group.Read.All (or Directory.Read.All) |
| Gets the details of a user's manager in Microsoft Entra ID. | User.Read.All (delegated; Microsoft lists no application permission) |
| Gets the details of a user in Microsoft Entra ID. | Delegated: User.Read for your own profile, User.Read.All for another user; Application: User.Read.All |
| Gets the license details of a user in Microsoft Entra ID. | LicenseAssignment.Read.All (or User.Read.All); delegated, Microsoft lists no application permission |
| Gets users created, updated or deleted in Microsoft Entra ID, using a delta query. | User.Read.All |
| Lists the groups, admin roles and administrative units that a group is a direct member of. | GroupMember.ReadBasic.All (or Group.Read.All) |
| Lists the owners of a group. | GroupMember.Read.All (or Group.Read.All) |
| Lists the users, groups, devices and organizational contacts that are members of a group, including nested members. | GroupMember.ReadBasic.All (or Group.Read.All) |
| Lists the groups that a group is a member of, including groups it is a nested member of. | GroupMember.ReadBasic.All (or Group.Read.All) |
| Lists the groups of a user in Microsoft Entra ID. | Delegated: User.Read for your own groups, User.Read.All for another user; Application: Directory.Read.All |
| Removes an owner from a Microsoft 365 group or security group. | Group.ReadWrite.All (or Directory.ReadWrite.All) |
| Removes a user from a group in Microsoft Entra ID. | GroupMember.ReadWrite.All (or Group.ReadWrite.All) |
| Revokes a user's sign-in sessions in Microsoft Entra ID. | Delegated: User.RevokeSessions.All (or User.ReadWrite.All); Application: User.RevokeSessions.All |
| Searches the members of a group in Microsoft Entra ID. | GroupMember.ReadBasic.All (or Group.Read.All) |
| Searches groups in Microsoft Entra ID. | Group.Read.All (or Directory.Read.All) |
| Searches the transitive (nested) members of a group in Microsoft Entra ID. | GroupMember.ReadBasic.All (or Group.Read.All) |
| Searches users in Microsoft Entra ID. | Delegated: User.ReadBasic.All (or User.Read.All); Application: User.Read.All |
| Updates a group in Microsoft Entra ID. | Group.ReadWrite.All (or Directory.ReadWrite.All) |
| Updates a user in Microsoft Entra ID. | User.ReadUpdate.All (or User.ReadWrite.All) |
Triggers
Triggers | Description | Scopes Required |
|---|---|---|
| Triggers when a user is permanently deleted in Microsoft Entra ID. | User.Read.All |
| Triggers when a group is created or updated in Microsoft Entra ID. | Group.Read.All |
| Triggers when a user is created or updated in Microsoft Entra ID. | User.Read.All |
| Polls Microsoft Entra ID with the users delta query and triggers when a user is created, updated or deleted. | User.Read.All |