Skip to content

Docs: browser sign-in with OpenID Connect (7/7) - #897

Merged
KrzysztofPajak merged 155 commits into
developfrom
feature/oidc-login-guide-e2e
Oct 11, 2026
Merged

KrzysztofPajak merged 155 commits into
developfrom
feature/oidc-login-guide-e2e

Conversation

@KrzysztofPajak

Copy link
Copy Markdown
Member

Type: feature

Issue

Shop owners need the setup steps and the account rules of browser sign-in. Part 7 (the last) of the stack (base: PR 6).

Solution

Section 11 of docs/oidc-resource-server.md: what visitors see, the account rules (linking, registration, a note on admin approval, two-factor customers), configuration (OidcLogin), client setup in Keycloak and Zitadel, security notes (provider MFA for staff, local logout) and troubleshooting.

Breaking changes

None (documentation).

Testing

  1. Follow 11.3-11.5 with the test environment from section 10 and run the scenarios listed in PR 6.

… conditions, scheme always registered

The derived audience and resource_metadata URL come from the store resolved for the request, never from the Host header. Resources with account conditions are refused until those checks exist. With the resource server disabled the Oidc scheme is still registered with no issuer and no keys, so endpoints naming it answer 401. authorization_servers publishes the Authority as configured, an http Authority requires RequireHttpsMetadata=false, garbage tokens log at Information, and the startup skips an uninstalled database.
…e request through a request customer resolver
…back-office accounts; one identity per customer
…, staff and unverified e-mails link by password
…8 and Zitadel v4.19

Web API module flag, provider switch and identity links, Keycloak resource indicators accepted with the
Audience mapper, Zitadel role assertion for user_grants, client_id instead of azp, project-wide aud, and the
target reading user.human.is_email_verified.
…tomer resolution, Deny defaults for the Web API
…s-e2e

# Conflicts:
#	src/Business/Grand.Business.Core/Interfaces/Authentication/IJwtBearerAuthenticationService.cs
#	src/Business/Grand.Business.Core/Interfaces/Customers/IUserApiService.cs
#	src/Core/Grand.Domain/Customers/UserApi.cs
#	src/Web/Grand.Web/App_Data/appsettings.json
…e-e2e

# Conflicts:
#	docs/oidc-resource-server.md
…e store's second factor after the provider sign-in, tell an identity linked to another account apart
…e two-factor still asked for; failure page reasons
…ecting fails

An identity whose e-mail the provider did not verify registers with a typed
password and is not connected; it connects later with that password, like an
existing account. Otherwise whoever holds that identity would keep the account
once the owner of the address activates it, even after a password reset.
A failed connection after registration now tells the customer. The random
password of a connected account is 32 random bytes.
…code), never replace another signed-in account, clear a stale pending identity on failure, always ask for openid, hide the button without a scheme
…wo-factor), another signed-in account is never replaced, the button is hidden without a scheme
Base automatically changed from feature/oidc-login-plugin to develop October 11, 2026 17:12
Copilot AI balanced review requested due to automatic review settings October 11, 2026 17:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@KrzysztofPajak
KrzysztofPajak merged commit cabad5d into develop Oct 11, 2026
4 of 5 checks passed
@KrzysztofPajak
KrzysztofPajak deleted the feature/oidc-login-guide-e2e branch October 11, 2026 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants