Django的GSSAPI身份验证
项目描述
Django的GSSAPI身份验证
为Django应用程序提供GSSAPI(SPNEGO)身份验证。
这是使用python-gssapi重写的django-kerberos。
它仅与使用k5test包的MIT Kerberos 5进行了测试。
支持Python 2和3,Django >1.8。
基本用法
将此添加到您的项目 urls.py
url('^auth/gssapi/', include('django_gssapi.urls')),
并使用默认的身份验证后端,通过将其添加到您的 settings.py 文件
AUTHENTICATION_BACKENDS = ( 'django_gssapi.backends.GSSAPIBackend', )
视图
django-gssapi提供了一个基类LoginView,您可以通过继承它来获得所需的行为,主要扩展点是
challenge() 返回包含挑战的401响应,您应该覆盖它以显示一个解释失败的模板,
success(user) 应该记录给定的用户并将重定向到REDIRECT_FIELD_NAME,
get_service_name() 它应该返回一个gssapi.Name作为您的服务,默认情况下它返回None,因此GSSAPI将匹配任何可用的名称(例如,对于Kerberos,它将匹配keytab中的任何名称,例如@HTTP/my.domain.com@)。
设置
要使您的应用程序使用GSSAPI作为其主要登录方法
LOGIN_URL = 'gssapi-login'
您的应用程序需要一个GSSAPI机制(如Kerberos)可以工作的环境,对于Kerberos,这意味着有一个默认的keytab或创建一个并将其路径设置在KRB5_KTNAME中,或者您可以使用MIT Kerberos 5的GSSAPI_STORE和凭证存储扩展来指示一个keytab
GSSAPI_STORE = {'keytab': 'FILE:/var/lib/mykeytab'}
您还可以使用以下内容强制为您的服务设置GSSAPI名称
import gssapi GSSAPI_NAME = gssapi.Name('HTTP/my.service.com', gssapi.MechType.hostbased_service)
GSSAPI身份验证后端
在django_gssapi.backends.GSSAPIBackend中提供了一个虚拟后端,它查找与GSSAPI名称相同的用户。您应该根据您的用例实现它。
自定义身份验证后端必须具有以下签名
class CustomGSSAPIBackend(object): def authenticate(self, request, gssapi_name): pass
参数 gssapi_name 是一个 gssapi.Name 对象,它可以被转换为字符串以获取原始名称。
Kerberos用户名/密码后端
如果您的用户没有将浏览器配置为SPNEGO HTTP身份验证,您还可以提供一个经典的登录/密码表单,该表单使用Kerberos验证密码。为此,请使用 django_gssapi.backends.KerberosPasswordBackend,用户名用作原始主体名称。
django-rest-framework身份验证后端
要使用GSSAPI验证用户,可以使用 django_gssapi.drf.GSSAPIAuthentication,它使用配置的GSSAPI身份验证后端查找用户,并在 request.auth 中返回GSSAPI名称。
项目详情
django-gssapi-1.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | e8e88cc5c1f9f7ad755439d32190f06854f77ad30806219c49b6f49f98303cff |
|
MD5 | 2877aaaaebbddd67f2a1a4ce44821113 |
|
BLAKE2b-256 | 9673cd79a29fe1fcf1046f072232f91ccb40a4dca459928c9c96912e8733e914 |
django_gssapi-1.0-py2.py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | fc9eb8d02a37321f310d83d0c2d9ed575d4aedc59246d817dc819fd1da82d00c |
|
MD5 | dcdde5222f7ff51dca49cf9874f85182 |
|
BLAKE2b-256 | 699747e43dea8fc7b79403dd4a840963235b45f1616cd601e35b4606a8326c11 |