2013-11-21 114 views
1

我剛剛學習python和django,並且我搭起了一個相當不錯的網站來管理數據庫和搜索頁面。我現在有點困惑的新要求是應該通過外部提供者(尚未知,但可能是LDAP或Kerberos票證)完成身份驗證。通過外部提供商的Django身份驗證

我的想法是通過此服務驗證用戶,如果成功添加用戶到我的django創建的數據庫與syncdb(我有權限和組),然後繞過此用戶身份驗證,使他們能夠執行操作現場。

這聽起來合理嗎?這種認證是否有「可接受的」方法?我不確定是否必須編寫我自己的認證視圖。

謝謝。

+0

對類似問題的回答:http://stackoverflow.com/questions/19896703/django-remote-authentication-without-redirecting/19934580#19934580 - this包含一個示例'Backend'類,用於通過外部服務進行身份驗證,並在本地創建'User'對象。 –

回答

1

Django支持掛鉤其他身份驗證後端。

我相信如果您通過一些通用接口(如LDAP)進行身份驗證,您將不得不編寫自己的身份驗證後端或使用第三方後端。

該文檔解釋瞭如何寫在這裏的認證後端:https://docs.djangoproject.com/en/1.5/topics/auth/customizing/

如果您打算使用LDAP,我建議你看看Django的認證 - LDAP(https://pypi.python.org/pypi/django-auth-ldap)。

+0

感謝您的回覆。我結束了自定義django_cas和所有工作很好。 – freethinker6

1

這聽起來很合理。有幾種方法可以實現這一目標:使用第三方庫,如django-social-auth,它使用第三方應用程序通過Django用戶模型對用戶進行身份驗證。另一種方法是編寫自己的自定義後端,該後端使用OAuth2協議通過第三方應用程序(例如Twitter)對用戶進行身份驗證,並將它們作爲應用程序的Django用戶保存/授權。這聽起來很難但很容易。我編寫了一個示例Django應用程序來演示此功能,並提供了自定義後端身份驗證教程。這個應用程序/教程使用Django 1.5:djangoauth.thecloutenproject.com/

相關問題