如何将OpenID与REST风格的Web服务结合使用?使用OpenID(RPX)(也许OAuth)实现REST风格的Web服务
我正在做的个人项目是使用RPX SaaS来做OpenID。这个关键的结果是描述登录用户的URL。该应用程序本身就是Javascript,我计划使用REST API与后端进行数据库持久性和空间处理通信。
这个应用程序的安全要求并不大。我想知道哪个用户正在提出请求。我不相信我需要使用SSL对数据进行保密,并且我不希望运行SSL的开销。
我正在使用Spring并希望尽可能使用Spring Security(Acegi),但是我并不喜欢这个想法。
选项:
返回的OpenID的URL给Javascript应用程序,使用该按ID检索资源列表中的用户,然后检索/保存在/ etc这些资源。
创建一个将OpenID URL与随机会话令牌相连接的会话表。将令牌返回给JavaScript应用程序,该应用程序必须随后每次请求返回令牌。
将选项2中的会话用作OAuth的消费者令牌等。最初,会话将使用PKI加密发送到应用程序。
依靠J2EE HTTP Session。
这些选项我倾向于选择2.劫持的会议将是困难的,因为攻击者必须猜测会话ID和我不相信应用程序需要保护的嗅探。选项3与选项2基本相同,但会话ID不适用于嗅探。选项4将OpenID URL放入服务器的内存中,并导致REST旨在避免的所有可伸缩性问题。
我很感激任何关于此的讨论。