Skip to content

fix(auth): enforce trusted external identity attributes before provisioning #629

Description

@XiaoSeS

Parent

#628

What to build

Harden the existing OAuth/OIDC login path so access and profile updates use only provider attributes with sufficient assurance, and so non-interactive or non-active platform accounts are rejected before external profile data is written.

Acceptance criteria

  • An unverified email cannot satisfy EMAIL_DOMAIN access policy.
  • An unverified email is not persisted for a new account and does not overwrite an existing trusted email.
  • GitHub email assurance comes from the authenticated emails endpoint; a profile fallback remains unverified.
  • Existing PENDING, DISABLED, and MERGED bindings fail with stable login outcomes.
  • System accounts cannot obtain an interactive OAuth session.
  • Account-state rejection happens before profile updates or role loading.
  • GitHub, GitLab, OIDC, access-policy, binding, and login-handler regression tests pass on Java 21.
  • The change is integrated into big-main and validated before any merge to main.

Blocked by

None - can start immediately.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingeffort/l大改动或高风险改动,需要 maintainer 负责 / Large or risky change requiring maintainer ownership.priority/p1高优先级 / High priority triage bucket.risk/high涉及安全、鉴权、迁移或公共契约 / Touches security, auth, migrations, or public contracts.triage/needs-info需要补充更多信息后才能分流 / Issue needs more detail before it can be routed.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions