首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不影响用户数据的情况下集中登录Django,MediaWiki和Roundup?

在不影响用户数据的情况下集中登录Django,MediaWiki和Roundup?
EN

Stack Overflow用户
提问于 2011-02-04 07:19:21
回答 1查看 447关注 0票数 3

我正在为一个用Django编写的应用程序开发一个中央登录系统,它有一个MediaWiki维基和一个Roundup bugtracker。目前,我正在考虑的方法是使用Mediawiki (https://bitbucket.org/toml/django-mediawiki-authentication/src)的AuthDjango扩展,并为Roundup添加一些类似的东西。该方法依赖于Django中SessionProfile模型的创建,该模型将会话in (取自cookies)映射到用户实例,并且MediaWiki/Roundup通过直接查询Django数据库来访问数据。

这样做的好处是,所有三个应用程序的登录、会话和注销过程都很容易统一。然而,我遇到的问题是,它依赖于MediaWiki/Roundup存储了Django数据库的凭据,并且访问MediaWiki或Roundup shell帐户的要求故意没有Django主应用程序严格(目前只有一个人拥有Django生产访问权限)。因此,MediaWiki/Roundup实例的管理员(即具有shell访问权限)或任何通过远程利用漏洞入侵的人,都有可能劫持主站点上的用户帐户。

所以我的问题是:有没有人知道更好的方法来集成这些系统的登录机制?或者,我如何才能让MediaWiki/Roundup安全地访问Django数据库,同时最小化访问MediaWiki外壳的人滥用的可能性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-04 07:46:47

您可以使用Django创建一个(JSON/XML/任何东西) web服务来仅执行您需要的操作-登录、查询会话有效性和用户、注销,而不是提供直接的DB访问。这样,只有Django才能编辑数据库中的数据。

然后Mediawiki和Roundup将通过HTTP(S)调用连接到您的Django应用程序(您可以锁定该应用程序,例如,如果所有3个应用程序都在同一服务器上运行,则只能在内部访问),以检查哪个用户与特定会话相关联。

更好的是,将用户重定向到Django应用程序以执行登录和注销功能;这样Mediawiki和Roundup将根本无法访问用户凭据-它们只能在提供有效会话ID的情况下检索用户信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4892898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档