Change source of authority (SOA) for Groups (Preview)

Change source of authority (SOA) for Groups (Preview)

Hi All,

Recently i published an Article about the Preview of the Change of authority for the Exchange Attributes Change source of authority (SOA) for Exchange Attributes (Preview)

In this Article i will show you the Preview for changing the source of authority (SOA) for Groups.

In an Enterprise Evironement, typically Users and Groups are Synced with Entra Connect or Cloud Sync to Entra ID.

Now you are able to convert syched Active Directory Groups to Cloud Security Groups. And with Cloud Sync back to Active Directory.

Prerequisits

  • Entra Connect Sync build version 2.5.76.0 or later
  • Entra Cloud Sync client build version 1.1.1370.0 or later

Limitations

No reconciliation support for AD DS groups: An AD DS admin (or an application with sufficient permissions) can directly modify an AD DS group. If Group SOA is converted for the group, or if cloud security group provisioning to AD DS is enabled, those local AD changes aren’t reflected in Microsoft Entra ID. When a change to the cloud security group is made, any local AD DS changes are overwritten when group provisioning to AD DS runs.

No dual write allowed: After you start to manage the memberships for the converted group (say cloud group A) from Microsoft Entra ID, and you provision this group to AD as a nested group under another AD DS group (OnPremGroupB) that’s in scope for sync to Microsoft Entra ID, the membership references of group A aren’t synced when sync happens for OnPremGroupB. The membership references aren’t synced because the sync client doesn’t know the cloud group membership references. This behavior is by design.

No SOA conversion of nested groups: If there are nested groups in AD DS, and you want to convert the SOA of the parent group or top group to Microsoft Entra ID, only the parent group SOA is converted. Nested groups in the parent group continue to be AD DS groups. You need to convert the SOA of any nested groups one-by-one. We recommend you start with the group that is lowest in the hierarchy, and move up the tree.

No support for extension attributes (1-15): Extension attributes 1–15 aren’t supported on cloud security groups and aren’t supported after SOA is converted.

Cloud Sync

Let’s set up Cloud Sync to sync the Groups from Entra ID back to Active Directory.

In Entra Admin Center go to Entra ID > Entra Connect > Cloud Sync

In the Configurations click on “+ New configuration”

Select “Microsoft Entra ID to AD Sync”

Click on the Link for the Agents

Now you can download the Agent

Accept Terms and download

Cloud Sync Client

I have a very small Test Environment. So i will install the Cloud Sync Client on the Domain Controller where also Entra Connect Sync is installed.

Installing

I am logged in as Domain Administrator but still did get this Message. Several Retrys did not work.

I’ve ended up with a failure

Finally i found the following Article: Microsoft Entra Hybrid Sync Agent Installation Issues - No privileges to install MSI

I’ve changed the Group Policy. Windows Settings > Security Settings > Local Policies > User Rights Assignment > Log on as a service > “NT SERVICE\ALL SERVICES”

Ran a Group Policy Update

gpupdate /force

and then checked the Group Policy to see if the Setting was applied

secpol.msc

Now i was able to install the Cloud Sync Client

Cloud Sync Client Configuration

Immediately after the Installation succeedet. The Configuration Wizard of Cloud Sync Client startet.

I’ve selected “HR-driven provisioning”

Now you need to Authenticate probably as Global Admin or Hybrid Identity Admin

Let’s create a gMSA Account. Had to provide Domain Administrator Credentials to create a gMSA Account

Directory was already populated - so nothing to do here

Summary dialog

Now everything will be configured

Agent will be restarted

Configuration is completed

The gMSA Account can be found under “Managed Service Accounts” OU in your Active Directory Domain

Finish Configuration in Entra ID

To finish the Configuration, we need to go back to Entra ID

We can now find an active Agent

In the dropdown we can find our Active Directory Domain

Now we need to add the Scoping Filters - it’s the only one that is required

Scoping Filter

I select “Selected security Groups”

Select one of the from Active Directory synced Groups

Changed the DN of the OU where the Object should be created

That’s how it looks now

Change Group SOA with Graph Explorer

Browse to Graph Explorer and sign in on the top left

GET https://graph.microsoft.com/Beta/groups/7d92732f-c782-4496-9fac-30d08c164b25/onPremisesSyncBehaviour?$select=isCloudManaged,isExchangeCloudManaged

