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

96f6148ae5af63f90246a3817686b457?s=128

Leticia Portella

March 23, 2019
Tweet

More Decks by Leticia Portella

Other Decks in Technology

Transcript

  1. Introducing a new authenticator for JupyterHub

  2. LETICIA PORTELLA /in/leportella @leportella @leleportella leportella.com pizzadedados.com

  3. We love Jupyter notebooks <3

  4. But… what if there are more people than just me?

  5. None
  6. JupyterHub HTTP Proxy Hub All icons where obtain on Flaticon

  7. JupyterHub HTTP Proxy Hub Authenticator All icons where obtain on

    Flaticon /hub/<url>
  8. JupyterHub HTTP Proxy Hub Authenticator Spawners All icons where obtain

    on Flaticon /hub/<url>
  9. JupyterHub HTTP Proxy Hub Authenticator Spawners All icons where obtain

    on Flaticon /hub/<url> /user/<name>
  10. JupyterHub HTTP Proxy Hub Authenticator Spawners Database All icons where

    obtain on Flaticon /hub/<url> /user/<name>
  11. JupyterHub HTTP Proxy Hub Authenticator Spawners Database All icons where

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

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

    where obtain on Flaticon /user/<name> /hub/<url> Admin /hub/admin
  14. JupyterHub Authenticator Options PAM LDAP OAuth FirstUse Dummy

  15. JupyterHub Authenticator Options PAM LDAP OAuth FirstUse Dummy

  16. JupyterHub Authenticator Options PAM LDAP OAuth FirstUse Dummy Native Authenticator

  17. Native Authenticator /SIGNUP CREATES NEW USER USER IS UNAUTHORIZED USER

  18. Native Authenticator /SIGNUP CREATES NEW USER USER IS UNAUTHORIZED /AUTHORIZE

    USER IS AUTHORIZED ADMIN USER
  19. Native Authenticator /SIGNUP CREATES NEW USER USER IS UNAUTHORIZED /

    USER IS LOGGED IN /AUTHORIZE USER IS AUTHORIZED ADMIN USER USER
  20. Native Authenticator

  21. Native Authenticator Sign Up of users Username sanitization Blocking users

    dynamically
  22. Native Authenticator User can change password Password security check available

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

  24. Create an Authenticator / USERNAME + PASSWORD LOGIN HANDLER POST

    METHOD POST
  25. Create an Authenticator / USERNAME + PASSWORD LOGIN HANDLER AUTHORIZED

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

    AUTHENTICATOR CLASS POST METHOD POST AUTHENTICATE METHOD UNAUTHORIZED
  27. 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
  28. How did I end up here?

  29. 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
  30. How did I end up here? Fill the final application

    Wait for the results! Be part of an awesome team <3
  31. How did I end up here?

  32. LETICIA PORTELLA /in/leportella @leportella @leleportella leportella.com pizzadedados.com