pulp / pulp/pulpcore

Add RBAC to the /pulp/api/v3/users/ APIs

Open
#3,320 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Feature
Dominant language
Python
Stars
598
Forks
168
Avg merge
1d 4h
Merged PRs (30d)
86

Description

Problem Statement

Currently the Users API does not have an AccessPolicy and therefore no RBAC. This means that mutli-user Pulp systems today are a free-for-all in terms of creating/deleting or updating user data, e.g. passwords.

Proposed Solution

Similar to other RBAC endpoints, an AccessPolicy can be added to the User endpoints. Specifically:

/pulp/api/v3/users/
/pulp/api/v3/users/:UUID/

This would be similar to other AccessPolicies in that:

  • There are CRUD permissions at the object and model level
  • Users who can create users get to manage that user over time.

Alternatives

We could use superuser as the only persona that can manage users. I think that is a non-starter for multi-tenant Pulp systems since any superuser can modify/delete any other user or superuser in the system

Open Questions

Shouldn't users be able to edit their own attributes, e.g. their password or username?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing AccessPolicies for comparable RBAC endpoints, then inspect the /pulp/api/v3/users/ and /pulp/api/v3/users/:UUID/ entry points. Define and verify model- and object-level CRUD permissions, including ongoing management by the user creator, and resolve the open question about users editing their own attributes.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, authorization, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.