2017-02-03 69 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代碼訪問