docs(auth): define unified identity federation architecture - #630
docs(auth): define unified identity federation architecture#630XiaoSeS wants to merge 3 commits into
Conversation
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
|
ylhu16 seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
|
Read through the design doc and skimmed the four implementation PRs it anchors (#631, #633, #639, plus #644 which is separate). First: this is an unusually thorough piece of work — surveying Keycloak / authentik / Dex / Authelia / Spring Security, laying out the A/B/C options and landing on the phased hybrid, and naming the concrete gaps (typed subjects, authority pinning to issuer/directory/entityID, cross-issuer impersonation, safe merge) is exactly the right level of rigor for something that touches the auth boundary. I want to be straight about my role here, though: I'm not going to single-approve this group. #631 (trusted external identity attributes), #633 (global membership on approval), and #639 (isolating the unsafe merge flow) are all authentication-boundary changes where a review mistake is a security hole, and the direction itself — a unified federation model marked as superseding the current Direct/Passive extension points — is a product/architecture decision that a maintainer or security owner should sign off on, not a passing reviewer. So treat my notes as input, not a gate. Two things I did want to raise from the read:
Sequencing (phased PR + migration + rollback + |
0dd1657 to
a4f0649
Compare
Signed-off-by: ylhu16 <ylhu16@iflytek.com>
What
big-main, and test-environment gatesWhy
SkillHub has multiple protocol requests (#260, #456, #583) and community implementations (#437, #467), but the current OAuth-centered claims and Direct/Passive SPIs do not provide one enforceable identity safety boundary.
This PR provides the architecture and delivery contract for #628 before protocol-specific implementations define incompatible identity models.
How
The design is based on established patterns from Keycloak, authentik, Dex, Authelia, Backstage, Grafana, Kubernetes, Spring Security, and the relevant OIDC, OAuth, LDAP, CAS, SAML, SCIM, and WebAuthn standards. It intentionally uses a small core with capability-specific adapters instead of a universal provider interface.
Testing
git diff origin/main...HEAD --checkImpact
No API, database, deployment, or runtime behavior changes. Implementation remains split into independently reviewable follow-up issues and PRs.