2013-11-21 70 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/

相关问题