Linux auth: remaining work before an initial release #1
Loading…
Reference in a new issue
No description provided.
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?
Tracking issue for the remaining work on the Linux-authentication feature. The bulk of the engineering is done and verified; what's left is mostly packaging, integration hygiene, and a couple of deliberate scoping decisions before an initial (Guix) release.
All of the work below lives on the
feature/linuxbranch (~55 commits ahead ofmaster).Done (for context)
forseti-unixclient (daemon + thin NSS + authorized-keys),pam_mkhomedir, Guix package/service..so, bounded daemon socket, uniqueuser_code, exact-audid_token pin).getspnamclassifier). Proven in the marionette VM.HMAC(host_pepper, Argon2id(passphrase)), force_mfa hosts refuse offline. Verified: 344 unit + 3/3 live offline integration tests + 14/14 marionette VM assertions (genuine offline login with the server unreachable).docs/dev/flows.md,docs/operator-guide.md,CHANGELOG.md).Release blockers
px/packages/authentication.scm(installspam_forseti.so) andpx/packages/rust-crates.scm(missing the M3a crypto crates:argon2,hmac,sha2,subtle,async-trait+ transitives) are uncommitted. The Guix package — the intended initial-release vehicle — does not build without them.feature/linux→master(~55 commits), ideally with a final review pass on the merged diff. A release ships frommaster/a tag.Gaps to close before shipping an auth feature
forseti-unixworkspace to CI. CI currently runsmake check(main crate) + the posix server integration job, but the host-side workspace (daemon/pam/nss) is never built or tested in CI, so host-side regressions would ship silently. Add a job:cargo check+cargo clippy -D warnings+cargo testforforseti-unix(the marionette KVM test can stay out of CI for now).ssh in, following only the docs. The VM proves components; this proves the docs/UX. Plus one manual smoke test of realssh user@hostdevice-auth over keyboard-interactive (the in-VM assertion hits a known harness limitation, so this path is currently proven only by component).v1 scoping decisions
offline_auth_enabled = true; flipping to false is a one-line change. It's new, and the no-TPM guarantee is reduced — better to let operators opt in knowingly until M3b lands.Roadmap (post-v1)
TODO_LINUX_M3b.md): usekanidm-hsm-crypto, sealed loadable key blob (no PCR sealing),off/auto/requiredtri-state, prove the TPM path with a host-levelswtpmintegration test (Guix has no vTPM-marionette precedent). The 3-expert plan-challenge round is still pending.initgroups_dynin NSS,private_key_jwtfor the PAM client, roadmap M4 (systemd packaging).Notes
Progress - v0.1.8 released (2026-06-24)
Both release blockers are closed and the feature shipped as a preview.
feature/linuxsquash-merged tomaster(c72602c) and released as v0.1.8 - https://github.com/franzos/forseti/releases/tag/v0.1.8 (46912ef, tagv0.1.8).forseti-unixbuilds from the GitHubv0.1.8source - panther commitd224400(signed).rust-crates.scmneeded no changes; the M3a crypto crates were already vendored. Push the panther channel if not already pushed.