Within the service, various microservices interact with BMCs:
- core
- serial-console
- hw-health
- rms
All of them receive BMC credentials via certain APIs from the core service.
In order to limit the visibility of long-lived credentials, the services should be converted to use auth tokens, as provided by the redfish session service: https://www.dmtf.org/sites/default/files/Redfish_School-Sessions.pdf.
- A process within core would authenticate against BMCs and generate session tokens
- These session tokens would be shared with all consumers
- Session tokens should be short-lived and get rotated. For each consumer there need to be at least 2 active tokens (current and next).
This approach requires the BMCs to support session APIs. If they are not available, the fallback option is to still share username and password for the affected hardware components.
Within the service, various microservices interact with BMCs:
All of them receive BMC credentials via certain APIs from the core service.
In order to limit the visibility of long-lived credentials, the services should be converted to use auth tokens, as provided by the redfish session service: https://www.dmtf.org/sites/default/files/Redfish_School-Sessions.pdf.
This approach requires the BMCs to support session APIs. If they are not available, the fallback option is to still share username and password for the affected hardware components.