我正在尝试仅使用django auth实现单点登录。
让我们假设两个django项目,在不同的子域:site.com(auth)和app1.site.com(app1) site.com中的auth表是master。 site.com处理:登录,注销,帐户注册等。
site.com将SESSION_COOKIE_DOMAIN设置为.site.com以允许子域读取
app1将login_url设置为app1项目中的视图,该视图执行以下操作:
现在,app1有一个模型SSO_User,它有两个字段,一个是用户模型的外键和一个整数字段。 SSO_User模型将本地auth用户链接到主auth表的id。
使用从site.com检索到的ID,我们检查现有本地用户的SSO_User,如果为true,我们只需更新值并登录;如果不存在,我们创建用户和SSO_User并登录。
app1(或任何其他子域名)可以保留自己的个人资料信息,而不会干扰任何内容。
实施和安全似乎很简单,但在实施之前我想要一些意见。你觉得怎么样?
答案 0 :(得分:0)
我不自称是网络安全专家,但我过去做过类似的事情。只要您正确设置了cookie域(您声称正在进行),我就不会发现任何安全问题,特别是因为这两个站点位于同一个域中。
如果你真的想要安全,我想你可以建立自己的OAuth门户网站,但坦率地说这似乎有些过分。