<div dir="ltr"><div dir="ltr"><div dir="ltr"><div>I want us to check-in on the User aspects of Pulp 3.0's feature set w.r.t some concerns I have and I've heard echoed on the list before. Overall the only change I'm advocating for is the removal of Users from the API entirely [0] and a shared understanding that Pulp is for single-user environments only (for now). The pulp-manager [1] parts are probably ok as-is.<br></div><div><br></div><div>First, Pulp isn't safe to use as a multi-user system because it provide no content isolation. Any user can create falsified packages of any type via Upload and have these packages be used by other users instead of other valid packages that come from trusted remote sources. Think about an impersonation of the rpm providing the 'passwd' binary w/ a slightly modified one. A Pulp system is safe iff a single user, e.g. Katello's user, or a single sysadmin has exclusive control of it. </div><div><br></div><div>Also, having distinct user identity but no way to authorize and limit what operations a user can take within the Pulp system isn't very usable.</div><div><br></div><div>Finally, I'm concerned about Pulp having identity management built into its own feature set at all. Identity management can be very complicated. There are whole projects dedicated to it. Users who want "real" identity management I don't believe will choose Pulp's. If third-party ID management is Pulp's recommended approach to having ID management then these User APIs will not be used, maybe by anyone.<br></div><div><br></div><div>What do you think?</div><div><br></div><div>My recommendation is to clearly label Pulp3 as a single-user system and also remove the User parts from the API pre RC. Pulp's API does need protection for its single user, so we could continue to create a single 'admin' User object called like we do now via pulp-manager [1].</div><div><br></div><div>[0]: <a href="https://github.com/pulp/pulp/blob/master/pulpcore/app/viewsets/user.py">https://github.com/pulp/pulp/blob/master/pulpcore/app/viewsets/user.py</a></div><div>[1]: <a href="https://github.com/pulp/pulp/blob/master/pulpcore/app/management/commands/reset-admin-password.py">https://github.com/pulp/pulp/blob/master/pulpcore/app/management/commands/reset-admin-password.py</a><br></div></div></div></div>