Nur*_*bek 2 python kerberos active-directory flask django-rest-framework
我有任务创建SSO
的(单点登录)的授权Python
后端应用程序的帮助下Kerberos
和Active Directory
。
换句话说,前端应用程序对后端应用程序的特定 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 中看到上述过程的任何实现?我将不胜感激任何帮助。
您有 2 种方法来处理此问题:
纯 Python 解决方案
如果您没有代理或只想在 python 中处理它,我建议使用python-gssapi library。这是一个代码示例。还有其他 Python 绑定,但从我的阅读来看,这个绑定似乎是最完整的。
请注意,如果您以这种方式处理它,您的 Python 服务器可能需要能够尊重 keep-alive 标头(即对多个请求重复使用相同的连接)。这严格来说并不是 SPENGO 协议的一部分,但大多数浏览器似乎都要求服务器实现它。
代理解决方案
如果您使用的是 apache,则可以使用mod_auth_kerb模块,该模块有详细记录。还有一个mod_auth_gssapi提供了类似的功能。
对于 nginx,有一个类似的模块可用。
对于这些代理解决方案中的任何一个,其想法是代理处理 Kerberos 身份验证,并为您的 Python 应用程序设置REMOTE_USER 环境变量。因此,您的 Python 应用程序需要能够接受此变量作为经过身份验证的用户。Django有专门用于此目的的中间件 - 我不确定Flask(我提到这两个框架是因为它们在您问题的标签中)。
归档时间: |
|
查看次数: |
6965 次 |
最近记录: |