Product / Version
-
Umbraco CMS: 17.0.2
-
Umbraco Cloud packages: latest 17.x
-
Auth: Umbraco ID (Cloud)
-
Local URL:
https://localhost:44381
Expected
- After successful Umbraco ID login, user is signed into backoffice normally.
Actual
-
Umbraco ID login succeeds, returns to localhost, but backoffice then redirects to
/umbraco/login(local login screen). -
Happens consistently in a new InPrivate session.
Repro steps
-
Run project locally (Cloud project).
-
Open
https://localhost:12345/umbracoin an InPrivate window. -
Choose “Login with Umbraco ID”, complete auth.
-
Returned to localhost but redirected back to
/umbraco/login(not logged in). -
In DB, delete the external login row for the user
-
Retry login in the same InPrivate window → login succeeds.
-
Close window, open a new InPrivate window and repeat step 2–4 → fails again unless the row is deleted again.
Database state
-
umbracoUserexists for the email,userDisabled = 0, inadmingroup. -
umbracoExternalLoginrow created after successful login:-
loginProvider = Umbraco.UmbracoId -
providerKey = as expected - matches the value in JWT token -
userOrMemberKey = matches the correct user from the UmbracoUser table -
Row is recreated with identical values after each login (only
createDatechanges).
-
-
JWT from
/umbidlocallogin?ub=...:-
submatchesproviderKey -
iss=https://identity.umbraco.com/<tenant-guid>/v2.0/
-
Notes
-
Not a cookie persistence issue: reproduces without restarting the app and with fresh InPrivate sessions.
-
umbracoExternalLoginTokentable exists but stays empty. -
UmbracoIdTokenCachecontains token/expiry.
Additional Background
- Project was upgraded to v17 from v14 and everything has worked on v14 for a long period prior to the upgrade.