Microsoft Entra ID Group Name Sync
By default, group memberships arrive from Entra ID as GUIDs — long strings of characters that mean nothing to whoever is assigning permissions in AI CTRL. This guide configures Entra to send readable group names instead.
It's for the team that manages your Entra tenant, and it assumes single sign-on is already working. If you haven't set that up yet, start with Microsoft Entra ID Configuration for SSO.
One setting decides whether this works. The
cloud_displaynameproperty only functions whengroupMembershipClaimsis set to exactlyApplicationGroup. Any other value — includingSecurityGrouporAll— breaks the configuration and reverts group names to GUIDs.
Before you start: how group sync behaves
Two behaviors surprise people. Both are worth knowing before you turn this on.
Entra ID is the absolute source of truth, on every login. When OAuth group management is enabled, a user's AI CTRL group memberships are synchronized with their OAuth claims each time they sign in. They're added to groups matching their claims — and removed from any group not present in those claims, including groups assigned manually inside AI CTRL. Manual group assignments won't survive the user's next login.
Administrators bypass group sync entirely. Accounts designated as administrators in AI CTRL don't have their group memberships updated by Entra claims at all. Any group assignment or removal for an admin account has to be done manually in the AI CTRL interface.
Step 1 · Add the groups claim
This creates the claim structure. The next step narrows what it contains.
- Go to the Microsoft Entra admin center → App registrations
- Select your AI CTRL application
- Open Token configuration, then click Add groups claim
- Select Security groups
- Under Customize token properties by type, enable groups for both ID and Access tokens
- Click Add
You'll change this scope in Step 2. Selecting Security groups here sets
groupMembershipClaimstoSecurityGroup, which is not the value this configuration needs. The manifest edit in Step 2 overrides it. Don't stop after this step.
If your groups sync from on-premises Active Directory
Security groups synced from an on-premises AD won't work with cloud_displayname — those groups still come through as GUIDs. Use the on-premises name attribute instead:
- Go to App registration → Token configuration
- Edit the existing groups claim
- Under the ID token section, change the group identifier format to sAMAccountName
- Click Save
Step 2 · Edit the application manifest
Two changes here. Both are required.
Go to Manifest within the App registration.
First, find the optionalClaims section and add cloud_displayname to the additionalProperties array for both token types:
"optionalClaims": {
"idToken": [
{
"name": "groups",
"source": null,
"essential": false,
"additionalProperties": ["cloud_displayname"]
}
],
"accessToken": [
{
"name": "groups",
"source": null,
"essential": false,
"additionalProperties": ["cloud_displayname"]
}
]
}
Second, find groupMembershipClaims and set it to exactly:
"groupMembershipClaims": "ApplicationGroup"
Click Save.
Step 3 · Assign groups to the enterprise application
Because the manifest now uses ApplicationGroup, only groups explicitly assigned to the application appear in tokens. Groups a user belongs to but which aren't assigned here won't sync.
- Go to Microsoft Entra admin center → Enterprise applications
- Select your AI CTRL application
- Go to Users and groups → Add user/group
- Select the security groups you want synchronized
- Click Assign
Step 4 · Confirm API permissions
- In the App registration, go to API permissions → Add a permission
- Select Microsoft Graph → Delegated permissions
- From the OpenID section, add
openid,email, andprofile - Click Grant admin consent
Step 5 · Tell Expedient
Expedient applies the backend configuration that enables group sync. Nothing happens until that's done.
| Your situation | What to send |
|---|---|
| Setting up SSO for the first time | Application (client) ID, Directory (tenant) ID, and Client Secret value — in your original delivery ticket |
| Enabling group sync on existing SSO | An update to your existing support ticket confirming the Entra changes are complete. Say whether you're using Hybrid AD. |
Testing
Once Expedient confirms the backend configuration is in place:
- Sign in with a standard user account. Don't test with an admin account — admin logic bypasses group sync entirely, so an admin login proves nothing.
- Check the Admin Panel and confirm readable group names appear.
- Assign permissions to those groups under the Admin Panel's Users tab.
If group names still show as GUIDs
- Check
groupMembershipClaimsis exactlyApplicationGroup— notSecurityGroup, notAll. This is the most common cause. - Check the groups are assigned to the enterprise application in Step 3. Unassigned groups don't appear at all.
- Check whether the groups come from on-premises AD. If so, switch the ID token's group identifier format to sAMAccountName.
- Check you're not testing as an admin.