PATCH https://graph.microsoft.com/Beta/groups/7d92732f-c782-4496-9fac-30d08c164b25/onPremisesSyncBehaviour?$select=isCloudManaged,isExchangeCloudManaged

Request Body:
{
    "isCloudManaged": true
}

If you check the “Modify Permissions” Tab you see that you will need the “Group-OnPremisesSyncBehavior.ReadWrite.All” Permission for that

Change Group SOA with PowerShell

Connect-MgGraph -Scopes Group-OnPremisesSyncBehavior.ReadWrite.All -NoWelcome

You get the Permission Dialog if you never used that Scope before

Get the Group to get the ID of the Entra Group

Get-MgGroup -Filter "startswith(displayName,'G-OnPrem')"

Get the Status of “isCloudManagement”

#GET
$Uri = "https://graph.microsoft.com/beta/groups/7d92732f-c782-4496-9fac-30d08c164b25/onPremisesSyncBehavior?`$select=isCloudManaged,isExchangeCloudManaged"
Invoke-MgGraphRequest -Method "GET" $Uri

Change the Status of “isCloudManagement”

#PATCH
$Body = @"
{
    "isCloudManaged": false
}
"@
$Uri = "https://graph.microsoft.com/beta/groups/7d92732f-c782-4496-9fac-30d08c164b25/onPremisesSyncBehavior"
Invoke-MgGraphRequest -Method "PATCH" $Uri -Body $Body

Get the Status of “isCloudManagement”

#GET
$Uri = "https://graph.microsoft.com/beta/groups/7d92732f-c782-4496-9fac-30d08c164b25/onPremisesSyncBehavior?`$select=isCloudManaged,isExchangeCloudManaged"
Invoke-MgGraphRequest -Method "GET" $Uri

How can you identify in Entra Admin Center

In the Entra Admin Center you can see the Source (of Authority) in the List for groups

If you change the “IsCloudManaged” Attribute

The Source changes to Cloud

Now you are able to Change the “Group Name” witch changes the “Display Name” in the background.

Let’s do that from Scratch

I have a Domain Local Group called “G-OnPremDemo01” with two Members

In Entra Admin Center the Group has the Source “Windows Server AD”

Now let’s change the Group to “IsCloudManaged = True”

$Group = Get-MgGroup -Filter "startswith(displayName,'G-OnPremDemo')"
$GroupID = $Group.Id
$GroupID

#GET
$Uri = "https://graph.microsoft.com/beta/groups/$GroupID/onPremisesSyncBehavior?`$select=isCloudManaged,isExchangeCloudManaged"
Invoke-MgGraphRequest -Method "GET" $Uri


#PATCH
$Body = @"
{
    "isCloudManaged": true
}
"@
$Uri = "https://graph.microsoft.com/beta/groups/$GroupID/onPremisesSyncBehavior"
Invoke-MgGraphRequest -Method "PATCH" $Uri -Body $Body

In Entra Admin Center the Group has now the Source “Cloud”

Entra Connect Sync

On the Entra ID Connect Server let’s start a Delta Sync

Start-ADSyncSyncCycle -PolicyType Delta

On the “Delta Import” the “blockOInPremisesSync” fo the Group is set to “true”

On the “Delta Sync” the “blockOInPremisesSync” fo the Group is set to “true”

I can now edit the Group Name / Display Name

Cloud Sync

In Entra Admin Center under Cloud Sync we change the Groups Scope to the Group “G-OnPremDemo01 Cloud”

Save the Configuration

Let’s run a “Provisioning on demand” with the Group “G-OnPremDemo01 Cloud”

That results in an Error. The Group Type is not valid

Let’s change the Group Scope in Active Directory to “Universal”

Run the “Provisioning on demand” with the Group “G-OnPremDemo01 Cloud” - this time with sucess.

The red “Message Box” on top right is a bit irritating. As the Output below is “{}” this means - no error happend. At least that’s what i think 😊

This is the Result on Prem. The Display Name from Entra ID has sucessfully synced back to Active Directory.

Summary

I think this Article gives a good overview on how this Preview Feature actually works. The Limitation of nested Groups and only supporting the Group Scope Universal for Groups Writeback is a bit far from Reality. If you used Groups with AGDLP Principle, you didn’t use the Universal Group Scope. Anyway it’s an interesting Approach and we will see how it develops.

Regards
Andres Bohren

EntraID Logo

PowerShell Logo