django的gssapi身份验证

django-gssapi的Python项目详细描述


django的gssapi身份验证

向django应用程序提供gssapi(spnego)身份验证。

这是使用python gssapi重写django kerberos。

它只使用mit kerberos 5使用k5test包进行测试。

支持Python2和3、django>;1.8。

基本用法

将此添加到您的项目urls.py

url('^auth/gssapi/', include('django_gssapi.urls')),

并使用默认的身份验证后端,将其添加到设置中。py文件:

AUTHENTICATION_BACKENDS = (
    'django_gssapi.backends.GSSAPIBackend',
)

视图

django gssapi提供了一个基本的loginview,您可以将其子类化以获取 行为您的需要,主要扩展点是:

  • challenge()返回带有质询的401响应,您应该覆盖它 要显示解释失败的模板,
  • 成功(用户)它应该记录给定的用户并重定向到redirect\u field\u name,
  • get_service_name()它应该通过 默认情况下,它返回none,因此gssapi将匹配任何可用的名称(例如 使用kerberos,它将匹配keytab中的任何名称,比如 @http/my.domain.com@)。

设置

要使应用程序使用gssapi作为其主要登录方法:

LOGIN_URL = 'gssapi-login'

您的应用程序需要一个gssapi机制(如kerberos)所在的环境 对kerberos来说,这意味着有一个默认的keytab来创建一个 在krb5_ktname中设置其路径,或者可以将gssapi_store与mit kerberos一起使用 5和凭证存储扩展以指示密钥选项卡:

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.gssapi backend中提供了一个虚拟后端 用户名与gssapi名称相同的up用户。你应该实现它 你的用例。

自定义身份验证后端必须具有以下签名:

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 用于查找用户并在中返回gssapi名称的身份验证后端 请求.auth

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android:在ListView上使用setOnItemClickListener   使用Netbeans 7.0连接到SQL Server的java正在挂起   java Spring3依赖项注入不适用于mule   java Flink SQL结果字段与LocalDateTime上请求的类型错误不匹配   java找不到文件的结尾   考虑到NamingStrategy,java有没有办法将字符串转换为JsonNode?   使用Netbeans/ant部署java(命令行)应用程序   java如何修复Spring引导多部分上载中的“所需请求部分不存在”   java在应用程序启动时通过引用获取映射未知目标实体属性异常   java形状旋转问题Java2d   Weblogic服务器上的java ExecuteAndWaitInterceptor问题   JavaSpringBoot:project将图像保存在错误的路径中,并且在使用IDEIntellji打开时不显示图像   类向java接口添加方法   Swing组件上的Java 7泛型   sql server如何从java获取用户名。sql。联系   java如何检查该行是否与正则表达式(regex)冲突?   java如何在spring引导安全中为计数失败登录设置验证登录为false   图像如何在Java中使PNG的白色透明?