Commit Graph

86 Commits

Author SHA1 Message Date
alwasega
c4d5762608 Moved Explanation/Background files 2023-02-06 11:31:37 +03:00
alwasega
49169dab2f fixed broken MyST references 2023-01-26 00:05:17 +03:00
Min RK
8b988dc0be fix link targets after rst2myst 2022-12-07 09:42:26 +01:00
Min RK
2594a7269e Merge pull request #4140 from Joel-Ando/Joel-Ando-patch-2
add link to rbac index from implementation
2022-10-27 15:00:22 +02:00
Joel-Ando
5f32abeeba Update tech-implementation.md 2022-10-25 14:55:53 +01:00
Joel-Ando
3e4cc0b869 Update tech-implementation.md 2022-10-24 14:14:48 +01:00
Joel-Ando
d0a48c0655 Update tech-implementation.md 2022-10-24 13:28:28 +01:00
Min RK
54ac5226b3 Merge pull request #4152 from emmanuella194/main
Link back to rbac from use-cases
2022-10-24 14:15:27 +02:00
Emmanuella Orioma
ce9feb5139 Update use-case.md
changed RBAC documentation url to the internal rbac jupyter documentation
2022-10-24 15:09:29 +03:00
Joel-Ando
18b049e3c9 Update tech-implementation.md 2022-10-23 16:23:35 +01:00
Joel-Ando
6b62fe794e Update tech-implementation.md
did the necessary changes
2022-10-23 16:13:20 +01:00
Emmanuella Orioma
a17b4c5801 Updated use-cases.md
Added the RBAC jupyter documentation link
2022-10-22 22:23:26 +03:00
Min RK
aebe33b62b Remove redundant ref target for roles
it's already addressable at that same target name,
having this here results in ambiguous ref targets in MyST
2022-10-21 15:59:49 +02:00
Emmanuella Orioma
69e973d53a Update use-case.md
Worked on the documentation page  (jupyterhub/docs/source/rbac/use-case.md)

Added a wikipedia reference to [RBCA framework] and also emphasized on the solution under the *service to cull idle servers*
2022-10-21 13:21:20 +01:00
pre-commit-ci[bot]
c14d8e3446 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2022-10-20 03:28:21 +00:00
Joel-Ando
d956563ff4 Merge branch 'main' into Joel-Ando-patch-2 2022-10-20 04:27:19 +01:00
Georgiana
00cc149b0d Merge pull request #4089 from Christiandike/update/tech-implementation.md
Update rbac tech-implementation docs
2022-10-19 11:51:58 +02:00
Ojoachele Onuh
deaccdc668 Resolved and updated corrections from previous pull request 2022-10-17 17:27:09 +01:00
Christian Dike
e7a325ed24 Update docs/source/rbac/tech-implementation.md
update text

Co-authored-by: Min RK <benjaminrk@gmail.com>
2022-10-17 13:20:37 +01:00
Christian Dike
fc6d93bbe3 Update docs/source/rbac/tech-implementation.md
Replace URLs with internal markdown link

