正如 Django 文档中提到的Other authentication sources,为了对其他来源进行身份验证,您必须实施自己的身份验证后端。此外,他们解释说:
Django管理系统与本文开头描述的Django User对象紧密耦合。目前,处理此问题的最佳方法是为后端存在的每个用户创建一个Django User对象(例如,在LDAP目录,外部SQL数据库等中)。
由于我不打算使用管理系统(我假设他们正在引用管理应用程序)我可以避免该表复制吗?
我正在考虑实现身份验证和 get_user 方法as the doc says,但这意味着 User 类的实例化,所以接下来的问题是:可以在没有实际的Django用户表的情况下实例化 auth.models.User 类吗?
答案 0 :(得分:1)
您应该将用户从外部身份验证映射到auth.User
对象。
答案 1 :(得分:1)
从django.contrib.auth
设置中删除INSTALLED_APPS
。
答案 2 :(得分:1)
你问题的简短回答是 - 是的,它可以。只需在用户模型上将managed属性设置为False即可。
答案 3 :(得分:0)
您是否有特殊原因想要创建表格?如果您编写(或使用预先存在的)LDAP authentication backend,User对象将存储在表中,但它们不会存储任何密码信息,您可以轻松更新电子邮件地址和名称等字段在身份验证过程中,您不会在存储在LDAP中并在Django表中管理的信息之间建立断开连接(即,您可以继续从LDAP更新身份验证信息,而不必担心也在Django DB中更新它。
答案 4 :(得分:0)
没有办法避免表格,仍然有任何排序身份验证。 “替代”身份验证方法仍然使用auth_user
表,它们只是通过其他方式进行身份验证。