Different authority based on how the Redfish service is accessed
Joseph Reynolds
jrey at linux.ibm.com
Thu Feb 13 08:28:30 AEDT 2020
This is re-asking a question from the Redfish forum. I think the
OpenBMC project needs to help define the requirements. I've excerpted
the conversation here to help facilitate discussion.
- Joseph
Richard:
https://redfishforum.com/thread/279/channel-privilege-support-direction-redfish
> ...what is the direction from Redfish specification, in terms of
limiting user roles based on Ethernet channels similar to IPMI....
Joseph:
Redfish's basic model is: an agent uses HTTPS to authenticate to a
Redfish API server which then maps the identified username (aka account
name) to a Role which then establishes which privileges are enforced.
I understand OpenBMC systems use Redfish and have multiple Ethernet
ports (aka Ethernet jacks) which are connected to very-different places.
Each of these ports can be wired to a different access channel. Typical
examples:
1. Port connected to a private management network (the canonical setup).
2. Port connected only to the host system, for example.
3. Port normally unused available to a service agent who has the
privilege of physical access (and a laptop to plug in).
Further, these access channels play a role in establishing security
domains. For example:
A. The BMC admin normally accesses the BMC via its management network.
If needed, the admin can use their access the host platform to access to
the BMC.
B. The BMC admin normally accesses the BMC via its host platform. For
example, the admin first gains root access to the host computer and then
accesses the BMC. (This use case is typical for a standalone computer,
but incompatible with rented bare-metal servers.)
A mechanism is desired to restrict access to the Redfish APIs based on
the access channel. Questions:
1. Do we need to control access to the channel itself? Like the function
provided by the ManagerNetworkProtocol?
2. Do we want to restrict which users can access via each channel? Like
OpenBMC's "group roles" described here?:
github.com/openbmc/docs/blob/master/architecture/user_management.md#supported-group-roles
<https://github.com/openbmc/docs/blob/master/architecture/user_management.md#supported-group-roles>
3. Do we want to be able to assign a different Redfish Role to users
based on which access channel they used to access the BMC?
I think we should start with a problem statement. What problem are we
trying to solve? Is there a specific use case or requirement?
Jeff:
> The closest mechanism we have is roles assigned to accounts, so if
you are looking to distinguish behavior, it should probably be based on
account and not based on ingress method
More information about the openbmc
mailing list