Request new repo for IBM-specific code

Joseph Reynolds jrey at linux.ibm.com
Tue Mar 9 04:30:13 AEDT 2021



On 3/8/21 10:03 AM, Ed Tanous wrote:
> On Thu, Mar 4, 2021 at 7:15 PM Joseph Reynolds <jrey at linux.ibm.com> wrote:
>> What is the right repository for a new Linux-PAM module to implement an
>> IBM-specific ACF authentication?
>>
>> The access control file (ACF) design was introduced to the OpenBMC
>> security working group and is described in [IBM issue 1737][] and
>> further explained in [IBM issue 2562][].
> Could you describe it in a design doc?

It would be an IBM-specific design, specific to IBM Enterprise systems.  
We're still working out the design.  I think I can share big parts of it 
with OpenBMC.

> Implementing ACL seems like
> something that's going to affect a lot of the system (at a minimum
> every outward facing client).  Unless you really think that you can do
> this with no changes to the client repos or phosphor-user-manager, it
> seems like it's worth discussion.

I anticipate the implementation would affect OpenBMC in three places:
1. New REST APIs to upload the ACF certificate, under URI /ibm/v1.
2. New Linux-PAM modules to validate the service login, along with 
enhanced /etc/pam.d/ config files for IBM Enterprise systems.
3. New Redfish role Oem.IBM.ServiceAgent (see comment below).

> For what it's worth, I really don't
> want to branch the authorization code in bmcweb depending on what
> company compiled the code.  They were hard enough to get right in the
> general case, and matter a lot for security.  The likelihood we get
> them right for every flavor of auth that a company might want to do
> seems unlikely.  If we as a project need an "ultra user" that seems
> like it shouldn't be specific to IBM, or should be a generic
> configuration that IBM systems apply on top, using common routines.

The BMCWeb pieces are:
1. A new Redfish role: Oem.IBM.ServiceAgent.
2. A new Redfish privilege: Oem.IBM.ProvideService.  For example, allows 
you to PATCH EEPROM data.
3. Implement the Redfish (new in Redfish 2020.4) RestrictedRoles and 
Restricted privileges.

> I've already detailed a path toward this in a previous email on this
> topic.

Thanks, I believe we have agreed on a path forward.

>
>> Note the [pam-ipmi modules][] are scoped to the OpenBMC project because
>> the IPMI implementation is shared by all of OpenBMC.  By comparison, the
>> proposed ibm-pam-acf module is intended only for IBM Enterprise
>> systems.  The intended implementation is based on standard cryptography
>> techniques and could be developed into a general authentication
>> solution, but the ACF is specific to IBM in terms of its exact format
>> and content, and I expect it will only be used by IBM and its partners.
> Have you released the specifications for this file format with an
> appropriate license?  That seems like a good first step to figuring
> out if these could find a home in OpenBMC.  If you've already done
> that, could you link them?
>
>> Can we create a new OpenBMC repo for this?  Perhaps ibm-pam-acf?  Or
>> should this go into some other repo?
> Could you please post the code you're planning on putting there
> somewhere that we can see it in gerrit?  I suspect that would help
> review whether or not a new repo is warranted, and probably give hints
> as to what design you're planning on implementing.

[Addressing both comment blocs above:]  I am investigating open sourcing 
the entire set of tools: ACF create/display/validate.
I plan to push the Linux-PAM module for early review as soon as 
possible, and it will reveal the content of the ACF.

Thanks!

> - Joseph
>
> [IBM issue 1737]: https://github.com/ibm-openbmc/dev/issues/1737
> [IBM issue 2562]: https://github.com/ibm-openbmc/dev/issues/2562
> [pam-ipmi modules]: https://github.com/openbmc/pam-ipmi



More information about the openbmc mailing list