Credential lockout: a successful sign-in resets the failure count for every key from that client #844
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
From #833's review.
FailedCredentialLockoutclears the per-client (certificate+IP) count on any successful UserName/API-key activation. A client holding its own valid key can make 4 bad guesses against another key's secret, sign in once with its own key, and repeat indefinitely. Guessing a known keyId's secret is a store hit, so the per-address miss budget does not charge it; the lockout is the only per-client throttle on that path. Likely parity with the SDK lockout it replaced. Fix: clear only failures recorded against the same keyId, or decay rather than delete.Fixed (
ffba75bb,7482a888). Pushed to master ind1b6cad2. Failures count per (client, credential identity) — a success clears only that identity — plus a per-client cap (OpcUa:CredentialLockout:MaxFailedAttemptsPerClient, default 2× = 10) that a success never resets. Key ids/usernames are canonicalised (trim + lower-case) to match the ConfigDb's case-insensitive lookup.