对flask应用程序的http协商(gssapi)身份验证支持。
Flask-GSSA的Python项目详细描述
对flask应用程序的http协商(gssapi)身份验证支持。安全 具有透明和安全的单点登录以授权用户的敏感视图 使用微软中的现有访问控件访问Samba激活 目录或FreeIPA服务器。
但是,当前用户名和票证不会公开给您的应用程序 这应该是可能的。它也不提供更细粒度的权限 系统到用户组,只有基于主机和基于服务的访问控制 由身份验证服务器实现。
安装
通过pypi安装简易方法:
$ pip install flask-gssapi
或者下载并构建自己:
$ git clone https://github.com/cour4g3/flask-gssapi $cd flask-gssapi $ python setup.py install
用法
用法相当简单:
fromflaskimportFlask,render_templatefromflask_gssapiimportGSSAPIapp=Flask(__name__)gssapi=GSSAPI(app)# Here, you'll need to be authenticated@app.route('/secret')@gssapi.require_authdefsecret_view():returnrender_template('secret.html')# Here, you'll need to be a specific user@app.route('/admin')@gssapi.require_user('admin')# or old-style @gssapi.require_user(user='admin')defadmin_view():returnrender_template('admin.html')# Or a list of users@app.route('/staff')@gssapi.require_user('admin','michael')defstaff_view():returnrender_template('staff.html')# You can also get the username as a keyword argument@app.route('/another-secret')@gssapi.require_authdefadmin_view(username=''):returnrender_template('another-secret.html',username=username)
配置
出于安全目的,应用程序可能不应具有对 系统的keytab,您应该为应用程序创建一个新的keytab:
$exportKRB5_KTNAME=FILE:/path/to/HTTP.keytab $ net ads keytab create $ net ads keytab add HTTP $ chown httpd:httpd /path/to/HTTP.keytab
krb5_ktname将指向要使用的正确的keytab,并且可以包括 在启动脚本或服务文件中。
大多数情况下,默认值应该足够了,但是您可能需要 在某些情况下更改:
Key | Description |
---|---|
GSSAPI_SERVICE_NAME | The service name you want to authenticate against, by default this is HTTP which most browsers use. |
GSSAPI_HOSTNAME | The hostname you want authenticate against, by default this is acquired from socket.fqdn(). |
待办事项
- 如果没有凭据,则提供回退到登录页或基本身份验证 提供非域连接设备。
- 默认情况下保护所有视图的配置键,使用等效的no_auth 装饰工。
许可证
根据麻省理工学院的许可证。