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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a1ff161c10732d72bce769fc943076e73a932e732adad8f644e3a1f97d6d1d7e |
|
MD5 | 626622cdc36087e9081084e054d561f0 |
|
BLAKE2b-256 | 5e916d393e96f7544bcc8698114b4ed526491b9047a9fd851e25baaee9eee726 |
koansys.django.authradius-1.0.3-py2.6.egg的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7fd7fe0d12f3b9d40b29cbfc7d20856856d43035cc55b3f2440016d29f949e0f |
|
MD5 | 5584ca4dd622dfc34b8ab0c7ee103781 |
|
BLAKE2b-256 | 5843c5c084aa433baaba93f83a3ed328056f7063502ff46e8d92cdfff41efe90 |