跳转到主要内容

Django可以验证RADIUS服务器

项目描述

README

允许Django验证RADIUS服务器。

简介

RADIUS是一种由ISP广泛使用的协议,用于验证拨入和其他远程用户;它也被路由器和其他网络硬件使用。流行的服务器包括FreeRADIUS、GNU RADIUS和令人愉快的名字Steel Belted RADIUS。

动机

因为这个小小的包是由我所在的工作场所开发的,我们使用RSA SecurID令牌身份验证,并且可以通过RADIUS访问——比他们专有的协议要容易得多。

这里的所有繁重工作都是由Wichert Akkerman的“pyrad”包完成的;这只是为了方便Django使用而将其包装起来。

代码基于https://docs.django.ac.cn/en/dev/topics/auth/#other-authentication-sources中的示例。

此代码尽力捕获可能引发异常的任何错误,以便后端失败(配置错误的RADIUS服务器、错误的导入等)返回None,表示身份验证失败。

在成功验证后,将返回User对象。如果此用户对Django来说是新的,则会在Django数据库中创建一个新的User。

非功能特性

传统上,在身份验证过程中,RADIUS服务器可以返回各种属性/值对,例如分配的IP地址和子网掩码,以及除了成功代码之外。ADIUS还可以处理“会计”,但这里的重点是身份验证。

用法

配置

在您的settings.py或local_settings.py中,定义以下变量

RADIUS_SERVER

提供RADIUS服务器的服务器的IP地址(或可解析的DNS名称)。例如:“127.0.0.1”

RADIUS_AUTHPORT

UDP端口号,RADIUS监听用于身份验证请求。旧的RFC标准端口为1645,但较新的是1812。请以整数指定。例如:1812

RADIUS_SECRET

客户端和服务器使用共享密钥来编码数据包。例如:“猫头鹰并非看上去那么简单。”

身份验证后端

在您的zc.buildout配置或另一个构建机制中指定此egg;您也可以仅使用裸代码。

在settings.py(或local_settings.py)文件中指定身份验证堆栈中的模块和类路径。请注意,如果RADIUS无法认证到服务器,它通常会显示大约20秒的超时,因此您可能希望将其放在您可能使用的其他身份验证后端之后。例如

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
    'authbackends.authsawsbackend.AuthSawsBackend',
    'koansys.django.authradius.AuthRadius',
  )

待办事项

测试。抱歉。

变更记录

1.0.3 2009-02-25

正确用法示例,哦。

1.0.2 2009-02-25

重新修复URL信息,添加地址。

1.0.1 2009-02-25

修复URL信息,上传到googlecode,发布到pypi。

1.0.0 2009-02-25

从内部私有胆固醇免费代码创建公共egg代码。

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码发行版

koansys.django.authradius-1.0.3.tar.gz (4.7 kB 查看哈希值)

上传时间: 源代码

构建发行版

koansys.django.authradius-1.0.3-py2.6.egg (7.4 kB 查看哈希值)

上传时间: 源代码

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面