commit | 8fd315a55515124fc3cb0f5975fec415454595ec | [log] [tgz] |
---|---|---|
author | Joseph Reynolds <joseph-reynolds@charter.net> | Thu Sep 12 12:02:33 2019 -0500 |
committer | Joseph Reynolds <joseph-reynolds@charter.net> | Tue Oct 15 16:37:28 2019 -0500 |
tree | a79098979c5751b44c51f854557639c5b2298e67 | |
parent | 49d734ff2f17f5f623e60e52a144d6304866aad3 [diff] |
Handle Redfish PasswordChangeRequired This enhances BMCWeb authentication to recognize when the user's password is correct but expired. The Redfish SessionService is enhanced to comply with the Redfish PasswordChangeRequired spec which allows the session to be created, but limits that sesion to changing the password only, and includes the PasswordChangeRequired message in the response body. Specifically, when the account's password is expired, a successful authentication via the following interfaces will have these results: - POST /redfish/v1/SessionService/Sessions -- follows Redfish spec - POST /login -- creates a session limited to changing the password, similar to Redfish - Basic authentication -- continues to treat the password change required condition as an authentication failure and gives no indication the password is expired. - Cookie auth -- works as before - Token auth -- works as before This patchset is intended to allow web applications to use the presence of the Redfish PasswordChangeRequired message or the extendedMessage field to trigger the password change dialog. This does not implement the PasswordChangeRequired property in the ManagerAccount resource. This implements the Redfish privilege overrides associated with the ConfigureSelf privilege. Specifically, this correctly implements the Password property override, and the ManagerAccount Resource URI override. When an API results in 403 Forbidden and the issuing session has the PasswordChangeRequired condition, appropriate JSON is given. Tested: Yes, see https://github.com/openbmc/bmcweb/issues/103 No, did not run Redfish validator Signed-off-by: Joseph Reynolds <joseph-reynolds@charter.net> Change-Id: Ibbf5f6414ac55c0e7bea14c721f6db227b52fe40
This component attempts to be a "do everything" embedded webserver for openbmc.
At this time, the webserver implements a few interfaces:
BMCWeb is configured by setting -D
flags that correspond to options in bmcweb/CMakeLists.txt
and then compiling. For example, cmake -DBMCWEB_ENABLE_KVM=NO ...
followed by make
. The option names become C++ preprocessor symbols that control which code is compiled into the program.
When BMCWeb starts running, it reads persistent configuration data (such as UUID and session data) from a local file. If this is not usable, it generates a new configuration.
When BMCWeb SSL support is enabled and a usable certificate is not found, it will generate a self-sign a certificate before launching the server. The keys are generated by the prime256v1
algorithm. The certificate
C=US, O=OpenBMC, CN=testhost
,SHA-256
algorithm.The crow project has had a number of additions to make it more useful for use in the OpenBmc Project. A non-exhaustive list is below. At the time of this writing, the crow project is not accepting patches, so for the time being crow will simply be checked in as is.