Azure Files Entra Kerberos Cloud-Only Groups

R Dorman 25 Reputation points
2026-06-21T20:17:00.56+00:00

I am trying to use Entra cloud-only groups in NTFS ACL's using the Azure portal for assignment. I have done the following:

  • Setup a storage account in westcentralus
  • Enabled Entra Kerberos on the Storage Account
  • Admin consent the service principal
  • Updated app reg manifest for storage account with
"tags": [
		"kdc_enable_cloud_group_sids"
	],
  • Added the storage account to the MFA exemption in COnditional Access
  • Updated registry on client for cloud TGT retrieval
  • Confirmed cloud TGT issuance with klist
  • Confirmed access to Azure File share with TGT and session ticket
  • Confirmed individual user permissions assigned in the Azure portal reflect in Windows explorer
  • Confirmed that the unresolved SID shown with permissions matches the SID of the entra group
  • COnfirmed the user in question has less than 200 group memberships

When enumerating the groups on the logon TGT

# Check what groups are actually in the current Windows identity token
[System.Security.Principal.WindowsIdentity]::GetCurrent().Groups | 
    ForEach-Object { $_.Translate([System.Security.Principal.NTAccount]) }

I only get well known groups, no other group SIDs which is why the Azure file share permissions are not allowing the user to access the folder the has been locked down. How can I get the TGT to be populated with the group SIDs of the cloud-only groups so that I can grant Azure Files access?

Microsoft Security | Microsoft Identity Manager

Answer accepted by question author
Jerald Felix 18,760 Reputation points Volunteer Moderator
2026-06-22T01:59:18.8833333+00:00

Hello R Dorman,

Greetings! Thanks for raising this question in the Q&A forum.

You've done an impressive amount of groundwork here TGT confirmed, session ticket working, individual user permissions reflecting correctly so this is not a setup failure. The core issue is a well-known behavior of how the Cloud TGT is issued and when group SIDs get populated into the Windows identity token.

Here's what's happening: When a user signs in to a Windows device, Microsoft Entra ID issues the Cloud TGT for the realm KERBEROS.MICROSOFTONLINE.COM alongside the Primary Refresh Token (PRT). However, it also issues an OnPremTgt (partial TGT) that contains the user's SID but no group claims. This is why your WindowsIdentity.GetCurrent().Groups call only shows well-known groups the logon token at the Windows session level does not contain cloud group SIDs. The cloud group SIDs are only included in the Kerberos service ticket issued at the time the SMB connection is made to the Azure Files endpoint not in the Windows logon identity token.

In other words, checking WindowsIdentity.GetCurrent().Groups will never show Entra cloud group SIDs because that reflects the logon token, not the service ticket. This is expected behavior. Below are the steps to confirm everything is correctly wired up and to ensure the group SIDs do reach Azure Files at access time:

Step 1: Verify the kdc_enable_cloud_group_sids tag took effect correctly

Go to Entra ID > App registrations, find the app for your storage account (named [Storage Account] <storage-account-name>.file.core.windows.net), open the Manifest, and confirm the tags section looks exactly like this:

"tags": [
    "kdc_enable_cloud_group_sids"
]

This tag ensures that Entra will include cloud-only Entra ID groups in the Kerberos ticket, instead of only on-premises groups. After saving, sign out and sign back in on the client to force a fresh PRT and TGT.

Step 2: Force a fresh sign-in and purge old tickets

The TGT is baked in at logon time. After any manifest or configuration change, you must sign out of Windows completely and sign back in. Then clear stale tickets:

klist purge

Sign back in and verify the TGT is freshly issued from the cloud KDC:

klist

You should see a ticket for the realm KERBEROS.MICROSOFTONLINE.COM.

Step 3: Verify cloud group SIDs are in the service ticket, not the logon token

Instead of checking WindowsIdentity.GetCurrent().Groups (which reflects the logon session), request the service ticket for the Azure Files endpoint and inspect it:

klist get cifs/<storage-account-name>.file.core.windows.net

The group SIDs for your Entra cloud-only groups should be embedded in this service ticket. Azure Files evaluates NTFS ACLs against this ticket, not the logon token.

Step 4: Confirm the Entra group type is a Security group (not Microsoft 365 group)

Only Security groups are supported for NTFS ACL enforcement with Entra Kerberos. Microsoft 365 groups and distribution groups are not included in Kerberos tickets. Verify the group type in Entra ID > Groups.

Step 5: Confirm the group is not nested

Azure Files does not expand nested security groups. If your cloud-only group is a member of another group, the NTFS ACL must be set directly on the group the user is a member of.

Step 6: Confirm RBAC is assigned at share level as well

NTFS ACLs alone are not sufficient. The user or their group must also have a share-level RBAC role such as Storage File Data SMB Share Contributor or Reader assigned on the file share. Both layers share-level RBAC and NTFS ACL must be in place.

Step 7: Run the built-in diagnostic tool

Use the Debug-AzStorageAccountAuth cmdlet to run a full health check:

$ResourceGroupName = "<resource-group-name>"
$StorageAccountName = "<storage-account-name>"

Debug-AzStorageAccountAuth `
    -StorageAccountName $StorageAccountName `
    -ResourceGroupName $ResourceGroupName `
    -Verbose

This checks admin consent, SPN registration, RBAC assignments, registry keys, and more in one pass.

Step 8: Check Entra sign-in logs for group SID errors

In Entra sign-in logs, a SID overflow appears as error 140011 – KerberosUsersGroupNumberExceeded. Even though you mentioned the user has fewer than 200 groups, it's worth confirming this error is not present in the logs under Entra ID > Monitoring > Sign-in logs, filtered by the user in question.

To summarize: the WindowsIdentity.GetCurrent().Groups output is the expected and correct behavior — it reflects the logon token, which does not carry cloud group SIDs by design. The cloud group SIDs travel in the service ticket issued when the SMB connection is established. As long as the kdc_enable_cloud_group_sids tag is in place, admin consent is granted, the group is a non-nested security group, and share-level RBAC is assigned, the access should work.

If this answer helps you kindly accept the answer which will help others who have similar questions.

Best Regards,

Jerald Felix.

Was this answer helpful?

1 person found this answer helpful.

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.