Jupyterhub On K8s使用mysql進行身份認證

JupyterHub Authentication

Jupyerhub初始的auth type是dummy, 就是個偽認證莲绰,輸任意密碼就能登錄(可以通過修改config.yaml的auth:dummy:password改掉)翠勉,此外還支持OAuth2、LDAP的方式陨晶,可以通過GitHub、google帝璧、CILogon等賬號認證先誉,這些配置方式在官方文檔介紹的還蠻詳細的〉乃福基于常見數(shù)據(jù)庫進行身份驗證的官方資料沒找到褐耳,網(wǎng)上找了一些博客,寫了個mysql賬號密碼認證的模塊加到鏡像里去渴庆。

mysqauthenticator包

寫一個mysqlauthenticator的py包铃芦,大致功能就是連接數(shù)據(jù)庫驗證賬號密碼的常規(guī)操作。具體代碼

class MysqlAuthenticator(Authenticator):

    """JupyterHub Authenticator Based on Mysql"""

    def __init__(self, **kwargs):
        super(MysqlAuthenticator, self).__init__(**kwargs)

    @gen.coroutine
    def authenticate(self, handler, data):

        db_url = "mysql+mysqlconnector://root:root@192.168.199.182:3306/jupyter"
        session = init(db_url)

        username = data['username']
        passwd = data['password']

        try:
            user = session.query(User).filter(User.username == username).filter(User.password == passwd).one()
            if user is not None:
                return user.username
            else:
                return None
        except:
            return None

還要建一個mysql的服務襟雷,我直接開了個docker刃滓,建jupyter數(shù)據(jù)庫,建user表耸弄,id username password三個字段咧虎。插入一些測試數(shù)據(jù)。

制作新的鏡像

原來的Dockerfile我還沒研究计呈,就直接在原有的容器里加入新的內(nèi)容砰诵,然后再commit成新的鏡像征唬。

# 首先啟動jupyterhub服務
# 在k8s-hub容器運行的節(jié)點,進入容器先安裝一些依賴的模塊
docker exec -it 6db8b54b25b8 bash
# 安裝wheel茁彭、sqlalchemy总寒、mysql-connector
pip3 install wheel
pip3 install sqlalchemy
pip3 install mysql-connector

# 退出容器,把mysqlauthenticator包拷貝到pip3的下載目錄
# 注意路徑尉间,要不然import不進去偿乖。在容器里是/home/jovyan/.local/lib/python3.6/site-packages/
docker cp /root/myspace/workspace/jupyter/jupter_auth_mysql/mysqlauthenticator 6db8b54b25b8:/home/jovyan/.local/lib/python3.6/site-packages/

# 打tag 這里我傳到自己搭建的docker倉庫里去,方便其他機子pull
docker tag 6db8b54b25b8 192.168.199.182:5000/jupyterhub/k8s-hub:v0.1.0
# push
docker push 192.168.199.182:5000/jupyterhub/k8s-hub:v0.1.0

修改config.yaml

首先把hub的鏡像改掉

hub:
  image:
    name: 192.168.199.182:5000/jupyterhub/k8s-hub
    tag: v0.1.0

然后改掉auth哲嘲, 一處是改auth:type為custom贪薪,然后配置custom的class,這樣源碼里就會import上面的mysqlauthenticator.MysqlAuthenticator這個類眠副。我還配了一個admin權(quán)限的user画切,這個admin user的控制面板會有一個簡單的管理頁面。

auth:
  type: custom
  custom: 
    className: mysqlauthenticator.MysqlAuthenticator
  whitelist:
    users:
  admin:
    access: true
    users:
      - wenxinax

然后重啟一下jupyterhub服務就行了囱怕。輸入的賬號密碼沒有通過數(shù)據(jù)庫驗證的話提示 Invalid username or password 就算成功了霍弹。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市娃弓,隨后出現(xiàn)的幾起案子典格,更是在濱河造成了極大的恐慌,老刑警劉巖台丛,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耍缴,死亡現(xiàn)場離奇詭異,居然都是意外死亡挽霉,警方通過查閱死者的電腦和手機防嗡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來侠坎,“玉大人蚁趁,你說我怎么就攤上這事∈敌兀” “怎么了他嫡?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長庐完。 經(jīng)常有香客問我涮瞻,道長,這世上最難降的妖魔是什么假褪? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮近顷,結(jié)果婚禮上生音,老公的妹妹穿的比我還像新娘宁否。我一直安慰自己,他們只是感情好缀遍,可當我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布慕匠。 她就那樣靜靜地躺著,像睡著了一般域醇。 火紅的嫁衣襯著肌膚如雪台谊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天譬挚,我揣著相機與錄音锅铅,去河邊找鬼。 笑死减宣,一個胖子當著我的面吹牛盐须,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播漆腌,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼贼邓,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了闷尿?” 一聲冷哼從身側(cè)響起塑径,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎填具,沒想到半個月后统舀,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡灌旧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年绑咱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枢泰。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡描融,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出衡蚂,到底是詐尸還是另有隱情窿克,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布毛甲,位于F島的核電站年叮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏玻募。R本人自食惡果不足惜只损,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧跃惫,春花似錦叮叹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至先较,卻和暖如春携冤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背闲勺。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工曾棕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人霉翔。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓睁蕾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親债朵。 傳聞我的和親對象是個殘疾皇子子眶,可洞房花燭夜當晚...
    茶點故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容