【问题标题】:How to use external Auth system in Pyramid如何在 Pyramid 中使用外部身份验证系统
【发布时间】:2015-03-30 08:38:26
【问题描述】:

上下文

我的应用依赖外部服务进行身份验证,python API 具有函数authentiate_request 女巫需要 request 实例作为参数,并返回结果字典:

  • 如果验证成功,dict 包含 3 个键:

    • 成功:真
    • 用户名:爱丽丝
    • cookies:[记住用户所需的 set-cookie 标头列表]
  • 如果不成功:

    • 成功:错误
    • redirect: 将用户重定向到基于 Web 的身份验证的 URL

现在,调用这个函数是比较昂贵的(就是在下面做 HTTP POST)。

问题

我是 Pyramid 安全模型的新手,我正在努力为我的应用使用现有/正确编写 AuthenticationPolicy,因此它使用我的身份验证服务,并且每个会话不会多次调用它的 API(在身份验证成功场景中)?

【问题讨论】:

  • 显示一些金字塔代码

标签: python authentication pyramid


【解决方案1】:

将自定义身份验证与 Pyramid 集成有两种广泛的方法: - 为 Pyramid 编写您自己的身份验证策略(我没有这样做) - 编写您自己的中间件来处理您的身份验证问题,并在 Pyramid 中使用 RemoteUserAuthenticationPolicy(我已经这样做了)

第二个,你编写一些标准的wsgi中间件,在那里整理你的自定义认证业务,然后写入wsgi env。 Pyramid 授权将正常工作,Pyramid 身份验证系统从 wsgi env 的“REMOTE_USER”设置中获取用户值。

我个人喜欢这种方法,因为它很容易将不同的应用程序封装在中间件中,并且很容易将其关闭或换掉。虽然并不是您所问问题的真正答案,但这可能是比您尝试的更好的方法。

【讨论】:

    猜你喜欢
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 2021-07-26
    • 2012-12-09
    • 1970-01-01
    相关资源
    最近更新 更多