HomeNewsletterCommunityMVP FeedToolsArchiveBlogToday's NewsAboutServicesQuick Links Subscribe free
← Back to Blog
Windows Hello for Business WHfBCloud Kerberos TrustKey TrustCertificate TrustdsregcmdTroubleshooting

Key Trust vs Certificate Trust vs Cloud Kerberos Trust: Which One Is Your Device Actually Using?

IA
Imran Awan
30 July 2026

Ask ten endpoint engineers which Windows Hello for Business (WHfB) trust model their fleet runs, and most will tell you what was deployed, not what a given device is actually using right now. Those are not always the same thing - a half-finished migration, a leftover Group Policy Object (GPO), or a precedence rule can quietly put a device on a different model than you think. And if you troubleshoot the wrong model, you will chase a certificate problem that does not exist while the real cause - a missing partial ticket-granting ticket (TGT) - sits untouched.

This guide does two things. First, it explains the three trust models in plain terms so you know what each one is doing under the hood. Second - and this is the part nobody writes down - it gives you the exact commands and registry values that prove which model a device is on, instead of guessing.

The problem: three trust models, and you cannot say which one a device runs

Ask ten engineers which Windows Hello for Business (WHfB) trust model their fleet uses and most will tell you what was deployed, not what a given device is actually running right now. A half-finished migration, a leftover Group Policy Object, or a precedence rule can quietly put a device on a different model than you think - and if you troubleshoot the wrong model, you chase a certificate problem that does not exist while the real cause sits untouched.

Why it happens: three models that behave differently

Every WHfB deployment has to turn a passwordless sign-in into a Kerberos ticket your domain controllers (DCs) will accept. The "trust type" is just how it does that. Here is the whole landscape:

Certificate trustKey trustCloud Kerberos trust
On-prem credentialX.509 certificate in the user's storeRaw public key, used via PKINITPartial TGT minted by Microsoft Entra ID
Where the key/cert livesCert:\CurrentUser\My (Passport KSP)msDS-KeyCredentialLink on the AD usermsDS-KeyCredentialLink (still synced) but not used for the ticket
Extra infrastructureAD FS + enterprise CA + registration authorityEnterprise PKI (DC certs for PKINIT)None - just the AzureADKerberos object
DC requirementTrusts the issuing CA chainDC KDC certificate + reads msDS-KeyCredentialLinkWindows Server 2016+ patched; reads AzureADKerberos
Entra Connect key sync neededYesYes (this is what writes the key to AD)No
Best forLegacy / RDP certificate needsCan't deploy Entra KerberosAlmost everyone (Microsoft's recommendation)

The single biggest practical difference: certificate trust and key trust both need a PKI you own and maintain. Cloud Kerberos trust needs none. That is why it is the default recommendation and why the other two are, increasingly, legacy.

How to verify: prove which model a device is on

Now the useful part. There are three signals, and you read them in order.

Signal 1 - Is there a WHfB certificate in the user store?

A certificate answers the question immediately: only certificate trust puts a usable logon certificate in the user's Personal store. But you must not mistake the self-issued Microsoft Entra device-registration certificate for a WHfB one. A genuine WHfB certificate-trust logon cert has three traits together: its private key is in the Microsoft Passport Key Storage Provider, it carries a Smart Card Logon (OID 1.3.6.1.4.1.311.20.2.2) or Client Authentication EKU, and it is issued by your enterprise CA (Issuer is not equal to Subject).

Windows PowerShell (user context)
Get-ChildItem Cert:\CurrentUser\My | Where-Object { $_.Issuer -ne $_.Subject -and ($_.EnhancedKeyUsageList.ObjectId -contains '1.3.6.1.4.1.311.20.2.2') } | Select-Object Subject, Issuer, NotAfter # A row here (issued by your CA) = certificate trust. Nothing = keep checking.

Signal 2 - Which on-prem policy is set?

Policy tells you what the device has been told to do. Two values in the PassportForWork policy tree decide it:

Registry Editor
HKLM\SOFTWARE\Microsoft\Policies\PassportForWork\<TenantId>\Device\Policies
UseCloudTrustForOnPremAuth REG_DWORD 0x00000001 # cloud Kerberos trust
UseCertificateForOnPremAuth REG_DWORD 0x00000000 # cert trust (takes precedence if 1)
Gotcha: Key trust and cloud Kerberos trust can look identical on the client - no certificate, UsePassportForWork = 1, and neither special policy set means key trust; the same picture plus UseCloudTrustForOnPremAuth = 1 means cloud trust. The cloud-trust registry value is the tiebreaker. If it is absent and there is no WHfB cert, you are on key trust.

Signal 3 - The definitive server-side check

The client can be misconfigured; the directory cannot lie. For cloud trust, confirm the AzureADKerberos object exists and its key versions match:

Windows PowerShell (on Entra Connect server)
Get-AzureADKerberosServer -Domain $env:USERDNSDOMAIN -UserPrincipalName $upn -DomainCredential (Get-Credential) ComputerAccount : CN=AzureADKerberos,OU=Domain Controllers,DC=contoso,DC=com KeyVersion : 192272 CloudKeyVersion : 192272 # match = cloud trust is live for this domain

For key trust, confirm the user actually has a key written to Active Directory. If msDS-KeyCredentialLink is empty, key-trust sign-in cannot work - the DC has nothing to validate against:

Windows PowerShell (RSAT / a DC)
Get-ADUser jdoe -Properties msDS-KeyCredentialLink | Select-Object -Expand msDS-KeyCredentialLink B:828:00020000...:CN=jdoe,OU=Users,DC=contoso,DC=com # a key is registered

The fix: choose the right model

If you are planning a new deployment or a migration, the answer is short:

Watch out: If you find devices on a model you did not intend - say, cloud-trust policy set but users still holding certificates - you have a half-finished migration. Do not "fix" it by adding more policy. Identify the model each ring is really on first (that is what the script below is for), then converge them deliberately. Layering policies on top of an inconsistent fleet is how you create lockouts.
Note: All three models still write the user's public key to msDS-KeyCredentialLink via Entra Connect - even cloud Kerberos trust, which does not use it for the ticket. So the presence of a key in that attribute does not by itself prove key trust. Read it together with the policy values, not alone.
Tip: Run the detection script across a representative device from every ring and Autopilot profile before any migration. Ten minutes of "what are we actually on?" saves you from the classic mistake of migrating a fleet that was never uniformly on one model to begin with.

Proof it worked: you can state the model with evidence

You have done this correctly when, for any device, you can name its trust model and back it with a concrete signal: a WHfB certificate in the user store (certificate trust), UseCloudTrustForOnPremAuth = 1 plus a partial TGT (cloud Kerberos trust), or a populated msDS-KeyCredentialLink with neither of those policies (key trust). "I checked" beats "I assume" every time.

References

PowerShell Scripts — WHfB Trust Model Detector

Script for this post is in Daily-Tasks.

Get-WHfBTrustModel.ps1 — read-only: reads the cert store, policy values and dsregcmd state and prints the trust model the device is actually using
View all scripts on GitHub
Share this post
LinkedIn X / Twitter Reddit Bluesky

More from EndpointWeekly

Windows Hello for Business
Windows Hello Signs In Fine but File Shares Prompt: Fixing…
The user signs in with their PIN and cloud apps work, but a file share throws a…
Windows Hello for Business
dsregcmd /status Decoded: The Complete Field Reference for WHfB…
One command answers more WHfB questions than any portal - and its forty-plus fields come…
Windows Hello for Business
Migrating Windows Hello for Business From Certificate Trust to…
There is no in-place migration from certificate trust to cloud Kerberos trust - the…