金字塔
pyramid_ipauth的Python项目详细描述
一种设置身份和有效性的金字塔认证策略 基于请求的远程IP地址的主体。
概述
要执行基于IP地址的身份验证,请创建IPAuthenticationPolicy 并指定目标IP范围、用户ID和有效主体。然后设置它 作为配置程序中的身份验证策略:
authn_policy = IPAuthenticationPolicy("127.0.*.*", "myuser", ["locals"]) config.set_authentication_policy(authn_policy)
这将导致来自127.0.*.*范围内IP地址的所有请求 身份验证为用户“myuser”,并具有有效的主体“locals”。
也可以在部署中指定配置选项 文件:
[app:pyramidapp] use = egg:mypyramidapp ipauth.ipaddrs = 127.0.0.* 127.0.1.* ipauth.principals = locals
然后,您可以简单地将棱锥体ipauth包包含到配置程序中:
config.include("pyramid_ipauth")
它将检测ipauth设置并构造适当的策略。
注意,这个包只支持与一组IP进行匹配 地址。如果需要为不同的集合分配不同的凭据 在IP地址中,您可以结合使用金字塔多身份验证包 使用金字塔路径:
http://github.com/mozilla-services/pyramid_multiauth
如果您不想在配置时硬编码用户id或主体, 您可以指定一个“get_userid”和/或“get_principals”回调。
指定IP地址
IP地址可以以多种形式指定,包括:
- “all”: all possible IPv4 and IPv6 addresses
- “local”: all local addresses of the machine
- “A.B.C.D” a single IP address
- “A.B.C.D/N” a network address specification
- “A.B.C.*” a glob matching against all possible numbers
- “A.B.C.D-E” a glob matching against a range of numbers
- a whitespace- or comma-separated string of any of the above
- a netaddr IPAddress, IPRange, IPGlob, IPNetork of IPSet object
- a list, tuple or iterable of any of the above
代理< /H2>
默认情况下,此模块不尊重x-forwarded-for头,因为它 很容易被恶意客户端欺骗。如果您的服务器位于 设置x-forwarded-for头的受信任代理,应该显式地 声明这样的可信代理集:
IPAuthenticationPolicy("127.0.*.*", principals=["local"], proxies = "127.0.0.1")
可以使用与 要验证的IP地址集。
0.3.3-2017年2月2日
- 修复在空白处拆分ipset字符串的问题;谢谢@kaleposhobios
0.3.2-2017年1月22日
- 解决一些警告并清理一些测试;谢谢scott searcy
0.3.1-2016年3月18日
- python3兼容性的修复程序
0.3.0-2016年3月18日
- 添加对python3的支持
0.2.0-2013年10月14日
- 添加get_userid和get_principals回调函数;谢谢mrijken
- 必要时将负责人转换为列表;谢谢Janakj
0.1.1-2012年1月30日
- 将许可证更新为MPL 2.0
0.1.0-2011年11月11日
- 初始版本