Hi,
FYI for anyone using FreeIPA with FIDO2/passkey authentication on RHEL/Rocky 10.2.
I realise this is probably outside the scope of what FreeIPA itself supports on the client side, but since many FreeIPA MFA/passkey deployments will be using SSSD and the IPA SELinux policy, this seemed like a useful place to flag it.
After upgrading the FreeIPA client packages from 4.13.1 to 4.13.4, FIDO2/passkey login stopped working.
The failure produces an SELinux denial:
avc: denied { execute } for comm="sssd_pam"
name="passkey_child"
scontext=system_u:system_r:sssd_t:s0
tcontext=system_u:object_r:sssd_mfa_exec_t:s0
tclass=file
The apparent change is in:
ipa-selinux-4.13.4-1.el10_2
With the previous working version:
ipa-selinux-4.13.1-3.el10_2.2
`/usr/libexec/sssd/passkey_child` is labelled:
system_u:object_r:ipa_otpd_exec_t:s0
With 4.13.4 it is instead labelled:
system_u:object_r:sssd_mfa_exec_t:s0
The new policy defines `sssd_mfa_t`, but on these clients there is no usable transition from `sssd_t` to `sssd_mfa_t`, so `sssd_pam` is denied when attempting to execute `passkey_child`.
Downgrading only `ipa-selinux` restores passkey login:
sudo dnf downgrade ipa-selinux-4.13.1-3.el10_2.2
Tested with:
sssd-2.12.0-3.el10_2.1
sssd-passkey-2.12.0-3.el10_2.1
selinux-policy-42.1.18-4.el10_2.3
selinux-policy-targeted-42.1.18-4.el10_2.3
So this looks like a policy mismatch introduced by the newer `ipa-selinux` package rather than an IPA enrolment problem.
Posting mainly as a heads-up in case anyone else sees FIDO2/passkey authentication suddenly stop working after updating the FreeIPA client packages.
Regards,
Ian