将django应用程序用作其他django应用程序的中央身份验证系统

将django应用程序用作其他django应用程序的中央身份验证系统,django,authentication,session,Django,Authentication,Session,(我对Django比较陌生,如果我误解了什么,很抱歉^) 假设我有app1和app2,我想通过这两个应用程序实现相同的组、角色和权限,只需要一个数据库 我的想法是创建一个中央后端服务器,两个应用程序通过该服务器进行身份验证并从中获取角色。基本上,这可以用于以后的SSO(单点登录)。但现在的目标是通过一个应用程序对登录的用户进行身份验证,并从中获取其角色和组 在Django文档中,我找到了“”: 它应该允许我进行远程身份验证(这是我的目标),能够让它运行,但是我应该如何给它Django身份验证服务

(我对Django比较陌生,如果我误解了什么,很抱歉^)

假设我有app1和app2,我想通过这两个应用程序实现相同的组、角色和权限,只需要一个数据库

我的想法是创建一个中央后端服务器,两个应用程序通过该服务器进行身份验证并从中获取角色。基本上,这可以用于以后的SSO(单点登录)。但现在的目标是通过一个应用程序对登录的用户进行身份验证,并从中获取其角色和组

在Django文档中,我找到了“”: 它应该允许我进行远程身份验证(这是我的目标),能够让它运行,但是我应该如何给它Django身份验证服务器的链接呢

我的理解是,在设置此远程用户身份验证后,不需要更改所有组、角色和权限检查,因为Django应该可以访问它通过的远程服务器进行身份验证

我希望我没有误解“”的概念。 另外,如果有任何关于如何实现这一点的其他想法,请让我知道


谢谢!

听起来远程用户并不是您所期望的:当Django被配置为使用此功能时,它放弃了Django的典型安全性,因为它需要位于Django前面的web服务器(例如APACHE或NGINX)简单地说,web服务器在发送到远程用户头中Django的每个请求中都会传递用户id

另一方面,您的期望似乎是针对配置普通Django应用程序来授权和验证其他应用程序的用户。这是一种常见的配置,受几个步骤的影响,包括以下三个步骤:

(1) 将已安装的应用程序列表中的其他应用程序添加到公用应用程序的settings.py。例如:

INSTALLED_APPS = [ 
...
'app1',
'app2',
]
path('app1/', include('app1.urls')), 
path('polls/', include('app2.urls')),
(2) 在common api URL.py中包含应用程序URLconf,例如:

INSTALLED_APPS = [ 
...
'app1',
'app2',
]
path('app1/', include('app1.urls')), 
path('polls/', include('app2.urls')),
(3) 运行
python manage.py migrate
为两个应用程序创建数据库表


你可能需要在普通应用程序中处理你的URL,而不是我上面所描述的;你可能需要添加一个中间件,以防止未经授权的请求在经过身份验证之前被访问。

啊,所以远程用户不是。谢谢。我不想将我的应用程序合并到一个项目中。我想模拟一个完全不同的项目整合在一起,但他们都在使用Django。目前,我使用restframework创建了一个不同的项目,并在我的应用程序中通过API链接到认证后端。然而,我在如何共享用户数据和保持同步方面遇到了一些麻烦,而性能几乎没有受到影响。