Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introducing a new authenticator for JupyterHub

Introducing a new authenticator for JupyterHub

Presenting Native Authenticator at Pycon Limerick, Ireland - 23/03/2019

Leticia Portella

March 23, 2019
Tweet

More Decks by Leticia Portella

Other Decks in Technology

Transcript

  1. JupyterHub HTTP Proxy Hub Authenticator Spawners Database All icons where

    obtain on Flaticon /user/<name> /hub/<url> Admin /hub/admin
  2. JupyterHub HTTP Proxy Hub Authenticator Spawners Database Config.py All icons

    where obtain on Flaticon /user/<name> /hub/<url> Admin /hub/admin
  3. JupyterHub HTTP Proxy Hub Authenticator Spawners Database Config.py All icons

    where obtain on Flaticon /user/<name> /hub/<url> Admin /hub/admin
  4. Native Authenticator /SIGNUP CREATES NEW USER USER IS UNAUTHORIZED /

    USER IS LOGGED IN /AUTHORIZE USER IS AUTHORIZED ADMIN USER USER
  5. Native Authenticator User can change password Password security check available

    Block throttling attempts of login Add more information to signup 2fa (soon…)
  6. Create an Authenticator / USERNAME + PASSWORD LOGIN HANDLER AUTHORIZED

    AUTHENTICATOR CLASS POST METHOD POST AUTHENTICATE METHOD UNAUTHORIZED
  7. Create an Authenticator / USERNAME + PASSWORD LOGIN HANDLER AUTHORIZED

    AUTHENTICATOR CLASS POST METHOD POST AUTHENTICATE METHOD UNAUTHORIZED
  8. Create an Authenticator from jupyterhub.auth import Authenticator from tornado import

    gen class NewAuth(Authenticator): # ... @gen.coroutine def authenticate(self, handler, data): if self.can_login: return data['username'] return
  9. How did I end up here? Create a profile Be

    accepted on the first step :) Resolve a micro-task for the project Submit a pull request
  10. How did I end up here? Fill the final application

    Wait for the results! Be part of an awesome team <3