我正在尝试为多个Django应用程序(API)创建一个集中的身份验证服务器。我看过一些帖子/推荐,但没有一个完全符合我想要的。
概述:
Questions/uncertainties:
问:应该在身份验证服务器上还是在每个项目上创建身份验证令牌?即,每个用户对所有项目都有一个身份验证令牌,还是每个项目有一个身份验证令牌?
问:角色将存储在每个应用程序中。我想在JWT中将角色与身份验证令牌一起发送。此数据是否应冗余地存储在身份验证服务器上?另一种方法是让身份验证服务器访问项目数据库。处理这个问题的最好方法是什么?用户将为每个项目提供不同的角色。
问:身份验证服务器将拥有基本的用户信息(电子邮件/用户名、密码、名字/姓氏等)。由于外键不能在数据库之间使用,因此我可以使用基于用户名的用户代理在每个项目上创建用户。应用服务器是否需要访问哪些身份验证令牌有效?
利用现有软件的:
我想到的另一种方法是使用django-
发布于 2018-09-29 05:41:42
你的问题似乎是多重的,所以我也会分成两部分回答:
关于用户的
因为你的用户不是你的“多面性模型”的一部分,所以你有两个选择:
这意味着您的数据库模式将如下所示:
root database (all common data here)
project 1 database (with it's own user data or referencing root)
project 2 database (with it's own user data or referencing root)
现在用于身份验证令牌的
您可以选择与上面相同的选项:
将它们保存在根数据库中,并编写您自己的middleware.
如何实现整件事
由于您的用例非常特殊,因此您可能会遇到来自现有软件的一些阻力。但创建自己的多租户解决方案不是that hard
https://stackoverflow.com/questions/52562796
复制相似问题