Repository navigation
OpenID Connect login: profile sync and RP-initiated logout in provider-only mode - #909
Merged
Merged
Conversation
KrzysztofPajak
force-pushed
the
feature/oidc-provider-only-web
branch
from
October 14, 2026 10:39
629fc99 to
55ffa9b
Compare
KrzysztofPajak
force-pushed
the
feature/oidc-provider-only-plugin
branch
2 times, most recently
from
October 14, 2026 10:54
ac817cc to
e7d6340
Compare
KrzysztofPajak
force-pushed
the
feature/oidc-provider-only-web
branch
from
October 14, 2026 14:30
f64af00 to
297b569
Compare
KrzysztofPajak
force-pushed
the
feature/oidc-provider-only-plugin
branch
from
October 14, 2026 14:30
e7d6340 to
7d7bd4b
Compare
…ep with the identity provider
…end-session endpoint
…account (names still follow the identity provider)
…ss listed in BreakGlassAccounts
KrzysztofPajak
force-pushed
the
feature/oidc-provider-only-plugin
branch
from
October 14, 2026 16:15
7d7bd4b to
efe1582
Compare
Comment on lines
+133
to
+136
| catch (Exception e) | ||
| { | ||
| _logger.LogWarning(e, "OpenID Connect profile sync failed for customer {CustomerId}", result.Customer.Id); | ||
| } |
Comment on lines
+38
to
+44
| catch (Exception ex) | ||
| { | ||
| //sign-out still finishes locally | ||
| logger.LogWarning("The identity provider metadata could not be read to end the session there ({Exception})", | ||
| ex.GetType().Name); | ||
| return null; | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves no public issue
Type: feature
Issue
In the provider-only sign-in mode the identity provider owns the profile and the session, but the OpenID Connect login plugin kept GrandNode names and e-mail as they were at registration, showed a generic failure for an unverified e-mail, and could not end the provider session on sign-out.
Third of four stacked pull requests (core → web → plugin → guide); based on the web branch.
Solution
ProviderOnly: first and last name fromgiven_name/family_name; the e-mail when the provider verified it and no other account uses it (per-store identity respected; case-only changes ignored); the username follows the e-mail only when usernames are disabled. A break-glass account keeps its e-mail (warning logged). A sync failure never blocks the sign-in.ProviderOnly.OidcSignOutProviderimplementsIExternalSignOutProvider:end_session_endpointfrom the provider metadata withclient_idandpost_logout_redirect_uri; null when the method is unavailable, unconfigured or the metadata cannot be read.Breaking changes
None.
Mixedbehaves exactly as before.Testing
dotnet test src/Tests/Grand.Modules.Tests(profile synchronizer, callback, sign-out provider).SignInMode=ProviderOnly: rename the user at the provider and sign in again — first and last name follow; sign in with a user whose e-mail is not verified — the failure page explains it./) as a post-logout redirect URI at the provider, sign in and sign out — the provider session ends.