Implement the Redfish PasswordChangeRequired property

Joseph Reynolds jrey at linux.ibm.com
Tue Feb 18 08:09:26 AEDT 2020


This proposes implementing the Redfish [PasswordChangeRequired 
property][] and an underlying D-Bus PasswordExpired property.

These would be incremental changes to [OpenBMC user management][] and 
affect:
  - [phosphor-user-manager][]
  - [openbmc_project User D-Bus interfaces][]
  - [BMCWeb Redfish ManagerAccount REST APIs][]

[PasswordChangeRequired property]: 
https://www.dmtf.org/sites/default/files/standards/documents/DSP0266_1.9.0.pdf
[OpenBMC user management]: 
https://github.com/openbmc/docs/blob/master/architecture/user_management.md
[phosphor-user-manager]: https://github.com/openbmc/phosphor-user-manager
[openbmc_project User D-Bus interfaces]: 
https://github.com/openbmc/phosphor-dbus-interfaces/tree/master/xyz/openbmc_project/User
[BMCWeb Redfish ManagerAccount REST APIs]: 
https://github.com/openbmc/bmcweb/blob/master/redfish-core/lib/account_service.hpp

When this is merged, the PasswordChangeRequired property could be used 
as follows:
- The BMC admin can determine (via REST APIs) which local accounts have 
expired passwords.
- We can implement the [expired-password design][], which requires this 
property per the [expired-password code review][].
- We can add this field to the webui user-management page.

[expired-password design]: 
https://github.com/openbmc/docs/blob/master/designs/expired-password.md
[expired-password code review]: 
https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/29136


Detailed design changes:

1. Add a new PasswordExpired property to the existing [D-Bus 
xyz.openbmc_project.User.Attributes interface][] to indicate if the 
password is expired.

[D-Bus xyz.openbmc_project.User.Attributes interface]: 
https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/xyz/openbmc_project/User/Attributes.interface.yaml

2. Update [phosphor-user-manager][] to implement this property for local 
users.
Reading can use something like the "chage --list" command.
I vote to make this property read-only, but if needed, writing a true 
value can invoke the "passwd --expire" command.

3. Implement the Redfish PasswordChangeRequired property in BMCWeb.
This would be read-only.
This affects existing Redfish ManagerAccount objects at URI 
/redfish/v1/AccountService/Accounts/SOMEUSER.
This property would be present for local accounts and omitted for LDAP 
accounts.

4. Update the [OpenBMC user management][] doc as needed.

- Joseph



More information about the openbmc mailing list