Workstation login: SSSD against the Authentik LDAP outpost #3

Open
opened 2026-11-02 09:27:57 +01:00 by nivo · 0 comments
Owner

Part of the plan AvesIT/platform-architecture#59 (steps 4 to 6). Personal machines only, so the client config lives here (decided 2026-11-02).

This repo is public: nothing secret and no internal detail that the public/private split keeps out goes here. The bind DN and password come from the vault at apply time.

  • Packages: check rpm -q sssd sssd-ldap authselect oddjob-mkhomedir fprintd-pam on the host; layer the missing ones with rpm-ostree install from a run_onchange script (reboot needed), or confirm Bluefin already ships them.
  • /etc/sssd/sssd.conf as a template, mode 0600 root: id_provider/auth_provider = ldap, access_provider = permit (the group rule is the Authentik application policy), ldaps:// URI, ldap_schema = rfc2307bis, cache_credentials = true, offline_credentials_expiration = 0 (or a limit), override_homedir, default_shell = /bin/bash, enumerate = false. The LDAP host and base DN come from the private config.
  • Bind password delivery: read the SSSD service account password from the vault (bw today, rbw per the migration plan) when the script runs and write it root-only into sssd.conf. Never into git, never into the chezmoi source state.
  • Apply with authselect select sssd with-mkhomedir with-fingerprint, enable sssd and oddjobd. authselect owns /etc/pam.d, so no hand edits.
  • /home is /var/home on Atomic: check the homedir path, SELinux labels and override_homedir.
  • Make the script idempotent and safe to re-run; it must not touch PAM before sssd is up and tested.
  • Break-glass: keep the local nivo account with a local password; document authselect select minimal as the way back.
  • Test in a VM first (plan step 5), then on one real machine.

Depends on the infra-idp LDAP root (AvesIT/infra-idp#118) and the outpost issue in AvesIT/platform (text in a comment on AvesIT/platform-architecture#59).

Part of the plan https://code.aves-it.eu/AvesIT/platform-architecture/issues/59 (steps 4 to 6). Personal machines only, so the client config lives here (decided 2026-11-02). This repo is **public**: nothing secret and no internal detail that the public/private split keeps out goes here. The bind DN and password come from the vault at apply time. - [ ] Packages: check `rpm -q sssd sssd-ldap authselect oddjob-mkhomedir fprintd-pam` on the host; layer the missing ones with `rpm-ostree install` from a `run_onchange` script (reboot needed), or confirm Bluefin already ships them. - [ ] `/etc/sssd/sssd.conf` as a template, mode 0600 root: `id_provider`/`auth_provider = ldap`, `access_provider = permit` (the group rule is the Authentik application policy), `ldaps://` URI, `ldap_schema = rfc2307bis`, `cache_credentials = true`, `offline_credentials_expiration = 0` (or a limit), `override_homedir`, `default_shell = /bin/bash`, `enumerate = false`. The LDAP host and base DN come from the private config. - [ ] Bind password delivery: read the SSSD service account password from the vault (`bw` today, `rbw` per the migration plan) when the script runs and write it root-only into `sssd.conf`. Never into git, never into the chezmoi source state. - [ ] Apply with `authselect select sssd with-mkhomedir with-fingerprint`, enable `sssd` and `oddjobd`. authselect owns `/etc/pam.d`, so no hand edits. - [ ] `/home` is `/var/home` on Atomic: check the homedir path, SELinux labels and `override_homedir`. - [ ] Make the script idempotent and safe to re-run; it must not touch PAM before `sssd` is up and tested. - [ ] Break-glass: keep the local `nivo` account with a local password; document `authselect select minimal` as the way back. - [ ] Test in a VM first (plan step 5), then on one real machine. Depends on the infra-idp LDAP root (https://code.aves-it.eu/AvesIT/infra-idp/issues/118) and the outpost issue in AvesIT/platform (text in a comment on https://code.aves-it.eu/AvesIT/platform-architecture/issues/59).
Sign in to join this conversation.
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nivo/dotfiles#3
No description provided.