A tool for managing user identities, credentials, and access across on-premises and cloud environments
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.