【问题标题】:Django authentication via external provider通过外部提供者进行 Django 身份验证
【发布时间】:2013-12-05 08:40:33
【问题描述】:

我刚刚学习 python 和 django,我建立了一个相当不错的网站来管理数据库和搜索页面。我现在有点困惑的新要求是身份验证应该通过外部提供程序完成(尚不清楚,但可能是 LDAP 或 Kerberos 票证)。

我的想法是通过此服务对用户进行身份验证,如果成功将用户添加到我的 django 创建的带有 syncdb 的数据库(我有权限和组),然后绕过该用户作为已验证的用户,使他们能够在站点中执行操作.

这听起来合理吗?这种身份验证是否有“公认”的方法?我不确定是否必须编写自己的身份验证视图。

谢谢。

【问题讨论】:

标签: python django authentication


【解决方案1】:

Django 支持连接其他身份验证后端。

如果您通过 LDAP 等通用接口进行身份验证,我相信您将不得不编写自己的身份验证后端或使用第三方后端。

文档解释了如何在此处编写身份验证后端:https://docs.djangoproject.com/en/1.5/topics/auth/customizing/

如果你打算使用 LDAP,我建议你看看 django-auth-ldap (https://pypi.python.org/pypi/django-auth-ldap)。

【讨论】:

  • 感谢您的回复。我结束了对 django_cas 的自定义,一切都很好。
【解决方案2】:

这听起来很合理。有几种方法可以实现这一点:使用第三方库,如 django-social-auth,它处理使用第三方应用程序通过 Django 用户模型对用户进行身份验证。另一种方法是编写您自己的自定义后端,该后端使用 OAuth2 协议通过第三方应用程序(例如 Twitter)对用户进行身份验证,并将他们保存/授权为您的应用程序的 Django 用户。这听起来可能很困难,但很容易。我编写了一个示例 Django 应用程序来演示此功能,并提供自定义后端身份验证的教程。此应用程序/教程使用 Django 1.5:djangoauth.thecloutenproject.com/

【讨论】:

    猜你喜欢
    • 2019-07-20
    • 2017-05-12
    • 2014-02-19
    • 1970-01-01
    • 2016-11-01
    • 2013-09-13
    • 2014-03-16
    • 2022-06-16
    • 2023-03-22
    相关资源
    最近更新 更多