Django针对外部SSO进行身份验证



如果这里的措辞有点奇怪,请原谅。我对python有相当多的经验,但我对Django还很陌生,仍在努力获得我的海腿。

我在新工作中从前系统管理员那里继承了一个PHP站点,我想将其重新制作成django应用程序,以简化/清理代码。

PHP站点使用.htaccess文件和Pubcookieapache模块进行身份验证(以及PHP代码中的一些基本检查,以确保用户根据授权用户的数据库进行检查,但我不太关心这一部分),看起来如下:

AuthType SecureID
require valid-user
PubcookieAppID "name of the app"

在我的apache配置中,我有各种pubcookie定义。

LoadModule pubcookie_module /usr/lib/apache2/modules/mod_pubcookie.so
PubcookieGrantingCertFile /usr/local/pubcookie/keys/pubcookie_granting.cert
PubcookieSessionKeyFile /etc/ssl/private/akey.pem
PubcookieSessionCertFile /etc/ssl/certs/acert.pem
PubcookieLogin https://weblogin.domain.com/
PubcookieLoginMethod POST
PubcookieDomain .domain.com
PubcookieKeyDir /usr/local/pubcookie/keys/
PubcookieAuthTypeNames ADUserID null SecurID

我的问题是…我如何在python端实现这种东西?我已经研究过使用RemoteUserMiddlewarePersistentRemoteUserMiddleware

但我发现的大多数信息都没有详细说明如何将应用程序指向正确的登录页面。官方文档似乎只是在django项目的settings.py文件中添加中间件。

它还提到,weblogin.domain.com由另一个我无法直接访问的组处理,并且不是我的服务器之一,所以我不能在那里四处走动。

我意识到这是…非常广泛的,但任何能为我指明正确方向的信息都将不胜感激。

在理想的情况下,我希望能够将不同的视图限制为不同的身份验证类型,但我很乐意让任何东西都能正常工作。

所以,为了它的价值。答案是正常使用pubcookieapache。则如预期的那样使用CCD_ 11或CCD_。事实证明,你不必为中间件处理任何外部配置,它只需导入推给它的东西

最后,我真正缺少的部分,来自apache/pubcookie身份验证的信息可以通过request.META库从django代码中访问

最新更新