Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introducing a new authenticator for JupyterHub
Search
Leticia Portella
March 23, 2019
Technology
1
260
Introducing a new authenticator for JupyterHub
Presenting Native Authenticator at Pycon Limerick, Ireland - 23/03/2019
Leticia Portella
March 23, 2019
Tweet
Share
More Decks by Leticia Portella
See All by Leticia Portella
Impulsionando sua carreira na tecnologia
leportella
2
280
O que vem depois do Django Girls? Uma introdução às Class Based Views
leportella
2
240
Apresentando um novo autenticador para o JupyterHub
leportella
0
150
Building your own website with Jekyll + Github Pages
leportella
0
100
What's beyond the Django Girls tutorial: an introduction to class based views
leportella
1
77
Introduction to Jupyter Notebooks & Data Analytics with Kaggle
leportella
0
66
Que belo dia para a ciência
leportella
1
74
Organizações Data-Driven
leportella
0
27
Serenata de Amor
leportella
0
28
Other Decks in Technology
See All in Technology
新卒1年目が向き合う生成AI事業の開発を加速させる技術選定 / ai-web-launcher
cyberagentdevelopers
PRO
7
1.5k
顧客が本当に必要だったもの - パフォーマンス改善編 / Make what is needed
soudai
24
6.8k
生成AIとAWS CDKで実現! 自社ブログレビューの効率化
ymae
2
330
Product Engineer Night #6プロダクトエンジニアを育む仕組み・施策
hacomono
PRO
1
480
事業者間調整の行間を読む 調整の具体事例
sugiim
0
1.6k
いまさらのStorybook
ikumatadokoro
0
150
フルカイテン株式会社 採用資料
fullkaiten
0
36k
Gradle: The Build System That Loves To Hate You
aurimas
2
150
pandasはPolarsに性能面で追いつき追い越せるのか
vaaaaanquish
4
4.7k
来年もre:Invent2024 に行きたいあなたへ - “集中”と“つながり”で楽しむ -
ny7760
0
480
スプリントゴールにチームの状態も設定する背景とその効果 / Team state in sprint goals why and impact
kakehashi
2
100
生成AIと知識グラフの相互利用に基づく文書解析
koujikozaki
1
150
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
66
10k
Producing Creativity
orderedlist
PRO
341
39k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
290
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Making Projects Easy
brettharned
115
5.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
4 Signs Your Business is Dying
shpigford
180
21k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
7
150
Faster Mobile Websites
deanohume
304
30k
Embracing the Ebb and Flow
colly
84
4.4k
Making the Leap to Tech Lead
cromwellryan
132
8.9k
Transcript
Introducing a new authenticator for JupyterHub
LETICIA PORTELLA /in/leportella @leportella @leleportella leportella.com pizzadedados.com
We love Jupyter notebooks <3
But… what if there are more people than just me?
None
JupyterHub HTTP Proxy Hub All icons where obtain on Flaticon
JupyterHub HTTP Proxy Hub Authenticator All icons where obtain on
Flaticon /hub/<url>
JupyterHub HTTP Proxy Hub Authenticator Spawners All icons where obtain
on Flaticon /hub/<url>
JupyterHub HTTP Proxy Hub Authenticator Spawners All icons where obtain
on Flaticon /hub/<url> /user/<name>
JupyterHub HTTP Proxy Hub Authenticator Spawners Database All icons where
obtain on Flaticon /hub/<url> /user/<name>
JupyterHub HTTP Proxy Hub Authenticator Spawners Database All icons where
obtain on Flaticon /user/<name> /hub/<url> Admin /hub/admin
JupyterHub HTTP Proxy Hub Authenticator Spawners Database Config.py All icons
where obtain on Flaticon /user/<name> /hub/<url> Admin /hub/admin
JupyterHub HTTP Proxy Hub Authenticator Spawners Database Config.py All icons
where obtain on Flaticon /user/<name> /hub/<url> Admin /hub/admin
JupyterHub Authenticator Options PAM LDAP OAuth FirstUse Dummy
JupyterHub Authenticator Options PAM LDAP OAuth FirstUse Dummy
JupyterHub Authenticator Options PAM LDAP OAuth FirstUse Dummy Native Authenticator
Native Authenticator /SIGNUP CREATES NEW USER USER IS UNAUTHORIZED USER
Native Authenticator /SIGNUP CREATES NEW USER USER IS UNAUTHORIZED /AUTHORIZE
USER IS AUTHORIZED ADMIN USER
Native Authenticator /SIGNUP CREATES NEW USER USER IS UNAUTHORIZED /
USER IS LOGGED IN /AUTHORIZE USER IS AUTHORIZED ADMIN USER USER
Native Authenticator
Native Authenticator Sign Up of users Username sanitization Blocking users
dynamically
Native Authenticator User can change password Password security check available
Block throttling attempts of login Add more information to signup 2fa (soon…)
Create an Authenticator / USERNAME + PASSWORD
Create an Authenticator / USERNAME + PASSWORD LOGIN HANDLER POST
METHOD POST
Create an Authenticator / USERNAME + PASSWORD LOGIN HANDLER AUTHORIZED
AUTHENTICATOR CLASS POST METHOD POST AUTHENTICATE METHOD UNAUTHORIZED
Create an Authenticator / USERNAME + PASSWORD LOGIN HANDLER AUTHORIZED
AUTHENTICATOR CLASS POST METHOD POST AUTHENTICATE METHOD UNAUTHORIZED
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
How did I end up here?
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
How did I end up here? Fill the final application
Wait for the results! Be part of an awesome team <3
How did I end up here?
LETICIA PORTELLA /in/leportella @leportella @leleportella leportella.com pizzadedados.com