2017-02-03 47 views
0

请原谅我,如果这里的措辞有点奇怪。我对python有相当多的经验,但我对Django来说很新,并且仍然试图让我的海洋腿。Django验证外部SSO

我在我的新工作中继承了前系统管理员的PHP网站,我想将其重新加入到django应用程序中以简化/清除代码。

PHP网站使用.htaccess文件与Pubcookie apache模块进行身份验证(以及一些基本的检查在PHP代码,以确保用户检查对授权用户的数据库,但这一部分我不太关心),看起来像这样:

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

在我apache CONFIGS,我有不同的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由另一个我没有直接访问的组处理,而且不是我的服务器之一,所以我不能在那里混淆。

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

在理想的情况下,我希望能够将不同的视图限制在不同的authtypes上,但我很乐意让所有的东西都能够正常工作。

回答

0

所以,它是值得的。答案是正常使用pubcookieapache。按预期使用RemoteUserMiddlewarePersistentRemoteeUserMiddleware。事实证明,您不必为中间件处理任何外部配置,只需导入即可。

最后一块我是真的失踪,从apache/pubcookie认证信息可与request.META库从内django代码访问