Pyramid的认证策略,可代理到其他认证策略堆栈
项目描述
Pyramid 的一个认证策略,它代理到其他认证策略堆栈。
概述
MultiAuthenticationPolicy 是一个 Pyramid 认证策略,它代理到一组 其他 IAuthenticationPolicy 对象,以提供从单个部分组合的认证解决方案。只需传递一个应按顺序尝试的策略列表
policies = [ IPAuthenticationPolicy("127.0.*.*", principals=["local"]) IPAuthenticationPolicy("192.168.*.*", principals=["trusted"]) ] authn_policy = MultiAuthenticationPolicy(policies) config.set_authentication_policy(authn_policy)
此示例使用 pyramid_ipauth 模块根据请求的原始 IP 地址分配有效主体。它结合了两种策略,使得来自“127.0.*.*”的请求将具有主体“local”,而来自“192.168.*.*”的请求将具有主体“trusted”。
通常,堆叠的认证策略的结果如下组合
authenticated_userid: 返回第一个成功策略的 userid
unauthenticated_userid: 返回第一个成功策略的 userid
effective_principals: 返回所有策略的主体的并集
remember: 返回所有策略的头部
forget: 返回所有策略的头部
部署设置
也可以将认证策略作为您的 paste 部署设置的一部分进行指定。考虑以下示例
[app:pyramidapp] use = egg:mypyramidapp multiauth.policies = ipauth1 ipauth2 pyramid_browserid multiauth.policy.ipauth1.use = pyramid_ipauth.IPAuthentictionPolicy multiauth.policy.ipauth1.ipaddrs = 127.0.*.* multiauth.policy.ipauth1.principals = local multiauth.policy.ipauth2.use = pyramid_ipauth.IPAuthentictionPolicy multiauth.policy.ipauth2.ipaddrs = 192.168.*.* multiauth.policy.ipauth2.principals = trusted
要从这些设置配置认证,只需将 multiauth 模块包含到您的配置器中
config.include("pyramid_multiauth")
在此示例中,您将获得一个具有三个堆叠认证策略的 MultiAuthenticationPolicy。前两个,ipauth1 和 ipauth2,定义为可调用的名称及其一组关键字参数。第三个定义为模块名称,pyramid_browserid,它将通过标准的 config.include() 机制进行处理。
最终结果将是一个通过 BrowserID 认证用户并基于请求的原始 IP 地址分配附加主体标识符的系统。
如果需要,还可以从配置中指定 组查找函数 和 授权策略
[app:pyramidapp] use = egg:mypyramidapp multiauth.authorization_policy = mypyramidapp.acl.Custom multiauth.groupfinder = mypyramidapp.acl.groupfinder ...
MultiAuthPolicySelected 事件
当配置的多个策略之一被选择时,会触发一个事件。
from pyramid_multiauth import MultiAuthPolicySelected # Track policy used, for prefixing user_id and for logging. def on_policy_selected(event): print("%s (%s) authenticated %s for request %s" % (event.policy_name, event.policy, event.userid, event.request)) config.add_subscriber(on_policy_selected, MultiAuthPolicySelected)
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分布
构建的分发版
pyramid_multiauth-1.0.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e4c01c59dd865a637173c7d0e3de062895e4a1b3312e442add6182989a13ca83 |
|
MD5 | f270abfe1dab0f64d29ae68782edb56e |
|
BLAKE2b-256 | c85130beabe10c2cfab7d43bd2c7c6a183eb917193841ba8d5979ea4e5cc5427 |
pyramid_multiauth-1.0.2-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0cd1f2d9c782458c3992a9183a55f9fcd257a2f1c6e7d62e44552f7cdaff9063 |
|
MD5 | 2479523f1e08029064237293b6a5d511 |
|
BLAKE2b-256 | 6c6bc25340c5efccdbb7352d88a513b881b986fbb02e3b94fce937e6786d725e |