Co-authored-by: Min RK <benjaminrk@gmail.com>
2022-10-17 13:20:02 +01:00
Ojoachele Onuh
f386da1b7a fixed some typos and technical terms 2022-10-12 13:12:08 +01:00
Joel-Ando
a697c80475 Update tech-implementation.md 2022-10-12 01:10:09 +01:00
Christian Dike
916a83a954 Update tech-implementation.md
Fix typos and grammatical errors. Improve sentence structure. Use appropriate technical terms.
2022-10-11 19:03:21 +01:00
pre-commit-ci[bot]
53bf7a18ae [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2022-10-10 17:03:46 +00:00
Deborah Udoh
835fe8be8f Update roles.md in line with review 2022-10-10 18:03:13 +01:00
Deborah Udoh
ed71aead2b Update roles.md
Co-authored-by: Min RK <benjaminrk@gmail.com>
2022-10-10 17:56:35 +01:00
pre-commit-ci[bot]
18b1df8bc6 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2022-10-09 19:07:30 +00:00
Deborah Udoh
674c441935 Improve documentation 2022-10-09 19:37:59 +01:00
Min RK
8aac18c96d More documentation for 3.0 role/scope changes
a few more outdated `versionchanged` notes
2022-08-02 14:39:03 +02:00
Min RK
78438bdfcc Begin 3.0 changelog
had to manually remove already-backported PRs
2022-08-02 14:29:16 +02:00
Min RK
e4e4bf5ff4 next release is 3.0, not 2.4 2022-07-29 15:35:08 +02:00
Min RK
225ace636a call client-allowed scopes JUPYTERHUB_OAUTH_CLIENT_ALLOWED_SCOPES 2022-07-08 10:18:59 -07:00
Min RK
62b38934e5 store scopes on oauth clients, too
rather than roles, matching tokens

because oauth clients are mostly involved with issuing tokens,
they don't have roles themselves (their owners do).

This deprecates the `oauth_roles` config on Spawners and Services, in favor of `oauth_allowed_scopes`.

The ambiguously named `oauth_scopes` is renamed to `oauth_access_scopes`.
2022-06-08 12:26:48 +02:00
Min RK
b6210dc225 add !service and !server scope filters
allows oauth clients to issue scopes that only grant access to the issuing service

e.g. access:service!service or access:servers!server

especially useful with custom scopes
2022-04-08 20:10:23 +02:00
nihua
6d00eb501a Update upgrade.md 2022-03-30 14:20:30 +08:00
Erik Sundell
318c95342d Merge pull request #3833 from minrk/token-scopes
Tokens have scopes instead of roles
2022-03-29 23:49:35 +02:00
Min RK
7e22614a4e [squash me] token progress
tokens have scopes

    instead of roles, which allow tokens to change permissions over time

    This is mostly a low-level change,
    with little outward-facing effects.

    - on upgrade, evaluate all token role assignments to their current scopes,
      and store those scopes on the tokens
    - assigning roles to tokens still works, but scopes are evaluated and validated immediately,
      rather than lazily stored as roles
    - no longer need to check for role permission changes on startup, because token permissions aren't affected
    - move a few scope utilities from roles to scopes
    - oauth allows specifying scopes, not just roles.
      But these are still at the level specified in roles,
      not fully-resolved scopes.
    - more granular APIs for working with scopes and roles

    Still to do later:

    - expose scopes config for Spawner/service
    - compute 'full' intersection of requested scopes, rather than on the 'raw' scope list in roles
2022-03-24 15:05:50 +01:00
Min RK
66ecaf472a fix some outdated references to 'all' metascope
it is called 'inherit', but not all docs were updated
2022-03-24 14:06:05 +01:00
Min RK
9a87b59e84 improve custom scope docstrings 2022-03-16 08:44:52 +01:00
Min RK
fdf23600c0 allow custom scopes
defined with

    c.JupyterHub.custom_scopes = {
        'custom:scope': {'description': "text shown on oauth confirm"}
    }

Allows injecting custom scopes to roles,
allowing extension of granular permissions to service-defined custom scopes.

Custom scopes:

- MUST start with `custom:`
- MUST only contain ascii lowercase, numbers, colon, hyphen, asterisk, underscore
- MUST define a `description`
- MAY also define `subscopes` list(s), each of which must also be explicitly defined

HubAuth can be used to retrieve and check for custom scopes to authorize requests.
2022-03-11 11:37:26 +01:00
Erik Sundell
807c5b8ff9 Make the generate-scope-table script autoformat its output 2022-01-10 10:48:01 +01:00
Erik Sundell
1c1be8a24b Generate yaml formatted to match prettier better 2022-01-10 10:31:30 +01:00
Erik Sundell
a14d9ecaa1 ci: refactor to avoid triggering all tests on changes to docs 2022-01-04 00:53:33 +01:00
Min RK
8813bb63d4 update to openapi 3.0
easier to implement oneOf schemas

document scopes, session_id in /api/user model
2021-11-17 09:44:38 +01:00
Min RK
468aa5e93c render openapi spec client-side
- move spec to _static/rest-api.yml, since the original yaml must be served
- copy javascript rendering code from FastAPI (uses swagger-ui)
- remove link to pet store, since there isn't a big enough difference to duplicate it
- remove bootprint rendering with node
2021-10-29 13:13:41 +02:00
Min RK
5c01370e6f set version as long as we are rewriting the file 2021-10-29 13:13:41 +02:00
Min RK
b25517efe8 Rename 'all' metascope to more descriptive 'inherit'
since it means 'inheriting' the owner's permissions

'all' prompted the question 'all of what, exactly?'

Additionally, fix some NameErrors that should have been KeyErrors
2021-10-27 16:00:21 +02:00
Min RK
5f19989467 suggest roles instead of admin_users
and make admin link permission check match admin page

it would be nice if this could be consolidated (maybe an `admin:ui` permission?)
2021-09-16 11:57:36 +02:00
Min RK
8603723dbb add list:users|groups|services scopes
and govern GET /users|groups|services endpoints with these

Greatly simplifies filtering and pagination,
because these filters can be expressed in db filters,
unlike the potentially complex `read:users`.

Now the query itself will never return a model that should be excluded.

While writing the tests, I added more cleanup between tests.
We now ensure cleanup of all users and groups after each test,
which required updating some group tests which relied on this state leaking
2021-08-24 13:56:11 +02:00
Min RK
7533cb7602 [doc] add example specifying scopes for a default role 2021-08-24 09:04:08 +02:00