gpt4 book ai didi

python - 如何在 Python 应用程序中建立与 Kerberos 的连接?

转载 作者:行者123 更新时间:2023-12-05 02:12:35 25 4
gpt4 key购买 nike

我的任务是在 Kerberos 的帮助下在 Python 后端应用程序中创建 SSO(单点登录)授权事件目录

换句话说,前端应用程序对后端应用程序的特定 URL 发出 AJAX GET 请求。该后端应用程序必须以 JSON 格式返回有关员工的信息。

到目前为止我做了什么:

1) 后端应用程序的 SPN 名称是在 Active Directory 中创建的。

2) 后端应用程序的krb5.keytab 文件已创建。

3) 位于远程 Windows 服务器上的 Active Directory 和 Kerberos 服务器。

4) 后端应用程序将在 Linux Docker 容器中。

5) 我将 Kerberos 客户端安装到 Docker 容器。

6) Kerberos 领域:SERVICE.LOCAL

7) KDC 服务器的主机名:CS001、CS002、CS003

你见过用Python实现上述过程吗?如果有任何帮助,我将不胜感激。

最佳答案

你有两种方法来处理这个问题:

  1. 直接用Python处理
  2. 在 apache 或 nginx 等代理中处理

纯 Python 解决方案

如果您没有代理或者只是想在 python 中处理它,我建议使用 python-gssapi library . Here's a code sample .还有其他 Python 绑定(bind),但从我的阅读来看,这个似乎是最完整的。

请注意,如果您以这种方式处理它,您的 Python 服务器可能需要能够遵守 keep-alive header (即为多个请求重新使用相同的连接)。这严格来说不是 SPENGO 协议(protocol)的一部分,但大多数浏览器似乎都要求服务器实现它。

代理解决方案

如果您使用的是 apache,则有一个 mod_auth_kerb您可以使用的模块,它有据可查。还有一个 mod_auth_gssapi它提供了类似的功能。

对于 nginx,有 a similar module可用的。

对于这些代理解决方案中的任何一个,想法是代理处理 Kerberos 身份验证,并为您的 Python 应用程序设置 REMOTE_USER env 变量。因此,您的 Python 应用程序需要能够作为经过身份验证的用户接受此变量。 Django 有专门用于此目的的中间件 - 我不确定 Flask(我提到这 2 个框架,因为它们在您问题的标签中)。

关于python - 如何在 Python 应用程序中建立与 Kerberos 的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55658426/

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