gpt4 book ai didi

python - 从重定向请求访问转发主机

转载 作者:可可西里 更新时间:2023-11-01 16:43:35 25 4
gpt4 key购买 nike

我正在开发一个应用程序,它将作为多个其他应用程序的集中式身份验证系统。每个应用程序都有一个与其域名相关联的APPLICATION_KEY

应用程序会将此 APPLICATION_KEY 发送到中央应用程序进行身份验证。集中式应用然后验证 APPLICATION_KEY 和转发的主机/推荐人;如果验证通过,则转发进一步处理的请求。

到目前为止一切顺利,当我创建一个应用程序并使用 APPLICATION_KEY 将其重定向到集中式应用程序时,问题就出现了。在 HTTP 重定向(302 或 301)的情况下,转发的主机不会出现在请求对象中,因此应用程序身份验证失败。

是否有更好、更可靠的方法来实现相同的过程,而不是使用请求对象中的转发主机或引荐来源网址?任何建议或指示都会非常有帮助。

最佳答案

依靠容易伪造的 header 并不是加强安全性的好方法。

通常,当您拥有中央身份验证服务时,用户会被重定向到带有标识应用程序的 token 的 CAS。

用户输入他们的凭据。

如果身份验证成功,则 CAS 服务会检查用户对该应用程序的授权;然后使用包含其授权的身份验证 token 将用户重定向回应用程序。

重定向的目的地作为请求的一部分传递给 CAS 服务:

http://mycas.service/auth?token=ABC123FDSR&back=/foo/bar.html

在某些实现中,重定向 URL 在 POST 请求的正文中发送。这种实现通常在受控系统上完成(即通常不在 Internet 上)。

防止伪造代币;应用以下任何组合:

  1. 登录受限于某些 IP(同样,在受控网络上这是可能的)。
  2. token 是使用 PKI 使用共享 key 生成的。
  3. 仲裁服务用于对 CAS 和应用程序进行身份验证。

对于面向公众的系统——实现是相反的;也就是说,用户对应用程序进行身份验证:

  1. 用户登录 CAS 服务。
  2. 用户为在服务上注册的应用生成 token 。
  3. 用户登录到目标应用程序。
  4. 目标应用程序将用户重定向到 CAS 服务。
  5. 用户登录 CAS 服务。
  6. 第 2 步中生成的凭据 token 被传回应用程序。

当然还有其他方法可以实现相同的功能,但与其自己 cooking ,不如使用类似 shibboleth 的方法。或 crowd .

关于python - 从重定向请求访问转发主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17647099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com