jdi*_*jdi 9 django mobile restful-authentication django-piston oauth-2.0
我意识到这个问题有很多问题,我现在已经研究了几天了.我想确保我的问题尽可能具体,因为我还没有充分了解最佳方法.
目前我有一个开发的django站点,Web客户端可能通过django-piston json REST api进行大约95%的通信.另外5%是一些重新登录功能,仍然通过具有CSRF保护的POST表单.理想情况下,我想将其余部分也移到REST api中.
我现在需要找到最佳的推荐解决方案,以便以可重用且愉快的共存方式保护Web客户端和移动客户端(应用程序尚未开发).我已经阅读了很多帖子,最终为移动端推荐OAuth2(和https),但我仍然对如何设置Web客户端安全性感到困惑.我也在理解OAuth2方面以及我是否可以使用双腿形式.就目前而言,Web客户端是经过django身份验证的.从技术上讲,jsonp功能在活塞中仍然有效,所以我认为任何人都可以使用第三方应用程序的api,只要他们的网络会话有auth cookie?
我api的用法总结:
我的问题摘要:
我正在寻找django-piston针对解决这些问题的具体建议.我已经分支了我的项目并开始使用这个分叉版本的活塞:https://bitbucket.org/jespern/django-piston-oauth2
我有一个想法是创建一个活塞资源,首先检查它是否同源,然后只强制执行django auth,否则它强制执行oauth2,但我不确定这是否合适.
根据Spike提供的信息,我开始使用piston-oauth2.我最终创建了一个fork来为nonrel django(mongodb)添加一些修复程序,我分叉someone示例也使用oauth2和活塞:
https://bitbucket.org/justinfx/django-piston-oauth2-nonrel-example
现在只是我的一个问题,真正把它连接到我自己的项目并使其工作.但这些测试都很有效.
我完全支持 OAuth2,所以我会根据该解决方案进行回复。
OAuth2 是保护移动应用程序访问安全的最佳推荐方法吗?它与网络客户端方面有什么关系吗?如果建议使用 OAuth2,它是否应该是与应用程序版本一起进行版本控制的应用程序范围密钥?
是的,OAuth2 目前被广泛认为是推荐的方法。它比 OAuth1 容易得多。我建议您实际阅读规范,而不是有关规范的博客文章,因为规范本身写得非常清楚。除了规范之外,查看Facebook和Foursquare 等已建立的实现也很有用,因为它们并没有在所有方面都遵循规范,而是进行了一些修改以使其更加实用和易于使用。
至于版本控制,从教条式的 REST 角度来看,这是不受欢迎的。然而,从更务实的角度来看,这是极其常见的做法,并且使 API 开发人员和客户的生活变得更加简单。我建议阅读 Apigee 博客,因为他们有很多关于版本控制等主题的帖子。
Web 客户端是否应该使用通过 ajax 传递的 CSRF,并禁用 jsonp 以确保其始终相同的来源?基本上,我是否单独对待 Web 客户端安全?
如果您使用完整的 oauth2 解决方案,您将需要启用跨站点 api 请求。要拒绝您不知道的应用程序,您只需在查看传入的 access_tokens 时添加检查即可。以下是有关您拥有的不同选项的一些阅读内容:
http://blog.apigee.com/detail/crossing_the_streams_handling_cross-site_api_requests/
我应该如何组织 url/应用程序实例/子域或任何建议维护网络与移动安全的内容?我是否只需要单独的 url 前缀,一个用于使用不同规则的移动设备?
只需决定什么对您有用即可。如今,许多人的移动网站位于“m.mysite.com”或“mobile.mysite.com”。如果您采用完整的 OAuth2 实现,则此决定与整个身份验证讨论并不真正相关。
我正在寻找 django-piston 的具体建议来解决这些问题。我已经对我的项目进行了分支,并开始使用活塞的分叉版本: https://bitbucket.org/jespern/django-piston-oauth2
我对此不熟悉,因为我使用tastypie。如果它不适合您,我使用过一个出色的 Django OAuth2 独立服务器:
https://github.com/hiidef/oauth2app
| 归档时间: |
|
| 查看次数: |
1897 次 |
| 最近记录: |