pam: Set PAM_AUTHTOK on successful authentication#1190
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1190 +/- ##
==========================================
+ Coverage 87.53% 87.64% +0.11%
==========================================
Files 91 91
Lines 6231 6231
Branches 111 111
==========================================
+ Hits 5454 5461 +7
+ Misses 717 714 -3
+ Partials 60 56 -4 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
This would be fine per the current broker, but we have the problem that we don't handle the change password phase well (as per #944 (comment)). And so, without it we may just end up having the token just set once and then be broken by a password change. Then, the problem, daemon side, is that we do not have the information to know whether the broker supports secrets or not to be sure if we should set this all the times. So the token that we are setting may be:
Thus again, this is something that IMHO we should not do without the broker providing us the AuthTok to set. My idea to have something more generic was:
PRO: Independent from authentication mode being used For the current situation, we could workaround the problem by keeping a similar structure, but sending back the very same secret that has been used by the user to authenticate. In this way we still leave the control to the broker, but also we should be able to use the information only if it's possible. However, in general I'd personally prefer to handle it all together (I mean, also once the passwd case is fixed), rather than having half-baked solutions, since this is the reason why we did not do this in the beginning. |
I read that comment before opening the PR but I don't understand the issue. We only support changing the password after a successful device authentication, in which case the same code path is taken and we set |
I need to check again the keyring pam code, but that was expected I think when using |
I also tried |
|
Also if the one authenticating to use |
I'll try that. |
It's always asking for the password of the user actually: #851 |
Yes, the keyring is also unlocked when I change the password via |
|
With #1234 we will have the case that there is no local password. I think authd could instead generate a secret the first time the user authenticates and set That is similar to your suggestion @3v1n0, but I think it makes more sense to let authd generate that secret than the broker, because there's nothing broker-specific about that secret. WDYT? |
22bc3d5 to
2f5d0e1
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1190 +/- ##
==========================================
+ Coverage 80.57% 87.56% +6.99%
==========================================
Files 20 91 +71
Lines 978 6232 +5254
Branches 0 111 +111
==========================================
+ Hits 788 5457 +4669
- Misses 190 719 +529
- Partials 0 56 +56 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
2f5d0e1 to
2dac51d
Compare
By setting PAM_AUTHTOK the GNOME keyring is unlocked. UDENG-8799
|
@3v1n0 discussed this today. A reason to let the broker decide which secret to use is that it allows using the local password if there is one, which allows the user to unlock the keyring themself with that password in case that the keyring is locked during a session. That won't be possible without UI changes if we use an authd-generated secret instead. However, locking and unlocking the screen could be a workaround to also unlock the keyring in that case. An issue if we do use the local password as the keyring secret is that it won't be updated if the |
2dac51d to
cfab192
Compare
|
braindumping an idea:
|
By setting
PAM_AUTHTOKthe GNOME keyring is unlocked.UDENG-8799