跳转到主要内容

pyramid_ipauth

项目描述

基于请求的远程IP地址设置身份和有效主体,适用于Pyramid的认证策略。

概述

要执行基于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

然后您只需将pyramid_ipauth包包含到配置器中。

config.include("pyramid_ipauth")

它将检测ipauth设置并构建适当的策略。

请注意,此包仅支持与单一组IP地址进行匹配。如果您需要为不同组IP地址分配不同的凭证,可以使用pyramid_multiauth包与pyramid_ipauth一起使用。

http://github.com/mozilla-services/pyramid_multiauth

如果您不想在配置时硬编码用户ID或主体,您可以指定一个“get_userid”和/或“get_principals”回调函数。

指定IP地址

IP地址可以以多种形式指定,包括

  • “all”:所有可能的IPv4和IPv6地址

  • “local”:机器的所有本地地址

  • “A.B.C.D”:单个IP地址

  • “A.B.C.D/N”:网络地址指定

  • “A.B.C.*”:对所有可能数字的glob匹配

  • “A.B.C.D-E”:对数字范围的glob匹配

  • 以上任一形式的空格或逗号分隔的字符串

  • netaddr IPAddress、IPRange、IPGlob、IPNetork的IPSet对象

  • 以上任一形式的列表、元组或可迭代对象

代理

默认情况下,此模块不尊重X-Forwarded-For头部,因为它很容易被恶意客户端欺骗。如果您的服务器位于设置X-Forwarded-For头部的可信代理后面,您应明确声明一组可信代理,如下所示

IPAuthenticationPolicy("127.0.*.*",
                       principals=["local"],
                       proxies = "127.0.0.1")

可信代理地址的集合可以使用与认证IP地址相同的语法指定。

0.3.3 - 2017-02-02

  • 修正了在空白处分割ipset字符串的问题;感谢 @kaleposhobios

0.3.2 - 2017-01-22

  • 解决了某些警告并清理了某些测试;感谢Scott Searcy

0.3.1 - 2016-03-18

  • 针对python3兼容性的修复

0.3.0 - 2016-03-18

  • 添加了对python3的支持

0.2.0 - 2013-10-14

  • 添加了get_userid和get_principals回调函数;感谢mrijken

  • 如果需要,将主体转换为列表;感谢janakj

0.1.1 - 2012-01-30

  • 更新许可证到MPL 2.0

0.1.0 - 2011-11-11

  • 首次发布

项目详情


下载文件

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

源分发

pyramid_ipauth-0.3.3.tar.gz (9.9 kB 查看散列)

上传时间

由以下支持