JupyterHub Authentication
Jupyerhub初始的auth type是dummy, 就是个伪认证,输任意密码就能登录(可以通过修改config.yaml的auth:dummy:password改掉),此外还支持OAuth2、LDAP的方式,可以通过GitHub、google、CILogon等账号认证,这些配置方式在官方文档介绍的还蛮详细的。基于常见数据库进行身份验证的官方资料没找到,网上找了一些博客,写了个mysql账号密码认证的模块加到镜像里去。
mysqauthenticator包
写一个mysqlauthenticator的py包,大致功能就是连接数据库验证账号密码的常规操作。具体代码
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 = sess