使用 Plone 对移动设备上的用户进行身份验证
我开始创建一个 iPhone/Android 应用程序,需要使用 Plone 用户(即在网站上注册,然后在手机上使用该应用程序)。
执行此操作的最佳方法是什么?我见过一些使用 OAuth 或其他技术的应用程序,其中哪些当前支持 Plone4(确切地说是 4.0.3)。
我的用户位于 LDAP 服务器 (OpenLDAP) 上,但即便如此,我仍然必须将它们登录到 Plone 上,以便能够从那里向手机发送和检索数据。
I'm starting to create an iPhone/Android app that will need to use Plone users (i.e. register on the website and then enjoy the app on your mobile).
What's the best approach on doing this? I've seen some apps using OAuth or other techniques, which ones currently supports Plone4 (4.0.3 exactly).
I have the users on a LDAP server (OpenLDAP) but even that I still have to log them on Plone to be able to send and retrieve data from there to the mobile phone.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您有 3 个选项,您的选择取决于您的技能以及您愿意投入多少时间:
基本身份验证
让您的用户在应用程序中输入用户名和密码,然后仅使用 HTTP BasicAuth 标头来访问网站。 Plone 支持开箱即用的 Basic auth 身份验证。
这不是最安全的方法;密码基本上都是以 base64 编码发送的,因此您可能希望使用 HTTPS 与服务器通信。无论如何,对于身份验证来说,这都是一个好主意。
Cookie 身份验证
将包含
__ac_name
和__ac_password
项的 POST 请求发送到 Plone 站点上的“/login_form”,并捕获Set-Cookie
标头响应,包含__ac
cookie。这是一个 tk-auth 身份验证令牌,您可以在任何后续请求中使用。这是一个安全的 cookie,但任何嗅探 HTTP 通信流的攻击者都可以重复使用它,因此 HTTPS 再次成为安全的通信方式。OAuth
Plone(尚)不支持开箱即用的 OAuth,但与 python-oauth 集成应该是微不足道的。这很可能需要编写 PluggableAuthSystem (PAS) 插件。
You have 3 options, and what you choose is dependent on what your skills are and how much time you are willing to invest:
Basic auth
Have your user enter a username and password into the app, and just use HTTP BasicAuth headers to access the site. Plone supports Basic auth authentication out of the box.
This is not the most secure method; passwords are basically sent base64-encoded, so you may want to use HTTPS to communicate with the server. A good idea in any case for authentication anyway.
Cookie authentication
Send a POST request with
__ac_name
and__ac_password
items to '/login_form' on your Plone site, and capture theSet-Cookie
header on the response, containing the__ac
cookie. That's a tk-auth authentication token you can use on any subsequent request. This is a secure cookie, but any attacker sniffing the HTTP communication stream could re-use this, so again HTTPS is the secure way to communicate.OAuth
Plone does not (yet) support OAuth out of the box, but integrating with python-oauth should be trivial. This would most likely require a PluggableAuthSystem (PAS) plugin to be written.