Skip to content

Commit b850bd5

Browse files
committed
wip: native auth
1 parent f8bfb85 commit b850bd5

File tree

4 files changed

+42
-3
lines changed

4 files changed

+42
-3
lines changed
58.3 KB
Loading
65.6 KB
Loading
34.1 KB
Loading

modules/tutorials/pages/jupyterhub.adoc

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -224,22 +224,61 @@ The Keycloak https://github.com/stackabletech/demos/blob/feat/keycloak-jupyterhu
224224
----
225225
226226
Not that the standard flow is enabled and no other OAuth-specific settings are required.
227-
Wildcards are used for redirectUris and webOrigins, mainly for the sake of simplicity: in production environments this would typically be limited or filtered in an appropriate way.
227+
Wildcards are used for `redirectUris` and `webOrigins`, mainly for the sake of simplicity: in production environments this would typically be limited or filtered in an appropriate way.
228228
229229
== JupyterHub
230230
231231
=== Authentication
232232
233+
This tutorial covers two methods of authentication: Native and OAuth.
234+
Other implementations are documented https://jupyterhub.readthedocs.io/en/stable/reference/authenticators.html[here].
235+
233236
==== Native Authenticator
234237
238+
This tutorial and the accompanying demo assume that Keycloak is used for user authentication.
239+
However, a simpler alternative is to use the Native Authenticator that allows users to be added "on-the-fly".
240+
241+
[source,yaml]
242+
----
243+
options:
244+
hub:
245+
config:
246+
Authenticator:
247+
allow_all: true
248+
admin_users:
249+
- admin
250+
JupyterHub:
251+
authenticator_class: nativeauthenticator.NativeAuthenticator
252+
NativeAuthenticator:
253+
open_signup: true
254+
proxy:
255+
...
256+
----
257+
258+
Users must either be included in an `allowed_users` list, or the property `allow_all` must be set to `true`.
259+
The creation of new users will be checked against these settings and refused if appropriate.
260+
If an admin_users property is defined, then associated users will see an additional tab on the JupyterHub home screen, allowing them to carry out user management actions (e.g. create user groups and assign users to them, assign users to the admin role, delete users).
261+
262+
NOTE: The above applies to version 4.x of the JupyterHub Helm chart.
263+
Version 3.x does not impose these limitations and users can be added and used without any constraints.
264+
235265
==== OAuth Authenticator (Keycloak)
236266
237-
=== Certificates
267+
To authenticate against a Keycloak instance it is necessary to provide the following:
238268
239-
=== Driver Service
269+
* configuration for GenericOAuthenticator
270+
* certificates that can be used between JupyterHub and Keycloak
271+
* several URls (callback, authorize etc.) necessary for the authentication handshake
272+
** in this tutorial these URls will be defined dynamically using start-up scripts, a ConfigMap and environment variables
273+
274+
=== GenericOAuthenticator
275+
276+
=== Certificates
240277
241278
=== Endpoints
242279
280+
=== Driver Service
281+
243282
=== Profiles
244283
245284
== Images

0 commit comments

Comments
 (0)