Decision Due Date: 04/20/2025
Hello Community,
This proposal is the first step in enabling certificate authentication for container content(which is also the backend for our flatpak support).
What this is not:
To make things clear, this is not related to the “protected” repository field we use to guard content on pulp distributions. Access to container content will continue to be protected by katello and not by pulp content-guard.
Current state:
Today, container content access is granted using basic authentication with username/password. This includes podman login for container content as well as podman login and copying generated auth file for flatpak access. Once the user is authenticated and a token returned to requesting client, we use the token for all future communications.
Motivations:
- Client authentication using consumer certs will allow us to authenticate repository access based on Content View/LCE of the registered host. Today once the user logs in on a client, they immediately have access to all container repositories regardless of Content View Environments it is registered to.
- Having cert auth will eliminate the need to pass around user credentials to an already registered host and for other automated workflows.
- This will allow us to reduce the number of repositories we expose for a client on our flatpak registry. Today since user based auth grants access to all repositories, we rely on the request IP and map it to host to grant access which is not ideal and difficult to extend to proxies. Using cert auth will help us in designing a better solution for Flatpaks, smart proxies, and lifecycle management - #11 by iballou.
Proposed design:
- Podman/flatpak have support for image/docs/containers-certs.d.5.md at main · containers/image · GitHub .
- With the correct certs placed in the directory for katello/proxy registry, podman and flatpak clients are able to serve these certs to registry for authentication.
a) We can update Global registraion template to automate the placement of certs in the right directory.
b) We can provide REX templates to do this on managed hosts. - We will enable katello registry and proxy registry to be able to authenticate the certs for a request.
Note:
- We will continue to use user auth for uploading container content. That follows the pattern for other content uploads.
- We are going to be able to support cert auth only for EL10 clients and not below cause the flatpak client support for container certs is not available in older versions. The older clients will continue to use user auth. User auth is also the fallback for EL10 clients without certs in the right directory.
Decision
We will update this proposal with the final decision regarding whether or not we should implement this proposal and, if so, the updated design after all the questions and feedback are received and resolved.