[Bug 2075389] [NEW] pam-auth-update lacks flexibility needed to support sss + foo-auth-module cleanly
Kodiak Firesmith
2075389 at bugs.launchpad.net
Wed Jul 31 20:55:22 UTC 2024
Public bug reported:
Working with pam-auth-update and custom profiles in /usr/share/pam-
configs I'm discovering a lack of flexibility with regard to ordering
and being able to cleanly stack different auth modules.
This relates to both unix and sss profiles using '[success=end
default=ignore]'.
Say my goal is to add MFA as a subsequent requirement to authenticate
after successfully authenticating to AD via pam_sss.so.
I can't simply have a profile called 'duo' that will come in at a
slightly lower priority and land under pam_sss.so as a subsequent
authentication because it'll get skipped in the stack by pam_sss's
[success=2] jump placed dynamically by [success=end] in the sss
template.
The same applies to pam_unix.so's template, since it also uses
[success=end].
I think that the template process needs to be reworked to be able to
denote that a subsequent module is mandatory and can't be skipped in the
stack, or that it's at least a mandatory follow up to specific prior
modules (eg allow unix to [success=2] over both pam_sss.so and
pam_duo.so to permit.so).
The only way I have to work around this while still doing things the
pam-auth-update way instead of hacking common-auth in place is to
create a conflicting template called 'duo-sss' that conflicts with
'sss', and reimplement it's contents but with a stack skip tweak like
so:
```
Name: DUO authentication with combined SSSD
Default: no
Priority: 192
Conflicts: sss
Auth-Type: Primary
Auth:
[default=ignore] pam_sss.so use_first_pass
[success=end] /usr/lib64/security/pam_duo.so
```
As you can imagine, this can get complicated the more prior modules I
need to override.
Now it very well could be that I'm misunderstanding how to use pam-auth-
update profiles. The PAMConfigFramework Spec is very minimal so I've
pored over that a few times and supplemented what I learned with the
perl content of pam-auth-update itself but I'm also no Perl monk.
Assuming this is a legitimate request and I'm not missing some way to
more cleanly achieve my flexibility goals, here is the required bug
info:
VERSION="20.04.6 LTS (Focal Fossa)"
libpam-runtime:
Installed: 1.3.1-5ubuntu4.7
** Affects: pam (Ubuntu)
Importance: Undecided
Status: New
** Tags: pam pam-auth-update
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to pam in Ubuntu.
https://bugs.launchpad.net/bugs/2075389
Title:
pam-auth-update lacks flexibility needed to support sss + foo-auth-
module cleanly
Status in pam package in Ubuntu:
New
Bug description:
Working with pam-auth-update and custom profiles in /usr/share/pam-
configs I'm discovering a lack of flexibility with regard to ordering
and being able to cleanly stack different auth modules.
This relates to both unix and sss profiles using '[success=end
default=ignore]'.
Say my goal is to add MFA as a subsequent requirement to authenticate
after successfully authenticating to AD via pam_sss.so.
I can't simply have a profile called 'duo' that will come in at a
slightly lower priority and land under pam_sss.so as a subsequent
authentication because it'll get skipped in the stack by pam_sss's
[success=2] jump placed dynamically by [success=end] in the sss
template.
The same applies to pam_unix.so's template, since it also uses
[success=end].
I think that the template process needs to be reworked to be able to
denote that a subsequent module is mandatory and can't be skipped in
the stack, or that it's at least a mandatory follow up to specific
prior modules (eg allow unix to [success=2] over both pam_sss.so and
pam_duo.so to permit.so).
The only way I have to work around this while still doing things the
pam-auth-update way instead of hacking common-auth in place is to
create a conflicting template called 'duo-sss' that conflicts with
'sss', and reimplement it's contents but with a stack skip tweak like
so:
```
Name: DUO authentication with combined SSSD
Default: no
Priority: 192
Conflicts: sss
Auth-Type: Primary
Auth:
[default=ignore] pam_sss.so use_first_pass
[success=end] /usr/lib64/security/pam_duo.so
```
As you can imagine, this can get complicated the more prior modules I
need to override.
Now it very well could be that I'm misunderstanding how to use pam-
auth-update profiles. The PAMConfigFramework Spec is very minimal so
I've pored over that a few times and supplemented what I learned with
the perl content of pam-auth-update itself but I'm also no Perl monk.
Assuming this is a legitimate request and I'm not missing some way to
more cleanly achieve my flexibility goals, here is the required bug
info:
VERSION="20.04.6 LTS (Focal Fossa)"
libpam-runtime:
Installed: 1.3.1-5ubuntu4.7
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pam/+bug/2075389/+subscriptions
More information about the foundations-bugs
mailing list