radius认证模块
radius的Python项目详细描述
py半径
用于python 2.7.13+的radius身份验证模块
(c)1999年斯图尔特毕肖普stuart@stuartbishop.net>;
这个模块提供了基本的radius客户端功能,允许您的python 针对任何符合RFC2138的RADIUS服务器进行身份验证的代码。
安装
$ pip install py-radius
使用量
radius.py模块可以从命令行运行,提供 RADIUS客户端测试RADIUS服务器:
$ python -m radius Host [default: 'radius']: radius Port [default: 1812]: 1812 Enter RADIUS Secret: s3cr3t Enter your username: foobar Enter your password: qux ... Authentication Successful
示例
下面是使用库的示例。
importradiusradius.authenticate(secret,username,password,host='radius',port=1812)# - OR -r=radius.Radius(secret,host='radius',port=1812)print('success'ifr.authenticate(username,password)else'failure')
如果您的radius服务器需要质询/响应,那么使用量会更大一些 复杂。
importradiusr=radius.Radius(secret,host='radius')try:print('success'ifr.authenticate(username,password)else'failure')sys.exit(0)exceptradius.ChallengeResponsease:pass# The ChallengeResponse exception has `messages` and `state` attributes# `messages` can be displayed to the user to prompt them for their# challenge response. `state` must be echoed back as a RADIUS attribute.# Send state as an attribute _IF_ provided.attrs={'State':e.state}ife.stateelse{}# Finally authenticate again using the challenge response from the user# in place of the password.print('success'ifr.authenticate(username,response,attributes=attrs)else'failure')
这个模块有大量的日志记录,可以使用python日志框架来实现。