A JWT signing key is built from a hard-coded string literal (new SymmetricSecurityKey(Encoding.UTF8.GetBytes("..."))).
Why AI tools produce this: AI coding tools generate this anti-pattern by default, it appears in a large share of AI-written auth code.
Why this matters
This key signs and verifies every token: committed to source control it is one search away from compromise, letting an attacker forge tokens for any user or role (CWE-798). This is a common AI-generated mistake: a literal secret is inlined to make the sample "just work" and never externalized.
Load the key from configuration or a secret store instead (e.g. Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"]) or a value read from Azure Key Vault / environment) and rotate the leaked secret out of source control.
Suppressing this rule
If a finding is a genuine false positive, scope the suppression to the exact line and leave a reason, never disable the rule project-wide. Disable directives are line-scoped by design.
// oauthlint-disable-next-line auth.csharp.jwt.hardcoded-symmetric-key -- <reason>