feat(auth): add OIDC password-login disabler when OIDC is active (#10889)

Validado no worktree combinado: typecheck:core, changelog-integrity, complexity, cognitive-complexity, file-size, lint e testes focados (auth-login-route, login-bootstrap-route, feature-flags-settings — corrigi EXPECTED_FEATURE_FLAG_COUNT 51→52 fix-in-place, novo flag adicionado sem atualizar a própria contagem) todos verdes. CI vermelho é o base-red já rastreado em #9985. Obrigado!
This commit is contained in:
Reza Rezaei
2026-08-21 09:18:55 +02:00
committed by GitHub
parent 4fa204de68
commit e4a24173af
10 changed files with 208 additions and 91 deletions

View File

@@ -109,9 +109,9 @@ export const FEATURE_FLAG_DEFINITIONS: FeatureFlagDefinition[] = [
key: "AUTH_LOG_INCLUDE_ACCOUNT_ID",
label: "Log Account IDs",
description:
"Include the account ID prefix in AUTH log lines (e.g. \"Using <provider> account: abc12345...\"). " +
"Disabled by default so the account identifier is redacted in shared/multi-tenant process logs. " +
"Independent of Debug Mode flipping Debug Mode on does not reveal this.",
'Include account prefix in AUTH log lines (e.g. "Using <provider> account: abc12345..."). ' +
"Disabled by default so account identifiers are redacted from shared/multi-tenant process logs. " +
"Independent from Debug Mode; flipping Debug Mode does not reveal this.",
descriptionI18nKey: "featureFlagAuthLogIncludeAccountIdDescription",
category: "security",
defaultValue: "false",
@@ -119,6 +119,18 @@ export const FEATURE_FLAG_DEFINITIONS: FeatureFlagDefinition[] = [
requiresRestart: false,
warningLevel: "info",
},
{
key: "OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN",
label: "Disable Password Login With OIDC",
description:
"When OIDC is enabled, disable password login so users can only authenticate via OIDC Single Sign-On. When disabled (default), both password login and OIDC are available.",
descriptionI18nKey: "featureFlagOidcDisablePasswordLoginDescription",
category: "security",
defaultValue: "false",
type: "boolean",
requiresRestart: false,
warningLevel: "info",
},
// ──────────────── Network (7) ────────────────
{
key: "ENABLE_TLS_FINGERPRINT",

View File

@@ -108,6 +108,7 @@ export const updateSettingsSchema = z.object({
language: z.string().max(10).optional(),
requireLogin: z.boolean().optional(),
oidcEnabled: z.boolean().optional(),
oidcDisablePasswordLogin: z.boolean().optional(),
oidcIssuer: z.string().max(500).optional(),
oidcClientId: z.string().max(200).optional(),
oidcClientSecret: z.string().max(500).optional(),